// General @primary-color: #cfe5fa; // Base color for entire theme @secondary-color: #efefef; // Base color for bar-backgrounds @text-color: #000; // Text color for enabled widgets @disabled-color: #d3d3d3; // Base for disabled backgrounds and borders @error-color: #d46464; @container-background-color:#fff; // Backgrounds for various content areas such as TitlePane, ContentPane and Inputs (if changed, adjust selected tab to match) @minor-selected-color: spin(saturate(darken(@primary-color, 6), 19), 0); // Color for various arrows and buttons @base-border-color: spin(desaturate(darken(@primary-color, 29), 44), -1); // Augmented and used directly by variables to create border colors for various widgets @unfocused-clickable-color: spin(saturate(lighten(@primary-color, 5), 10), 0); // Background color for enabled buttons, text inputs @border-color: spin(desaturate(darken(@primary-color, 15), 67), 8); // Border color for (enabled, unhovered) TextBox, Slider, Accordion, BorderContainer, TabContainer @minor-border-color: @disabled-color; // Color of borders inside widgets: horizontal line in Calendar between weeks, around color swatches in ColorPalette, above Dialog action bar @popup-border-color: @base-border-color; // Border for Dialog, Menu, Tooltip. Must also update tooltip.png (the arrow image file) to match @disabled-border-color: @disabled-color; // Border color for disabled/readonly Button, TextBox etc. widgets @disabled-background-color: @secondary-color; // Disabled button, textbox, etc. @disabled-text-color: darken(@secondary-color, 43); // Text color for disabled/readonly widgets @unselected-background-color: @secondary-color; // Background color for unselected/unopened tab button, accordion pane, TitlePane, Menu items @unselected-text-color: darken(@secondary-color, 65); // Text color for unselected/unopened tab button, accordion pane, TitlePane, Menu items @hovered-border-color: @base-border-color; // Hover of textbox, tab label, BorderContainer splitter, Calendar, etc. @hovered-background-color: @minor-selected-color; // Background color for hover of Button, MenuBar, Accordion pane, Calendar... anything that has a (non-white) color to start with and gets darker on hover @hovered-text-color: @text-color; // Used for title of select Accordion pane, label of select tab, hovered Menu item, etc. @pressed-border-color: @base-border-color; // During click on Calendar day, Slider up/down buttons, tab button, etc. @pressed-background-color: spin(saturate(darken(@primary-color, 16), 12), 0); // Background color while clicking on Accordion/TitlePane title bar, tab button, Calendar day, Toolbar button, Tree row. @selected-border-color: @base-border-color; // Selected AccordionPane, tab of nested TabContainer (but plain TabContainer is special) @selected-background-color: @primary-color; // Selected Accordion pane, nested tab label, Tree row @selected-text-color: @text-color; // title of selected Accordion pane, label of selected tab, hovered Menu item, etc. @bar-background-color: @secondary-color; // MenuBar, Toolbar, action bar at bottom of dialog @pane-background-color: @container-background-color; // Background color of Accordion panes, Dialogs, etc. @popup-background-color: @container-background-color; // Background for Dialog. TODO: currently use for ColorPalette, maybe should change. // Buttons @button-border-color: @base-border-color; // Border for (stand-alone) buttons in normal, hovered, or active state @button-background-color: @unfocused-clickable-color; // Background color for (unhovered) buttons @button-hovered-background-color: @minor-selected-color; // Background color for hovered buttons @button-pressed-background-color: @minor-selected-color; // Background color for active buttons @button-border-radius: 4px; // Rounded corner radius for buttons (except in toolbar) // Input widgets @focused-border-color: @base-border-color; // Focused textbox, editor, select, etc. @error-border-color: @error-color; // Border for textbox in error state @error-focused-border-color: darken(@error-color, 5); // Border of textbox in error state, and focused @erroricon-background-color: @error-color; // Background color for exclamation point validation icon (for TextBox in error state) @textbox-background-color: @container-background-color; // Default background color of TextBox based widgets @textbox-hovered-background-color: @unfocused-clickable-color; // Background color when hovering a unfocused TextBox, Select, Editor, or other input widget @textbox-focused-background-color: @textbox-background-color; @textbox-error-background-color: @textbox-background-color; @textbox-disabled-background-color: @disabled-background-color; @textbox-padding: 2px; // Padding for Textbox, Textarea, etc. // CheckBox, RadioButton @focus-outline-color: darken(@secondary-color, 65); // Color for artificial focus outline around labels of checkboxes // TabContainer @nestedtab-hovered-background-color: @unfocused-clickable-color; @nestedtab-hovered-border-color: @primary-color; @nestedtab-selected-border-color: @selected-border-color; @nestedtab-selected-background-color: @minor-selected-color; @tab-disabled-background-color: @disabled-color; // For disabled tabs of a TabContainer (not officially supported) // Arrow buttons (stand alone, or inside ComboBox / ComboButton / Spinner / etc. @arrowbutton-background-color: @secondary-color; @arrowbutton-hovered-background-color: @minor-selected-color; // Color of arrow when hovering ComboBox. But hovering Spinner doesn't change arrow color (TODO) @arrowbutton-pressed-background-color: @minor-selected-color; @arrowbutton-inner-border-color: @container-background-color; // Typically the arrows have an inner white border (a.k.a. padding) and then an outer black-ish border // Slider // Note: any changes here require corresponding changes in form/images/sliderThumbs.png @slider-fullbar-background-color: @primary-color; // Background color for part of slider bar before (to the left or below) the handle @slider-remainingbar-background-color: @container-background-color; // Background color for part of slider bar after (to the right or above) the handle @slider-hovered-fullbar-background-color: @minor-selected-color; // Background color for part of bar of hovered slider before (to the left or below) the handle @slider-hovered-remainingbar-background-color: @container-background-color; // Background color for part of bar of hovered slider after (to the right or above) the handle @slider-hoveredButton-background-color: @container-background-color; // Background color of slider increment/decrement buttons when mouse is over slider but not over the buttons @slider-focused-fullbar-background-color: @minor-selected-color; // Background color for part of bar of focused slider before (to the left or below) the handle @slider-focused-remainingbar-background-color: @container-background-color; // Background color for part of bar of focused slider after (to the right or above) the handle @slider-button-hovered-background-color: @primary-color; // Background color of slider increment/decrement buttons when mouse is over the buttons @slider-button-pressed-background-color: @minor-selected-color; // Background color of slider increment/decrement buttons while button is depressed // Select, ComboBox @select-dropdownitem-background-color: @container-background-color; // Background color for items in the drop down list of a ComboBox/Select @select-dropdownitem-hovered-background-color: @pressed-background-color; // Background color for the hovered item in the drop down list of a ComboBox/Select @select-matchedtext-background-color: @minor-selected-color; // Background color of text in ComboBox drop down that matches typed in phrase // Menus @menu-background-color: @popup-background-color; // Calendar @calendar-background-color: @primary-color; @calendar-currentmonth-background-color: @container-background-color; // Background color for days of the current month @calendar-adjacentmonth-background-color: @unfocused-clickable-color; // Background color used for days from previous or next month @calendar-adjacentmonth-text-color: @base-border-color; // Text color used for days from previous or next month @calendar-date-pressed-border-color: @container-background-color; // For some reason pressing a day of the month (as opposed to hovering it) makes the border go away, is this intentional? @calendar-date-pressed-background-color: @pressed-background-color; @calendar-date-selected-border-color: @selected-border-color; @calendar-date-selected-background-color: @minor-selected-color; @calendar-button-hovered-background-color: @unfocused-clickable-color; // for hover or next/previous year, and month drop down (TODO: border and background are built in to calendarArrows.png, can't control from here) @calendar-button-hovered-border-color: @container-background-color; // for hover or next/previous year, and month drop down @calendar-button-pressed-background-color: @pressed-background-color; @calendar-button-pressed-border-color: @pressed-border-color; // ProgressBar @progressbar-border-color: @popup-border-color; // Border color of progress bar @progressbar-full-background-color:@minor-selected-color; // Background color for part of progress bar indicating amount completed @progressbar-empty-background-color: @container-background-color; // Background color for part of progress bar indicating amount remaining @progressbar-text-color: @text-color; // Color of progress bar text (ex: "35%"). Must contrast with both empty and full background colors. // TimePicker @timepicker-minorvalue-background-color: @secondary-color; // For 3:15, 3:30, 3:45 but not 3:00 or 4:00 @timepicker-minorvalue-text-color: darken(@secondary-color, 43); @timepicker-majorvalue-background-color: @unfocused-clickable-color; // For 3:00, 4:00, 5:00, etc. @timepicker-value-hovered-background-color: @pressed-background-color; @timepicker-value-hovered-text-color: @hovered-text-color; @timepicker-arrow-hovered-background-color: @minor-selected-color; // ColorPalette @colorpalette-background-color: @container-background-color; @swatch-border-color: @minor-border-color; @swatch-hovered-border-color: #000; @swatch-selected-border-color: #000; // Dialog @dialog-underlay-color: @container-background-color; // the thing that grays out the screen when a dialog is shown @dialog-titlebar-border-color: @container-background-color; // Inner border around the title sectionof a Dialog, inside the main border of the Dialog and the border between title and content @dialog-titlebar-background-color: @minor-selected-color; // Tooltip @tooltip-gradient-color: fade(@primary-color,10%); // a little swath of color at the bottom of tooltips // BorderContainer @splitter-hovered-background-color: @primary-color; // Color of splitter when user hovers it, before mouse down @splitter-dragged-background-color: @minor-selected-color; // Color of splitter while it's being dragged // Toolbar @toolbar-button-checked-background-color: @container-background-color; // a toggled-on button in the toolbar @toolbar-combobutton-hovered-unhoveredsection-background-color: spin(saturate(lighten(@primary-color, 8), 19), -29); // when user hovers a ComboButton in a Toolbar, the other half of the button turns this color @toolbar-button-border-radius: 2px; // Rounded corner radius for buttons for buttons in toolbar // DnD @dnd-avatar-background-color: @container-background-color; // Background color of little Dialog-type box indicating dragged items @dnd-avatar-header-background-color: #f58383; // Title bar for dragged items @dnd-avatar-candrop-header-background-color: #97e68d;// Title bar for dragged items when they can be dropped @dnd-dropseparator-color: @base-border-color; // Color of line indicating that user is about to drop between items A & B // Document level @document-text-color: #131313; // Text color for document itself (text outside of widgets) @document-shadedsection-background-color: @bar-background-color;// background color used for
, , and table header rows
@document-border-color: @disabled-color; // Border for , , tables, etc.
// Icons, arrows, etc.
@image-arrow-sprite: "images/spriteArrows.png";
@image-calendar-arrows: "images/calendarArrows.png";
@image-calendar-arrows-ie6: "images/calendarArrows8bit.png";
@image-checkmark: "images/checkmarkNoBorder.png";
@image-checkmark-ie6: "images/checkmarkNoBorder.gif";
@image-dialog-close: "images/dialogCloseIcon.png";
@image-dialog-close-ie6: "images/dialogCloseIcon8bit.png";
@image-dnd: "images/dnd.png";
@image-editor-icons-enabled: "../../icons/images/editorIconsEnabled.png";
@image-form-button-arrows: "form/images/buttonArrows.png";
@image-form-checkbox-and-radios: "form/images/checkboxRadioButtonStates.png";
@image-form-checkbox-and-radios-ie6: "form/images/checkboxAndRadioButtons_IE6.png";
@image-form-common-arrows: "form/images/commonFormArrows.png";
@image-form-error: "form/images/error.png";
@image-form-slider-thumbs: "form/images/sliderThumbs.png";
@image-layout-tab-close: "layout/images/tabClose.png"; // [x] icon to close a tab
@image-loading-animation: "images/loadingAnimation.gif";
@image-tooltip: "images/tooltip.png"; // arrow connectors
@image-tooltip-ie6: "images/tooltip8bit.png"; // arrow connectors (8 bit)
@image-tree-expand: "images/treeExpandImages.png";
@image-tree-expand-ie6: "images/treeExpandImages8bit.png";
@image-progressbar-anim: "images/progressBarAnim.gif";
// Mixins
.border-radius (@radius) {
-moz-border-radius: @radius;
border-radius: @radius;
}
.box-shadow (@value) {
-webkit-box-shadow: @value;
-moz-box-shadow: @value;
box-shadow: @value;
}
.transition-property (@value) {
-webkit-transition-property: @value;
-moz-transition-property: @value;
transition-property: @value;
}
.transition-property (@value1, @value2) {
-webkit-transition-property: @value1, @value2;
-moz-transition-property: @value1, @value2;
transition-property: @value1, @value2;
}
.transition-duration (@value) {
-webkit-transition-duration: @value;
-moz-transition-duration: @value;
transition-duration: @value;
}
.transition-duration (@value1, @value2) {
-webkit-transition-duration: @value1, @value2;
-moz-transition-duration: @value1, @value2;
transition-duration: @value1, @value2;
}
.transition-timing-function (@value) {
-webkit-transition-timing-function: @value;
-moz-transition-timing-function: @value;
transition-timing-function: @value;
}
.linear-gradient (@value1, @value2) {
// summary:
// Expands to browser specific background-image specifications for a linear-gradient (2 stops)
background-image: -moz-linear-gradient(@value1, @value2); // FF3.6+
background-image: -webkit-linear-gradient(@value1, @value2); // Chrome10+, Safari5.1+
background-image: -o-linear-gradient(@value1, @value2); // Opera 11.10+
background-image: -ms-linear-gradient(@value1, @value2); // IE10+
// background-image: linear-gradient(@value1, @value2); // W3C (uncomment when standard is approved)
}
.linear-gradient (@value1, @value2, @value3) {
background-image: -moz-linear-gradient(@value1, @value2, @value3); // FF3.6+
background-image: -webkit-linear-gradient(@value1, @value2, @value3); // Chrome10+, Safari5.1+
background-image: -o-linear-gradient(@value1, @value2, @value3); // Opera 11.10+
background-image: -ms-linear-gradient(@value1, @value2, @value3); // IE10+
// background-image: linear-gradient(@value1, @value2, @value3); // W3C (uncomment when standard is approved)
}
.linear-gradient (@value1, @value2, @value3, @value4) {
background-image: -moz-linear-gradient(@value1, @value2, @value3, @value4); // FF3.6+
background-image: -webkit-linear-gradient(@value1, @value2, @value3, @value4); // Chrome10+, Safari5.1+
background-image: -o-linear-gradient(@value1, @value2, @value3, @value4); // Opera 11.10+
background-image: -ms-linear-gradient(@value1, @value2, @value3, @value4); // IE10+
// background-image: linear-gradient(@value1, @value2, @value3, @value4); // W3C (uncomment when standard is approved)
}
.linear-gradient (@value1, @value2, @value3, @value4, @value5) {
background-image: -moz-linear-gradient(@value1, @value2, @value3, @value4, @value5); // FF3.6+
background-image: -webkit-linear-gradient(@value1, @value2, @value3, @value4, @value5); // Chrome10+, Safari5.1+
background-image: -o-linear-gradient(@value1, @value2, @value3, @value4, @value5); // Opera 11.10+
background-image: -ms-linear-gradient(@value1, @value2, @value3, @value4, @value5); // IE10+
// background-image: linear-gradient(@value1, @value2, @value3, @value4, @value5); // W3C (uncomment when standard is approved)
}
.linear-gradient (@value1, @value2, @value3, @value4, @value5, @value6) {
background-image: -moz-linear-gradient(@value1, @value2, @value3, @value4, @value5, @value6); // FF3.6+
background-image: -webkit-linear-gradient(@value1, @value2, @value3, @value4, @value5, @value6); // Chrome10+, Safari5.1+
background-image: -o-linear-gradient(@value1, @value2, @value3, @value4, @value5, @value6); // Opera 11.10+
background-image: -ms-linear-gradient(@value1, @value2, @value3, @value4, @value5, @value6); // IE10+
// background-image: linear-gradient(@value1, @value2, @value3, @value4, @value5, @value6); // W3C (uncomment when standard is approved)
}
.linear-gradient (@value1, @value2, @value3, @value4, @value5, @value6, @value7) {
background-image: -moz-linear-gradient(@value1, @value2, @value3, @value4, @value5, @value6, @value7); // FF3.6+
background-image: -webkit-linear-gradient(@value1, @value2, @value3, @value4, @value5, @value6, @value7); // Chrome10+, Safari5.1+
background-image: -o-linear-gradient(@value1, @value2, @value3, @value4, @value5, @value6, @value7); // Opera 11.10+
background-image: -ms-linear-gradient(@value1, @value2, @value3, @value4, @value5, @value6, @value7); // IE10+
// background-image: linear-gradient(@value1, @value2, @value3, @value4, @value5, @value6, @value7); // W3C (uncomment when standard is approved)
}
.alpha-white-gradient (@opacity1, @stop1, @opacity2, @stop2) {
// summary:
// For setting up white background-image with variable transparency.
// example:
// Gradient starts at top (0%) with 30% opacity, and then ends at bottom (100%) with full transparency
// | .alpha-white-gradient(0.3, 0%, 0, 100%)
//
.linear-gradient(rgba(255,255,255,@opacity1) @stop1, rgba(255,255,255,@opacity2) @stop2);
}
.alpha-white-gradient (@start, @opacity1, @stop1, @opacity2, @stop2) {
.linear-gradient(@start, rgba(255,255,255,@opacity1) @stop1, rgba(255,255,255,@opacity2) @stop2);
}
.alpha-white-gradient (@opacity1, @stop1, @opacity2, @stop2, @opacity3, @stop3) {
.linear-gradient(rgba(255,255,255,@opacity1) @stop1, rgba(255,255,255,@opacity2) @stop2, rgba(255,255,255, @opacity3) @stop3);
}
.alpha-white-gradient (@start, @opacity1, @stop1, @opacity2, @stop2, @opacity3, @stop3) {
.linear-gradient(@start, rgba(255,255,255,@opacity1) @stop1, rgba(255,255,255,@opacity2) @stop2, rgba(255,255,255, @opacity3) @stop3);
}
.alpha-white-gradient (@opacity1, @stop1, @opacity2, @stop2, @opacity3, @stop3, @opacity4, @stop4) {
.linear-gradient(rgba(255,255,255,@opacity1) @stop1, rgba(255,255,255,@opacity2) @stop2, rgba(255,255,255, @opacity3) @stop3, rgba(255,255,255, @opacity4) @stop4);
}
.alpha-white-gradient (@start, @opacity1, @stop1, @opacity2, @stop2, @opacity3, @stop3, @opacity4, @stop4) {
.linear-gradient(@start, rgba(255,255,255,@opacity1) @stop1, rgba(255,255,255,@opacity2) @stop2, rgba(255,255,255, @opacity3) @stop3, rgba(255,255,255, @opacity4) @stop4);
}
.alpha-white-gradient (@start, @opacity1, @stop1, @opacity2, @stop2, @opacity3, @stop3, @opacity4, @stop4, @opacity5, @stop5) {
.linear-gradient(@start, rgba(255,255,255,@opacity1) @stop1, rgba(255,255,255,@opacity2) @stop2, rgba(255,255,255, @opacity3) @stop3, rgba(255,255,255, @opacity4) @stop4, rgba(255,255,255, @opacity5) @stop5);
}
.alpha-white-gradient (@start, @opacity1, @stop1, @opacity2, @stop2, @opacity3, @stop3, @opacity4, @stop4, @opacity5, @stop5, @opacity6, @stop6) {
.linear-gradient(@start, rgba(255,255,255,@opacity1) @stop1, rgba(255,255,255,@opacity2) @stop2, rgba(255,255,255, @opacity3) @stop3, rgba(255,255,255, @opacity4) @stop4, rgba(255,255,255, @opacity5) @stop5, rgba(255,255,255, @opacity6) @stop6);
}
.gradient-and-filter (@color, @fade1, @fade2) {
// summary:
// Sets up a background color with a vertical gradient.
// In order to make transitions work properly on mozilla and webkit, this is done by combining
// a background-color which will be changed based on state (ex: hover) with a constant
// white alpha-transparency background-image. On IE it creates a DXImageTransform filter.
// @color:
// The color
// @fade1:
// The percent to fade at the top
// @fade2:
// The percent to fade at the bottom
background-color: @color; // the base color
.linear-gradient(fadeout(#fff, 100-@fade1), fadeout(#fff, 100-@fade2));
filter: ~"progid:DXImageTransform.Microsoft.gradient(startColorstr="lighten(@color, @fade1)~", endColorstr="lighten(@color, @fade2)~")"; // IE
}
.horizontal-gradient-and-filter (@color, @fade1, @fade2) {
// summary:
// Sets up a background color with a horizontal gradient.
// In order to make transitions work properly on mozilla and webkit, this is done by combining
// a background-color which will be changed based on state (ex: hover) with a constant
// white alpha-transparency background-image. On IE it creates a DXImageTransform filter.
// @color:
// The color
// @fade1:
// The percent to fade at the top
// @fade2:
// The percent to fade at the bottom
background-color: @color; // the base color
.linear-gradient(left, fadeout(#fff, 100-@fade1), fadeout(#fff, 100-@fade2));
filter: ~"progid:DXImageTransform.Microsoft.gradient(startColorstr="lighten(@color, @fade1)~", endColorstr="lighten(@color, @fade2)~"gradientType=1)"; // IE
}
// Mixins defining gradients
.textbox-background-image () {
// summary:
// Background image used for hovered TextBoxes and similar controls.
// It's just a small inset shadow below the top border (inside of the TextBox).
.linear-gradient(rgba(127,127,127,0.2) 0%, rgba(127,127,127,0) 2px);
}
.standard-gradient (@pathToRoot: "") {
// summary:
// Light to dark background-image used by widgets with short height (~16px) including:
// - MenuBar, and hovered MenuItem/MenuBarItem
// - arrow icon wrapper for Select, ComboBox, Spinner
// - Toolbar and hovered Toolbar buttons
// - TitlePane title bar, AccordionContainer title bar, Dialog title bar
// Fallback for IE
background-image: url("@{pathToRoot}images/standardGradient.png");
background-repeat: repeat-x;
// CSS gradient for other browsers
.alpha-white-gradient(0.7, 0%, 0, 100%);
// IE6 can't handle a background-image with transparency and a background-color; the color is blocked out
_background-image: none;
}
.active-gradient (@pathToRoot: "") {
// summary:
// Light to dark background-image with an inset gray shadow at the top,
// used by widgets when they are active (ie: mousedown) or selected, including:
// - active MenuItem/MenuBarItem
// - arrow icon wrapper for Select, ComboBox, Spinner when active or drop down is open
// - active Toolbar buttons
// - active TitlePane title bar, AccordionContainer title bar
// Fallback for IE
background-image: url("@{pathToRoot}images/activeGradient.png");
background-repeat: repeat-x;
// CSS gradient for other browsers
.linear-gradient(rgba(190,190,190,0.98) 0px, rgba(255, 255, 255, 0.65) 3px, rgba(255, 255, 255, 0) 100%);
// IE6 can't handle a background-image with transparency and a background-color; the color is blocked out
_background-image: none;
}