mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-31 13:01:31 +08:00 
			
		
		
		
	
		
			
	
	
		
			374 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			374 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | /*! | ||
|  |  * Fancytree "bootstrap" skin. | ||
|  |  * | ||
|  |  * DON'T EDIT THE CSS FILE DIRECTLY, since it is automatically generated from | ||
|  |  * the LESS templates. | ||
|  |  */ | ||
|  | 
 | ||
|  | // Import common styles | ||
|  | @import "../skin-common.less"; | ||
|  | 
 | ||
|  | 
 | ||
|  | /******************************************************************************* | ||
|  |  * Styles specific to this skin. | ||
|  |  * | ||
|  |  * This section is automatically generated from the `ui-fancytree.less` template. | ||
|  |  ******************************************************************************/ | ||
|  | 
 | ||
|  | 
 | ||
|  | // local vars | ||
|  | // @fancy-my-icon-size: 16px; | ||
|  | 
 | ||
|  | //------------------------------------------------------------------------------ | ||
|  | // Original bootstrap colors  | ||
|  | // See http://getbootstrap.com/css/#less-variables-colors and | ||
|  | //     https://github.com/twbs/bootstrap/blob/master/less/variables.less | ||
|  | @gray-base:              #000; | ||
|  | @gray-darker:            lighten(@gray-base, 13.5%); // #222 | ||
|  | @gray-dark:              lighten(@gray-base, 20%);   // #333 | ||
|  | @gray:                   lighten(@gray-base, 33.5%); // #555 | ||
|  | @gray-light:             lighten(@gray-base, 46.7%); // #777 | ||
|  | @gray-lighter:           lighten(@gray-base, 93.5%); // #eee | ||
|  | 
 | ||
|  | @brand-primary:         darken(#428bca, 6.5%); // blue,  #337ab7 | ||
|  | @brand-success:         #5cb85c;  // green | ||
|  | @brand-info:            #5bc0de;  // light blue | ||
|  | @brand-warning:         #f0ad4e;  // orange | ||
|  | @brand-danger:          #d9534f;  // red | ||
|  | 
 | ||
|  | @font-family-sans-serif:  "Helvetica Neue", Helvetica, Arial, sans-serif; | ||
|  | @font-family-serif:       Georgia, "Times New Roman", Times, serif; | ||
|  | //** Default monospace fonts for `<code>`, `<kbd>`, and `<pre>`. | ||
|  | @font-family-monospace:   Menlo, Monaco, Consolas, "Courier New", monospace; | ||
|  | @font-family-base:        @font-family-sans-serif; | ||
|  | 
 | ||
|  | @font-size-base:          14px; | ||
|  | @font-size-large:         ceil((@font-size-base * 1.25)); // ~18px | ||
|  | @font-size-small:         ceil((@font-size-base * 0.85)); // ~12px | ||
|  | 
 | ||
|  | @border-radius-base:  4px; | ||
|  | @border-radius-large: 6px; | ||
|  | @border-radius-small: 3px; | ||
|  | 
 | ||
|  | @text-color: @gray-dark; | ||
|  | //** Default background color used for all tables. | ||
|  | @table-bg:                      transparent; | ||
|  | //** Background color used for `.table-striped`. | ||
|  | @table-bg-accent:               #f9f9f9; | ||
|  | //** Background color used for `.table-hover`. | ||
|  | @table-bg-hover:                #f5f5f5; | ||
|  | @table-bg-active:               @table-bg-hover; | ||
|  | 
 | ||
|  | //** Border color for table and cell borders. | ||
|  | @table-border-color:            #ddd; | ||
|  | 
 | ||
|  | //------------------------------------------------------------------------------ | ||
|  | 
 | ||
|  | // Override the variable after the import.  | ||
|  | // NOTE: Variables are always resolved as the last definition, even if it is  | ||
|  | // after where it is used. | ||
|  | @fancy-use-sprites: false;     // false: suppress all background images (i.e. icons) | ||
|  | @fancy-loading-url: none; | ||
|  | 
 | ||
|  | @fancy-line-height: 1em;       // height of a nodes selection bar including borders | ||
|  | @fancy-node-v-spacing: 0px;    // gap between two node borders | ||
|  | @fancy-icon-width: 1em; | ||
|  | @fancy-icon-height: 1em; | ||
|  | @fancy-icon-spacing: 0.5em;    // margin between icon/icon or icon/title | ||
|  | @fancy-icon-ofs-top: 2px;      // extra vertical offset for expander, checkbox and icon | ||
|  | @fancy-title-ofs-top: 0px;     // extra vertical offset for title | ||
|  | @fancy-node-border-width: 1px; | ||
|  | @fancy-node-border-radius: @border-radius-small; | ||
|  | @fancy-node-outline-width: 1px; | ||
|  | 
 | ||
|  | @fancy-font-family: @font-family-base; | ||
|  | @fancy-font-size: @font-size-base; | ||
|  | @fancy-font-color: @text-color; | ||
|  | @fancy-font-color-dimm: @gray-dark; | ||
|  | @fancy-font-error-color: @brand-danger; | ||
|  | 
 | ||
|  | @fancy-active-text: #fff; | ||
|  | @fancy-active-color: @brand-primary; | ||
|  | @fancy-select-color: @brand-success; | ||
|  | @fancy-hover-color: @table-bg-hover; | ||
|  | 
 | ||
|  | /******************************************************************************* | ||
|  |  * Plain tree | ||
|  |  * Modifier classes on <ul> container: | ||
|  |  * table-hover                : Enable a light mouse hover effect | ||
|  |  * fancytree-colorize-selected: Give selected (checked) rows a color | ||
|  |  */ | ||
|  | ul.fancytree-container ul { | ||
|  | 	padding: 0 0 0 1.5em; | ||
|  | 	margin: 0; | ||
|  | } | ||
|  | /* Prevent focus frame */ | ||
|  | .fancytree-container:focus { | ||
|  | 	outline: none;  | ||
|  | } | ||
|  | 
 | ||
|  | // Active and (optionally) selected nodes are white on colored bg. Undo this for input controls: | ||
|  | .fancytree-container .fancytree-active span.fancytree-title input, | ||
|  | .fancytree-container.fancytree-colorize-selected .fancytree-selected span.fancytree-title input  { | ||
|  |   color: black; | ||
|  | } | ||
|  | 
 | ||
|  | // Error status node | ||
|  | .fancytree-container span.fancytree-statusnode-error span.fancytree-expander  { | ||
|  | 	color: @fancy-font-error-color; | ||
|  | } | ||
|  | 
 | ||
|  | /* Helper to allow spinning loader icon with bootstrap */ | ||
|  | .glyphicon-spin { | ||
|  |     -webkit-animation: spin 1000ms infinite linear; | ||
|  |     animation: spin 1000ms infinite linear; | ||
|  | } | ||
|  | @-webkit-keyframes spin { | ||
|  |     0% { | ||
|  |         -webkit-transform: rotate(0deg); | ||
|  |         transform: rotate(0deg); | ||
|  |     } | ||
|  |     100% { | ||
|  |         -webkit-transform: rotate(359deg); | ||
|  |         transform: rotate(359deg); | ||
|  |     } | ||
|  | } | ||
|  | @keyframes spin { | ||
|  |     0% { | ||
|  |         -webkit-transform: rotate(0deg); | ||
|  |         transform: rotate(0deg); | ||
|  |     } | ||
|  |     100% { | ||
|  |         -webkit-transform: rotate(359deg); | ||
|  |         transform: rotate(359deg); | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | // ------------------------------------------------------------------------------ | ||
|  | //  * Drag'n'drop support | ||
|  | //  *---------------------------------------------------------------------------- | ||
|  | // div.fancytree-drag-helper { | ||
|  | // } | ||
|  | // div.fancytree-drag-helper a { | ||
|  | // 	border: 1px solid gray; | ||
|  | // 	background-color: white; | ||
|  | // 	padding-left: 5px; | ||
|  | // 	padding-right: 5px; | ||
|  | // 	opacity: 0.8; | ||
|  | // } | ||
|  | // span.fancytree-drag-helper-img { | ||
|  | // // position: relative; | ||
|  | // // left: -16px; | ||
|  | // } | ||
|  | div.fancytree-drag-helper.fancytree-drop-reject, | ||
|  | div.fancytree-drag-helper.fancytree-drop-reject span.fancytree-title | ||
|  | { | ||
|  | 	color: @fancy-font-error-color; | ||
|  | } | ||
|  | // div.fancytree-drop-accept span.fancytree-drag-helper-img { | ||
|  | // 	.useSprite(2, 7); | ||
|  | // } | ||
|  | // div.fancytree-drop-reject span.fancytree-drag-helper-img { | ||
|  | // 	.useSprite(1, 7); | ||
|  | // } | ||
|  | 
 | ||
|  | // //--- Drop marker icon --------------------------------------------------------- | ||
|  | // #fancytree-drop-marker { | ||
|  | // 	width: 2 * @fancy-icon-width; // was 24px, but 32 should be correct | ||
|  | // 	position: absolute; | ||
|  | // 	.useSprite(0, 8); | ||
|  | // 	margin: 0; | ||
|  | // 	&.fancytree-drop-after, | ||
|  | // 	&.fancytree-drop-before { | ||
|  | // 		width: 4 * @fancy-icon-width; // 64px; | ||
|  | // 		.useSprite(0, 9); | ||
|  | // 	} | ||
|  | // 	&.fancytree-drop-copy { | ||
|  | // 		.useSprite(4, 8); | ||
|  | // 	} | ||
|  | // 	&.fancytree-drop-move { | ||
|  | // 		.useSprite(2, 8); | ||
|  | // 	} | ||
|  | // } | ||
|  | 
 | ||
|  | //--- Source node while dragging ----------------------------------------------- | ||
|  | 
 | ||
|  | span.fancytree-node.fancytree-drag-source { | ||
|  | 	background-color: @brand-info !important; | ||
|  | 	span.fancytree.title { | ||
|  | 		// outline: 1px solid @brand-info; | ||
|  | 		// color: @brand-primary; | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | //--- Target node while dragging cursor is over it ----------------------------- | ||
|  | 
 | ||
|  | span.fancytree-node.fancytree-drop-target { | ||
|  | 	&.fancytree-drop-accept span.fancytree.title { | ||
|  | 		// background-color: @brand-danger !important; | ||
|  | 		// outline: 1px solid @brand-success; | ||
|  | 		// color: white !important; | ||
|  | 	} | ||
|  | 	&.fancytree-drop-reject span.fancytree.title { | ||
|  | 		background-color: @brand-danger !important; | ||
|  | 		// outline: 1px solid @brand-danger; | ||
|  | 		// color: white !important; | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | span.fancytree-expander { | ||
|  | 	color: #999;  // colpased expander is gray | ||
|  | } | ||
|  | .fancytree-expanded span.fancytree-expander { | ||
|  | 	color: @fancy-font-color; | ||
|  | } | ||
|  | span.fancytree-node span.fancytree-expander:hover { | ||
|  | 	color: cyan; | ||
|  | } | ||
|  | 
 | ||
|  | // Inactive tree: | ||
|  | .fancytree-plain { | ||
|  | 	&.fancytree-colorize-selected { | ||
|  | 		span.fancytree-node.fancytree-selected, | ||
|  | 		span.fancytree-node.fancytree-selected span.fancytree-title { // selected nodes inside inactive tree | ||
|  | 			background-color: lighten(@fancy-select-color, 10%); | ||
|  | 			border-color: lighten(@fancy-select-color, 10%); | ||
|  | 			color: @fancy-active-text; | ||
|  | 		} | ||
|  | 		span.fancytree-node.fancytree-selected:hover span.fancytree-title { | ||
|  | 			background-color: lighten(@fancy-select-color, 5%); | ||
|  | 		} | ||
|  | 		span.fancytree-node.fancytree-active.fancytree-selected span.fancytree-title { // active nodes inside inactive tree | ||
|  | 			color: lighten(@fancy-select-color, 10%); | ||
|  | 		} | ||
|  | 		&.fancytree-treefocus { | ||
|  | 			span.fancytree-title:hover { | ||
|  | 				background-color: @fancy-hover-color; | ||
|  | 			} | ||
|  | 			span.fancytree-node.fancytree-selected span.fancytree-title { | ||
|  | 				background-color: @fancy-select-color; | ||
|  | 			} | ||
|  | 			span.fancytree-node.fancytree-selected:hover span.fancytree-title { | ||
|  | 				background-color: darken(@fancy-select-color, 5%); | ||
|  | 			} | ||
|  | 			span.fancytree-node.fancytree-active.fancytree-selected span.fancytree-title { | ||
|  | 				color: @fancy-select-color; | ||
|  | 			} | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	&.fancytree-container {  // adding this class to increase specificity, so we can override .fancytree-colorize-selected | ||
|  | 		span.fancytree-node { | ||
|  | 			margin-top: 2px; | ||
|  | 			margin-bottom: 2px; | ||
|  | 		} | ||
|  | 		span.fancytree-title { | ||
|  | 			border: @fancy-node-border-width solid transparent;  // avoid jumping, when a border is added on hover | ||
|  | 			border-radius: @border-radius-small; | ||
|  | 			outline-radius: @border-radius-small; | ||
|  | 		} | ||
|  | 		span.fancytree-title:hover { | ||
|  | 			background-color: @fancy-hover-color; | ||
|  | 		} | ||
|  | 		span.fancytree-node.fancytree-active span.fancytree-title { // active nodes inside inactive tree | ||
|  | 			background-color: lighten(@fancy-active-color, 10%); | ||
|  | 			color: @fancy-active-text; | ||
|  | 		} | ||
|  | 		span.fancytree-node.fancytree-active:hover span.fancytree-title { | ||
|  | 			background-color: lighten(@fancy-active-color, 5%); | ||
|  | 		} | ||
|  | 		&.fancytree-ext-wide span.fancytree-node.fancytree-active { // in wide mode, icons of active nodes must be white-on-color | ||
|  | 			color: @fancy-active-text; | ||
|  | 		} | ||
|  | 
 | ||
|  | 		// Active tree: | ||
|  | 		&.fancytree-treefocus { | ||
|  | 			span.fancytree-node.fancytree-focused span.fancytree-title { | ||
|  | 				border-color: @brand-primary; | ||
|  | 			} | ||
|  | 			span.fancytree-node.fancytree-active span.fancytree-title { | ||
|  | 				background-color: @fancy-active-color; | ||
|  | 				border-color: @fancy-active-color; | ||
|  | 			} | ||
|  | 			span.fancytree-node.fancytree-active:hover span.fancytree-title { | ||
|  | 				background-color: darken(@fancy-active-color, 5%); | ||
|  | 			} | ||
|  | 		} | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | /******************************************************************************* | ||
|  |  * 'table' extension | ||
|  |  * Modifier classes on <table>: | ||
|  |  * table-hover                : Enable a light mouse hover effect | ||
|  |  * fancytree-colorize-selected: Give selected (checked) rows a color | ||
|  |  */ | ||
|  | table.fancytree-ext-table { | ||
|  | 	>tbody >tr >td span.fancytree-title { | ||
|  | 		border: none; | ||
|  | 	} | ||
|  | 
 | ||
|  | 	// Give a separate color for selected (checked) rows | ||
|  | 	// Define *before* the .fancytree-active rules, because active color should | ||
|  | 	// override selected color. | ||
|  | 	&.fancytree-colorize-selected { | ||
|  | 		>tbody >tr.fancytree-selected >td { | ||
|  | 			// dimmed, if inside inactive tree | ||
|  | 			background-color: lighten(@fancy-select-color, 10%); | ||
|  | 			// white text for selected nodes | ||
|  | 			&, | ||
|  | 			span.fancytree-title { | ||
|  | 				color: @fancy-active-text; | ||
|  | 			} | ||
|  | 		} | ||
|  | 		&.fancytree-treefocus >tbody >tr.fancytree-selected >td { | ||
|  | 			background-color: @fancy-select-color; | ||
|  | 		} | ||
|  | 		&.table-hover >tbody >tr.fancytree-selected:hover >td {  | ||
|  | 			// dimmed, if inside inactive tree | ||
|  | 			background-color: lighten(@fancy-select-color, 5%); | ||
|  | 		} | ||
|  | 		&.fancytree-treefocus.table-hover >tbody >tr.fancytree-selected:hover >td { | ||
|  | 			background-color: darken(@fancy-select-color, 5%); | ||
|  | 		} | ||
|  | 		&.fancytree-treefocus.table-hover >tbody >tr.fancytree-selected.fancytree-active:hover >td, | ||
|  | 		&.table-hover >tbody >tr.fancytree-selected.fancytree-active:hover >td { | ||
|  | 			background-color: darken(@fancy-active-color, 5%); | ||
|  | 		} | ||
|  | 		>tbody >tr.fancytree-active.fancytree-selected  { | ||
|  | 			outline-width: 2px; | ||
|  | 			outline-offset: -2px; | ||
|  | 			outline-style: solid; | ||
|  | 			outline-color: lighten(@fancy-select-color, 10%); | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	// General tree (slightly dimmed, since we also define colors for inactive  | ||
|  | 	// mode here).  | ||
|  | 
 | ||
|  | 	&.fancytree-container >tbody >tr.fancytree-active >td { | ||
|  | 		background-color: lighten(@fancy-active-color, 10%); | ||
|  | 		// white text for selected nodes | ||
|  | 		&, | ||
|  | 		span.fancytree-title { | ||
|  | 			color: @fancy-active-text; | ||
|  | 		} | ||
|  | 	} | ||
|  | 
 | ||
|  | 	// Reset to standard colors if tree has keyboard focus. | ||
|  | 	// We add .fancytree-container to increase specificity, so we can override | ||
|  | 	// .fancytree-colorize-selected defined above | ||
|  | 	 | ||
|  | 	&.fancytree-treefocus.fancytree-container { | ||
|  | 		>tbody >tr.fancytree-focused span.fancytree-title { | ||
|  | 			outline: 1px dotted #000; | ||
|  | 		} | ||
|  | 		>tbody >tr.fancytree-active >td { | ||
|  | 			background-color: @fancy-active-color; | ||
|  | 		} | ||
|  | 		&.table-hover >tbody >tr.fancytree-active:hover >td { | ||
|  | 			background-color: darken(@fancy-active-color, 5%); | ||
|  | 		} | ||
|  | 	} | ||
|  | } |