/***************************************************************************** * Open MCT, Copyright (c) 2014-2022, United States Government * as represented by the Administrator of the National Aeronautics and Space * Administration. All rights reserved. * * Open MCT is licensed under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0. * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. * * Open MCT includes source code licensed under additional open source * licenses. See the Open Source Licenses file (LICENSES.md) included with * this source code distribution or the Licensing information page available * at runtime from the About dialog for additional information. *****************************************************************************/ /****************************************************** SNOW THEME CONSTANTS */ // Fonts $heroFont: "Helvetica Neue", Helvetica, Arial, sans-serif; $headerFont: $heroFont; $bodyFont: $heroFont; @mixin heroFont($size: 1em) { font-family: $heroFont; font-size: $size; } @mixin headerFont($size: 1em) { font-family: $headerFont; font-size: $size; } @mixin bodyFont($size: 1em) { font-family: $bodyFont; font-size: $size; } // Functions @function buttonBg($c: $colorBtnBg) { @return $c; } @function pullForward($val, $amt) { @return darken($val, $amt); } @function pushBack($val, $amt) { @return lighten($val, $amt); } // General $fontBaseSize: 12px; $smallCr: 2px; $controlCr: 3px; $basicCr: 4px; $shdwBtns: none; $shdwBtnsOverlay: none; // Base colors $colorBodyBg: #fcfcfc; $colorBodyFg: #666; $colorBodyFgEm: #333; $colorGenBg: #fff; $colorHeadBg: #eee; $colorHeadFg: $colorBodyFg; $colorKey: #0099cc; $colorKeyFg: #fff; $colorKeyHov: #00c0f6; $colorKeyFilter: invert(37%) sepia(100%) saturate(686%) hue-rotate(157deg) brightness(102%) contrast(102%); $colorKeyFilterHov: invert(69%) sepia(87%) saturate(3243%) hue-rotate(151deg) brightness(97%) contrast(102%); $colorKeySelectedBg: $colorKey; $uiColor: #289fec; // Resize bars, splitter bars, etc. $colorInteriorBorder: rgba($colorBodyFg, 0.2); $colorA: $colorBodyFg; $colorAHov: $colorKey; $filterHov: hue-rotate(-10deg) brightness(0.8) contrast(2); // Tree, location items $colorSelectedBg: pushBack($colorKey, 40%); $colorSelectedFg: pullForward($colorBodyFg, 10%); // Object labels $objectLabelTypeIconOpacity: 0.5; $objectLabelNameFilter: brightness(0.9); // Layout $shellMainPad: 4px 0; $shellPanePad: $interiorMargin, 7px; $drawerBg: darken($colorBodyBg, 5%); $drawerFg: darken($colorBodyFg, 5%); $sideBarBg: $drawerBg; $sideBarHeaderBg: rgba(black, 0.1); $sideBarHeaderFg: rgba($colorBodyFg, 0.7); // Status colors, mainly used for messaging and item ancillary symbols $colorStatusFg: #999; $colorStatusDefault: #ccc; $colorStatusInfo: #60ba7b; $colorStatusInfoFilter: invert(64%) sepia(42%) saturate(416%) hue-rotate(85deg) brightness(93%) contrast(93%); $colorStatusAlert: #ff8a0d; $colorStatusAlertFilter: invert(89%) sepia(26%) saturate(5035%) hue-rotate(316deg) brightness(114%) contrast(107%); $colorStatusError: #da0004; $colorStatusErrorFilter: invert(8%) sepia(96%) saturate(4511%) hue-rotate(352deg) brightness(136%) contrast(114%); $colorStatusBtnBg: #666; // Where is this used? $colorStatusPartialBg: #c9d6ff; $colorStatusCompleteBg: #a4e4b4; $colorAlert: #ff8a0d; $colorAlertFg: #fff; $colorError: #ff3c00; $colorErrorFg: #fff; $colorWarningHi: #990000; $colorWarningHiFg: #FF9594; $colorWarningLo: #ff9900; $colorWarningLoFg: #523400; $colorDiagnostic: #a4b442; $colorDiagnosticFg: #39461A; $colorCommand: #3693bd; $colorCommandFg: #fff; $colorInfo: #2294a2; $colorInfoFg: #fff; $colorOk: #33cc33; $colorOkFg: #fff; $colorFilterBg: #a29fe2; $colorFilterFg: #fff; $colorFilter: $colorFilterBg; // Standalone against $colorBodyBg // States $colorPausedBg: #ff9900; $colorPausedFg: #fff; // Base variations $colorBodyBgSubtle: pullForward($colorBodyBg, 5%); $colorBodyBgSubtleHov: pushBack($colorKey, 50%); $colorKeySubtle: pushBack($colorKey, 20%); // Time Colors $colorTime: #618cff; $colorTimeBg: $colorTime; $colorTimeFg: $colorBodyBg; $colorTimeHov: pushBack($colorTime, 5%); $colorTimeSubtle: pushBack($colorTime, 20%); $colorTOI: $colorBodyFg; // was $timeControllerToiLineColor $colorTOIHov: $colorTime; // was $timeControllerToiLineColorHov $timeConductorAxisHoverFilter: brightness(0.8); $timeConductorActiveBg: $colorKey; $timeConductorActivePanBg: #A0CDE1; /************************************************** BROWSING */ $browseFrameColor: pullForward($colorBodyBg, 10%); $browseFrameBorder: 1px solid $browseFrameColor; // Frames in Disp and Flex Layouts when frame is showing $browseSelectableShdwHov: rgba($colorBodyFg, 0.3) 0 0 3px; $browseSelectedBorder: 1px solid rgba($colorBodyFg, 0.4); $filterItemHoverFg: brightness(0.9); $filterItemMissing: contrast(0.2); $opacityMissing: 0.4; $borderMissing: 1px dashed $colorAlert !important; /************************************************** EDITING */ $editUIColor: $uiColor; // Base color $editUIColorBg: $editUIColor; $editUIColorFg: #fff; $editUIColorHov: pullForward(saturate($uiColor, 10%), 20%); // Hover color when $editUIColor is applied as a base color $editUIBaseColor: #cae1ff; // Base color, toolbar bg $editUIBaseColorHov: pushBack($editUIBaseColor, 20%); $editUIBaseColorFg: #4c4c4c; // Toolbar button icon colors, etc. $editUIAreaBaseColor: pullForward(saturate($editUIBaseColor, 30%), 20%); $editUIAreaShdw: $editUIAreaBaseColor 0 0 0 2px; // Edit area s-selected-parent $editUIAreaShdwSelected: $editUIAreaBaseColor 0 0 0 3px; // Edit area s-selected $editUIGridColorBg: rgba($editUIBaseColor, 0.2); // Background of layout editing area $editUIGridColorFg: rgba($editUIBaseColor, 0.3); // Grid lines in layout editing area $editDimensionsColor: #d7aeff; $editFrameColor: $browseFrameColor; // Solid or dotted border applied to non-selected frames in a layout; move-bar on frame hover $editFrameBorder: 1px dotted $editFrameColor; $editFrameColorHov: $editUIColor; // Solid border hover on frames; hover should not be applied to selected objects $editFrameBorderHov: 1px solid $editFrameColorHov; // Hover on selectable frames $editFrameColorSelected: #ff7c00; // Border of selected frames $editFrameColorHandleBg: $colorBodyBg; // Resize handle 'offset' color to make handle standout $editFrameColorHandleFg: $editFrameColorSelected; // Resize handle main color $editFrameSelectedShdw: rgba(black, 0.5) 0 1px 5px 2px; $editFrameMovebarColorBg: $editFrameColor; // Movebar bg color $editFrameMovebarColorFg: pullForward($editFrameMovebarColorBg, 20%); // Grippy lines, container size text $editFrameHovMovebarColorBg: pullForward($editFrameMovebarColorBg, 10%); // Hover style $editFrameHovMovebarColorFg: pullForward($editFrameMovebarColorFg, 10%); $editFrameSelectedMovebarColorBg: pullForward($editFrameMovebarColorBg, 15%); // Selected style $editFrameSelectedMovebarColorFg: pullForward($editFrameMovebarColorFg, 15%); $editFrameMovebarH: 10px; // Height of move bar in layout frame $editMarqueeBorder: 1px dashed $editFrameColorSelected; $editFrameSelectedBorder: 1px dashed $editMarqueeBorder; // Selected frame element // Icons $colorIconAlias: #4af6f3; $colorIconAliasForKeyFilter: #aaa; // Holders $colorTabsHolderBg: rgba($colorBodyFg, 0.2); // Buttons and Controls $colorBtnBg: #aaa; $colorBtnBgHov: pullForward($colorBtnBg, 10%); $colorBtnFg: #fff; $colorBtnReverseFg: $colorBodyBg; $colorBtnReverseBg: $colorBodyFg; $colorBtnFgHov: $colorBtnFg; $colorBtnMajorBg: $colorKey; $colorBtnMajorBgHov: $colorKeyHov; $colorBtnMajorFg: $colorKeyFg; $colorBtnMajorFgHov: pushBack($colorBtnMajorFg, 10%); $colorBtnCautionBg: #f16f6f; $colorBtnCautionBgHov: #f1504e; $colorBtnCautionFg: $colorBtnFg; $colorBtnActiveBg: $colorOk; $colorBtnActiveFg: $colorOkFg; $colorBtnSelectedBg: $colorBtnMajorBg; $colorBtnSelectedFg: $colorBtnMajorFg; $colorClickIconButton: $colorKey; $colorClickIconButtonBgHov: rgba($colorKey, 0.2); $colorClickIconButtonFgHov: $colorKeyHov; $colorDropHint: $colorKey; $colorDropHintBg: pushBack($colorDropHint, 10%); $colorDropHintBgHov: pushBack($colorDropHint, 40%); $colorDropHintFg: pushBack($colorDropHint, 0); $colorDisclosureCtrl: rgba($colorBodyFg, 0.5); $colorDisclosureCtrlHov: rgba($colorBodyFg, 0.7); $btnStdH: 24px; $colorCursorGuide: rgba(black, 0.6); $shdwCursorGuide: rgba(white, 0.4) 0 0 2px; $colorLocalControlOvrBg: rgba($colorBodyBg, 0.8); $colorSelectBg: $colorBtnBg; // This must be a solid color, not a gradient, due to usage of SVG bg in selects $colorSelectFg: $colorBtnFg; $colorSelectArw: lighten($colorBtnBg, 20%); $shdwSelect: none; $controlDisabledOpacity: 0.3; // Menus $colorMenuBg: $colorBodyBg; $colorMenuFg: $colorBodyFg; $colorMenuIc: $colorKey; $filterMenu: brightness(0.95); $colorMenuHovBg: $colorMenuIc; $colorMenuHovFg: $colorMenuBg; $colorMenuHovIc: $colorMenuBg; $colorMenuElementHilite: darken($colorMenuBg, 10%); $shdwMenu: rgba(black, 0.8) 0 2px 10px; $shdwMenuInner: none; $shdwMenuText: none; $menuItemPad: $interiorMargin, floor($interiorMargin * 1.25); // Palettes and Swatches $paletteItemBorderOuterColorSelected: black; $paletteItemBorderInnerColorSelected: white; $paletteItemBorderInnerColor: rgba($paletteItemBorderOuterColorSelected, 0.3); $mixedSettingBg: (transparent rgba($editUIBaseColorHov, 0.9)); // Used in .c-click-icon--mixed $mixedSettingBgSize: 10px; // Forms $colorCheck: $colorKey; $colorFormRequired: $colorKey; $colorFormValid: $colorOk; $colorFormError: #990000; $colorFormInvalid: #ff2200; $colorFormFieldErrorBg: $colorFormError; $colorFormFieldErrorFg: rgba(#fff, 0.6); $colorFormLines: rgba(#000, 0.2); $colorFormSectionHeaderBg: rgba(#000, 0.05); $colorFormSectionHeaderFg: rgba($colorBodyFg, 0.5); $colorInputBg: $colorGenBg; $colorInputFg: $colorBodyFg; $colorFormText: pushBack($colorBodyFg, 10%); $colorInputIcon: pushBack($colorBodyFg, 25%); $colorFieldHint: pullForward($colorBodyFg, 40%); $shdwInput: inset rgba(black, 0.4) 0 0 2px 1px; $shdwInputHov: inset rgba(black, 0.8) 0 0 2px; $shdwInputFoc: inset rgba(black, 0.8) 0 0.25px 3px; $formTBPad: $interiorMargin; $formLRPad: $interiorMargin; $formInputH: 22px; $formRowCtrlsH: 14px; // Inspector $colorInspectorBg: pullForward($colorBodyBg, 5%); $colorInspectorFg: $colorBodyFg; $colorInspectorPropName: pushBack($colorBodyFg, 20%); $colorInspectorPropVal: pullForward($colorInspectorFg, 15%); $colorInspectorSectionHeaderBg: pullForward($colorInspectorBg, 5%); $colorInspectorSectionHeaderFg: pullForward($colorInspectorBg, 40%); // Overlay $colorOvrBlocker: rgba(black, 0.7); $overlayCr: $interiorMarginLg; // Indicator colors $colorIndicatorAvailable: $colorKey; $colorIndicatorDisabled: #444; $colorIndicatorOn: $colorOk; $colorIndicatorOff: #666; $colorIndicatorBgHov: rgba($colorHeadFg, 0.1); $colorIndicatorMenuBg: white; $colorIndicatorMenuBgShdw: rgba(black, 0.6) 0 0 6px; $colorIndicatorMenuFg: $colorHeadFg; $colorIndicatorMenuFgHov: pullForward($colorHeadFg, 10%); // Staleness $colorTelemStale: #00c9c9; $colorTelemStaleFg: #002A2A; $styleTelemStale: italic; // Limits $colorLimitYellowBg: #ffe64d; $colorLimitYellowFg: #7f4f20; $colorLimitYellowIc: #e7a115; $colorLimitOrangeBg: #B36B00; $colorLimitOrangeFg: #FFE0B2; $colorLimitOrangeIc: #ff9900; $colorLimitRedBg: #ff0000; $colorLimitRedFg: #fff; $colorLimitRedIc: #ffa99a; $colorLimitPurpleBg: #891BB3; $colorLimitPurpleFg: #EDBEFF; $colorLimitPurpleIc: #c327ff; $colorLimitCyanBg: #4BA6B3; $colorLimitCyanFg: #D3FAFF; $colorLimitCyanIc: #1795c0; // Bubble colors $colorInfoBubbleBg: $colorMenuBg; $colorInfoBubbleFg: #666; $colorThumbsBubbleFg: pullForward($colorBodyFg, 10%); $colorThumbsBubbleBg: pullForward($colorBodyBg, 10%); // Items $colorItemBg: pushBack($colorBtnBg, 20%); $colorItemBgHov: pushBack($colorItemBg, 5%); $colorListItemBg: transparent; $colorListItemBgHov: rgba($colorKey, 0.1); $colorItemFg: $colorBodyFg; $colorItemFgDetails: pushBack($colorItemFg, 15%); $shdwItemText: none; // Tabular $colorTabBorder: pullForward($colorBodyBg, 10%); $colorTabBodyBg: $colorBodyBg; $colorTabBodyFg: pullForward($colorBodyFg, 20%); $colorTabHeaderBg: #e2e2e2; $colorTabHeaderFg: $colorBodyFg; $colorTabHeaderBorder: $colorBodyBg; $colorTabGroupHeaderBg: pullForward($colorBodyBg, 5%); $colorTabGroupHeaderFg: pullForward($colorTabGroupHeaderBg, 40%); $colorSummaryBg: #999; $colorSummaryFg: rgba($colorBodyBg, 0.7); $colorSummaryFgEm: white; // Plot $colorPlotBg: rgba(black, 0.05); $colorPlotFg: $colorBodyFg; $colorPlotHash: $colorPlotFg; $opacityPlotHash: 0.3; $stylePlotHash: dashed; $colorPlotAreaBorder: $colorInteriorBorder; $colorPlotLabelFg: pushBack($colorPlotFg, 20%); $legendHoverValueBg: rgba($colorBodyFg, 0.2); $legendTableHeadBg: rgba($colorBodyFg, 0.15); $colorPlotLimitLineBg: rgba($colorBodyBg, 0.4); // Gauges $colorGaugeBg: pullForward($colorBodyBg, 20%); // Gauge radial area background, meter background $colorGaugeValue: rgba(#000, 0.3); // Gauge value graphic (radial sweep, bar) color $colorGaugeTextValue: pullForward($colorBodyFg, 20%); // Radial gauge text value $colorGaugeMeterTextValue: $colorGaugeTextValue; // Meter text value, overlaid on value bar $colorGaugeRange: $colorBodyFg; // Range text color $colorGaugeLimitHigh: rgba($colorLimitRedBg, 0.2); $colorGaugeLimitLow: $colorGaugeLimitHigh; $transitionTimeGauge: 150ms; // CSS transition time used to smooth needle gauge and meter value transitions $marginGaugeMeterValue: 10%; // Margin between meter value bar and bounds edges // Time Strip and Lists $colorCurrentBg: rgba($colorStatusAlert, 0.3); $colorCurrentFg: pullForward($colorBodyFg, 20%); $colorCurrentBorder: #fff; $colorFutureBg: rgba($colorKey, 0.2); $colorFutureFg: $colorCurrentFg; $colorFutureBorder: $colorCurrentBorder; // Tree $colorTreeBg: transparent; $colorItemTreeHoverBg: rgba(black, 0.07); $colorItemTreeHoverFg: pullForward($colorBodyFg, 10%); $colorItemTreeIcon: $colorKey; // Used $colorItemTreeIconHover: $colorItemTreeIcon; // Used $colorItemTreeFg: $colorBodyFg; $colorItemTreeSelectedBg: $colorSelectedBg; $colorItemTreeSelectedFg: $colorItemTreeHoverFg; $filterItemTreeSelected: contrast(1.4); $colorItemTreeSelectedIcon: $colorItemTreeIcon; $colorItemTreeEditingBg: pushBack($editUIColor, 20%); $colorItemTreeEditingFg: $editUIColor; $colorItemTreeEditingIcon: $editUIColor; $colorItemTreeVC: $colorDisclosureCtrl; $colorItemTreeVCHover: $colorDisclosureCtrlHov; $colorItemTreeNewNode: rgba($colorBodyFg, 0.5); $shdwItemTreeIcon: none; // Layout frame controls $frameControlsColorFg: $colorClickIconButton; $frameControlsColorBg: $colorMenuBg; $frameControlsShdw: $shdwMenu; // Images $colorThumbHoverBg: $colorItemTreeHoverBg; // Scrollbar $scrollbarTrackSize: 7px; $scrollbarTrackShdw: rgba(#000, 0.2) 0 1px 2px; $scrollbarTrackColorBg: rgba(#000, 0.2); $scrollbarThumbColor: pullForward($colorBodyBg, 50%); $scrollbarThumbColorHov: $colorKey; $scrollbarThumbColorMenu: pullForward($colorMenuBg, 10%); $scrollbarThumbColorMenuHov: darken($scrollbarThumbColorMenu, 2%); // Splitter $splitterHandleD: 2px; $splitterD: $splitterHandleD; $splitterHandleHitMargin: 4px; $colorSplitterBaseBg: $colorBodyBg; $colorSplitterBg: pullForward($colorSplitterBaseBg, 20%); $colorSplitterFg: $colorBodyBg; $colorSplitterHover: $colorKey; $colorSplitterActive: $colorKey; $splitterBtnD: (16px, 35px); // height, width $splitterBtnColorBg: $colorBtnBg; $splitterBtnColorFg: #ddd; $splitterBtnLabelColorFg: #999; $splitterCollapsedBtnColorBg: #ccc; $splitterCollapsedBtnColorFg: #666; $splitterCollapsedBtnColorBgHov: $colorKey; $splitterCollapsedBtnColorFgHov: $colorKeyFg; // Mobile $colorMobilePaneLeft: pullForward($colorBodyBg, 2%); $colorMobilePaneLeftTreeItemBg: rgba($colorBodyFg, 0.1); $colorMobilePaneLeftTreeItemFg: $colorItemTreeFg; $colorMobileSelectListTreeItemBg: rgba(#000, 0.05); // About Screen $colorAboutLink: $colorKeySubtle; // Loading $colorLoadingFg: #776ba2; $colorLoadingBg: rgba($colorLoadingFg, 0.1); // Transitions $transInTime: 50ms; $transOutTime: 250ms; $transIn: all $transInTime ease-in-out; $transOut: all $transOutTime ease-in-out; $transInBounce: all 200ms cubic-bezier(.47,.01,.25,1.5); $transInBounceBig: all 300ms cubic-bezier(.2,1.6,.6,3); // Discrete items, like Notebook entries, Widget rules $createBtnTextTransform: uppercase; $colorDiscreteItemBg: rgba($colorBodyFg,0.1); $colorDiscreteItemCurrentBg: rgba($colorOk,0.3); $scrollContainer: rgba(102, 102, 102, 0.1); @mixin discreteItem() { background: $colorDiscreteItemBg; border: 1px solid $colorInteriorBorder; border-radius: $controlCr; &--current-match { background: $colorDiscreteItemCurrentBg; } .c-input-inline:hover { background: $colorBodyBg; } } @mixin discreteItemInnerElem() { border: 1px solid $colorBodyBg; border-radius: $controlCr; } @mixin themedButton($c: $colorBtnBg) { background: $c; }