352 lines
12 KiB
Plaintext
352 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;
|
||
|
|
||
|
// We need to define this variable here (not in skin-common.less) to make it
|
||
|
// work with grunt and webpack:
|
||
|
@fancy-image-prefix: "./skin-bootstrap/";
|
||
|
|
||
|
/*******************************************************************************
|
||
|
* 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;
|
||
|
}
|
||
|
|
||
|
// ------------------------------------------------------------------------------
|
||
|
// * 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%);
|
||
|
}
|
||
|
}
|
||
|
}
|