Topic themes (#2187)

* Bringing over in-progress changes from topic-core-css

- Adds _espresso-constants.scss;
- Cleanup colors and naming;
- Remove conflict res leftover 'domainObject' in mct-tree.vue;
- Still WIP!

* Various

- Remove pushBack / pullForward functions;
- Fix c-input-inline, remove bg until hover;
- TODO: input bg colors
- Increased margin in main-pane;

* Themeing WIP

- Conductor markup: convert to buttons for accessibility;
- Conductor styles consolidated and changed for better theme support;

* Themeing WIP; significant rewrite of pane headers

- Pane headers restructured for better semantics and clarity;
- Espresso design refined and tightened;
- Grid Vue changes for better themeing support;
- TODO: fix mobile version, collapse icon is whack;

* Restored Number-type input styling for correct positioning of spinner
button;

* Themeing mods for click-icon styles

* Bring Snow theme into style parity with Espresso

- TODO: refine Snow colors;

* Mobile styling fixed

- Mobile menu icon significant fixes;
- Hover only applied to desktop;
- Reorg of mixins;

* Bring Snow theme constants into parity with Espresso

- Refined Snow styles;
- Fixed missing scroll and padding in tree;
- Pane collapse button now uses proper color;
- Item Grid view refinement;
- Cleaned up code;

* Color fixes

- Super-menu description;
- Conductor time buttons hover;
- Datepicker "in-month" items color;
- Espresso colorKeyFilter brightened;
This commit is contained in:
Charles Hacskaylo 2018-10-10 12:45:46 -07:00 committed by Pete Richards
parent 814b404614
commit 5f9f3cd8e8
19 changed files with 908 additions and 552 deletions

View File

@ -14,9 +14,9 @@
:title="item.model.name">{{item.model.name}}</div> :title="item.model.name">{{item.model.name}}</div>
<div class="c-grid-item__metadata" <div class="c-grid-item__metadata"
:title="item.type.name"> :title="item.type.name">
<span>{{item.type.name}}</span> <span class="c-grid-item__metadata__type">{{item.type.name}}</span>
<span v-if="item.model.composition !== undefined"> <span class="c-grid-item__metadata__item-count" v-if="item.model.composition !== undefined">
- {{item.model.composition.length}} item<span v-if="item.model.composition.length !== 1">s</span> {{item.model.composition.length}} item<span v-if="item.model.composition.length !== 1">s</span>
</span> </span>
</div> </div>
</div> </div>
@ -45,8 +45,8 @@
body.desktop & { body.desktop & {
flex-flow: row wrap; flex-flow: row wrap;
&__item { &__item {
height: $ueBrowseGridItemLg; height: $gridItemDesk;
width: $ueBrowseGridItemLg; width: $gridItemDesk;
margin: 0 $interiorMargin $interiorMargin 0; margin: 0 $interiorMargin $interiorMargin 0;
} }
} }
@ -62,8 +62,8 @@
&__type-icon { &__type-icon {
filter: $colorKeyFilter; filter: $colorKeyFilter;
flex: 0 0 32px; flex: 0 0 $gridItemMobile;
font-size: 2em; // Drives the size of the alias indicator when present font-size: floor($gridItemMobile / 2);
margin-right: $interiorMarginLg; margin-right: $interiorMarginLg;
} }
@ -84,13 +84,22 @@
&__name { &__name {
@include ellipsize(); @include ellipsize();
color: $colorItemFg; color: $colorItemFg;
font-size: 1.3em; font-size: 1.2em;
font-weight: 400; font-weight: 400;
margin-bottom: $interiorMarginSm; margin-bottom: $interiorMarginSm;
} }
&__metadata { &__metadata {
color: $colorItemFgDetails; color: $colorItemFgDetails;
font-size: 0.9em;
body.mobile & {
[class*='__item-count'] {
&:before {
content: ' - ';
}
}
}
} }
&__controls { &__controls {
@ -136,8 +145,8 @@
&__type-icon { &__type-icon {
flex: 1 1 auto; flex: 1 1 auto;
font-size: 6em; // Drives the size of the alias indicator when present font-size: floor($gridItemDesk / 3);
margin: $interiorMargin 22.5%; margin: $interiorMargin 22.5% $interiorMargin * 3 22.5%;
order: 2; order: 2;
transform: scale(0.9); transform: scale(0.9);
transform-origin: center; transform-origin: center;
@ -149,6 +158,20 @@
justify-content: flex-end; justify-content: flex-end;
order: 3; order: 3;
} }
&__metadata {
display: flex;
&__type {
flex: 1 1 auto;
@include ellipsize();
}
&__item-count {
opacity: 0.7;
flex: 0 0 auto;
}
}
} }
} }
</style> </style>

View File

@ -8,8 +8,7 @@
<span>{{formatTime(entry.createdOn, 'HH:mm:ss')}}</span> <span>{{formatTime(entry.createdOn, 'HH:mm:ss')}}</span>
</div> </div>
<div class="c-ne__content"> <div class="c-ne__content">
<!-- TODO: fix styling for c-input-inline when SCSS is merged and remove s-input-inline class here --> <div class="c-ne__text c-input-inline"
<div class="c-ne__text c-input-inline s-input-inline"
contenteditable="true" contenteditable="true"
ref="contenteditable" ref="contenteditable"
v-on:blur="textBlur($event, entry.id)" v-on:blur="textBlur($event, entry.id)"

View File

@ -220,6 +220,16 @@
} }
.is-realtime-mode { .is-realtime-mode {
button {
@include themedButton($colorTimeBg);
color: $colorTimeFg;
&:hover {
background: $colorTimeHov !important;
color: $colorTimeFg !important;
}
}
.c-conductor-input { .c-conductor-input {
&:before { &:before {
color: $colorTime; color: $colorTime;

View File

@ -21,10 +21,10 @@
*****************************************************************************/ *****************************************************************************/
<template> <template>
<div class="c-ctrl-wrapper c-ctrl-wrapper--menus-up"> <div class="c-ctrl-wrapper c-ctrl-wrapper--menus-up">
<div class="c-button--menu c-mode-button" <button class="c-button--menu c-mode-button"
@click="toggleMenu($event)"> @click="toggleMenu($event)">
<span class="c-button__label">{{selectedMode.name}}</span> <span class="c-button__label">{{selectedMode.name}}</span>
</div> </button>
<div class="c-menu c-super-menu c-conductor__mode-menu" <div class="c-menu c-super-menu c-conductor__mode-menu"
v-if="showMenu"> v-if="showMenu">
<div class="c-super-menu__menu"> <div class="c-super-menu__menu">
@ -66,16 +66,6 @@
min-width: 200px; min-width: 200px;
} }
} }
.is-realtime-mode {
.c-mode-button {
background: $colorTimeBg;
&:hover {
background: $colorTimeHov;
}
}
}
</style> </style>
<script> <script>

View File

@ -22,11 +22,11 @@
<template> <template>
<div class="c-ctrl-wrapper c-ctrl-wrapper--menus-up" <div class="c-ctrl-wrapper c-ctrl-wrapper--menus-up"
v-if="selectedTimeSystem.name"> v-if="selectedTimeSystem.name">
<div class="c-button--menu c-time-system-button" <button class="c-button--menu c-time-system-button"
:class="selectedTimeSystem.cssClass" :class="selectedTimeSystem.cssClass"
@click="toggleMenu($event)"> @click="toggleMenu($event)">
<span class="c-button__label">{{selectedTimeSystem.name}}</span> <span class="c-button__label">{{selectedTimeSystem.name}}</span>
</div> </button>
<div class="c-menu" v-if="showMenu"> <div class="c-menu" v-if="showMenu">
<ul> <ul>
<li @click="setTimeSystemFromView(timeSystem)" <li @click="setTimeSystemFromView(timeSystem)"
@ -40,20 +40,6 @@
</div> </div>
</template> </template>
<style lang="scss">
@import "~styles/sass-base";
.is-realtime-mode {
.c-time-system-button {
background: $colorTimeBg;
&:hover {
background: $colorTimeHov;
}
}
}
</style>
<script> <script>
export default { export default {
inject: ['openmct', 'configuration'], inject: ['openmct', 'configuration'],

View File

@ -108,7 +108,7 @@
grid-gap: 1px; grid-gap: 1px;
height: 100%; height: 100%;
$mutedOpacity: 0.7; $mutedOpacity: 0.5;
ul { ul {
display: contents; display: contents;
@ -127,7 +127,7 @@
padding: $interiorMargin; padding: $interiorMargin;
&.is-in-month { &.is-in-month {
background: rgba($colorBodyFg, 0.1); background: $colorMenuElementHilite;
} }
} }

View File

@ -0,0 +1,330 @@
/*****************************************************************************
* Open MCT, Copyright (c) 2014-2018, 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.
*****************************************************************************/
/************************************************** ESPRESSO THEME CONSTANTS */
@import "constants";
// Functions
@function buttonBg($c: $colorBtnBg) {
@return linear-gradient(lighten($c, 5%), $c);
}
// Constants
$fontBaseSize: 12px;
$smallCr: 2px;
$controlCr: 3px;
$basicCr: 4px;
// Base colors
$colorBodyBg: #393939;
$colorBodyFg: #aaa;
$colorGenBg: #222;
$colorHeadBg: #262626;
$colorHeadFg: $colorBodyFg;
$colorStatusBarBg: $colorHeadBg;
$colorStatusBarFg: $colorBodyFg;
$colorStatusBarFgHov: #aaa;
$colorKey: #0099cc;
$colorKeyFg: #fff;
$colorKeyHov: #00c0f6;
$colorKeyFilter: brightness(1) sepia(1) hue-rotate(145deg) saturate(6);
$colorKeyFilterHov: brightness(1) sepia(1) hue-rotate(145deg) saturate(7);
$colorInteriorBorder: rgba($colorBodyFg, 0.2);
$colorA: #ccc;
$colorAHov: #fff;
// Layout
$shellMainPad: 4px 0;
$shellPanePad: $interiorMargin, 7px; // TODO: Sync this with Snow theme
// Status colors, mainly used for messaging and item ancillary symbols
$colorStatusFg: #999;
$colorStatusDefault: #ccc;
$colorStatusInfo: #60ba7b;
$colorStatusAlert: #ffb66c;
$colorStatusError: #da0004;
$colorStatusBtnBg: #666;
// States
$colorPausedBg: #ff9900;
$colorPausedFg: #fff;
$colorOk: #33cc33;
// Base variations
$colorBodyBgSubtle: lighten($colorBodyBg, 5%);
$colorBodyBgSubtleHov: darken($colorKey, 50%);
$colorKeySubtle: darken($colorKey, 50%);
// Time Colors
$colorTime: #618cff;
$colorTimeBg: $colorTime;
$colorTimeFg: lighten($colorTimeBg, 30%);
$colorTimeHov: lighten($colorTime, 10%);
$colorTimeSubtle: darken($colorTime, 20%);
$colorTOI: $colorBodyFg; // was $timeControllerToiLineColor
$colorTOIHov: $colorTime; // was $timeControllerToiLineColorHov
// Edit Colors
$editColor: #00c7c3;
$editColorFg: $colorBodyFg;
$browseBorderSelectableHov: 1px dotted rgba($colorBodyFg, 0.2);
$browseShdwSelectableHov: rgba($colorBodyFg, 0.2) 0 0 3px;
$browseBorderSelected: 1px solid rgba($colorBodyFg, 0.6);
$editBorderSelectable: 1px dotted rgba($editColor, 1);
$editBorderSelectableHov: 1px dashed rgba($editColor, 1);
$editBorderSelected: 1px solid $editColor;
$editBorderDrilledIn: 1px dashed #ff4d9a;
$colorGridLines: rgba($editColor, 0.2);
// UI elements
$colorIconAlias: #4af6f3;
$colorIconAliasForKeyFilter: #aaa;
$colorProgressBarOuter: rgba(#000, 0.1);
$colorProgressBarAmt: #0a0;
// Buttons and Controls
$colorBtnBg: lighten($colorBodyBg, 10%); // !
$colorBtnBgHov: lighten($colorBtnBg, 10%); // !
$colorBtnFg: lighten($colorBodyFg, 10%); // !
$colorBtnFgHov: $colorBtnFg;
$colorBtnMajorBg: $colorKey;
$colorBtnMajorBgHov: $colorKeyHov;
$colorBtnMajorFg: $colorKeyFg;
$colorBtnMajorFgHov: darken($colorBtnMajorFg, 10%);
$colorBtnCautionBg: #f16f6f;
$colorBtnCautionBgHov: #f1504e;
$colorBtnCautionFg: $colorBtnFg;
$colorClickIcon: $colorKey;
$colorClickIconBgHov: rgba($colorKey, 0.6);
$colorClickIconFgHov: $colorKeyHov;
// Menus
$colorMenuBg: lighten($colorBodyBg, 20%);
$colorMenuFg: lighten($colorBodyFg, 30%);
$colorMenuIc: lighten($colorKey, 15%);
$colorMenuHovBg: $colorMenuIc;
$colorMenuHovFg: lighten($colorMenuFg, 10%);
$colorMenuHovIc: $colorMenuHovFg;
$colorMenuElementHilite: lighten($colorMenuBg, 10%);
$shdwMenu: rgba(black, 0.5) 0 1px 5px;
$shdwMenuText: none;
$menuItemPad: $interiorMargin, floor($interiorMargin * 1.25);
// Palettes and Swatches
$paletteItemBorderOuterColorSelected: black;
$paletteItemBorderInnerColorSelected: white;
$paletteItemBorderInnerColor: rgba($paletteItemBorderOuterColorSelected, 0.3);
// Form colors
$colorCheck: $colorKey;
$colorFormRequired: $colorKey;
$colorFormValid: $colorOk;
$colorFormError: #990000;
$colorFormInvalid: #ff2200;
$colorFormFieldErrorBg: $colorFormError;
$colorFormFieldErrorFg: rgba(#fff, 0.6);
$colorFormLines: rgba(#000, 0.1);
$colorFormSectionHeader: rgba(#000, 0.05);
$colorInputBg: rgba(black, 0.2);
$colorInputFg: $colorBodyFg;
$colorInputPlaceholder: darken($colorBodyFg, 20%);
$colorFormText: darken($colorBodyFg, 10%);
$colorInputIcon: darken($colorBodyFg, 25%);
$colorFieldHint: lighten($colorBodyFg, 40%);
$shdwInput: inset rgba(black, 0.4) 0 0 1px;
$shdwInputHov: inset rgba(black, 0.7) 0 0 1px;
$shdwInputFoc: inset rgba(black, 0.7) 0 0 3px;
// Inspector
$colorInspectorBg: lighten($colorBodyBg, 5%);
$colorInspectorFg: $colorBodyFg;
$colorInspectorPropName: darken($colorBodyFg, 20%);
$colorInspectorPropVal: lighten($colorInspectorFg, 15%);
$colorInspectorSectionHeaderBg: lighten($colorInspectorBg, 5%);
$colorInspectorSectionHeaderFg: lighten($colorInspectorBg, 40%);
// Overlay
$overlayColorBg: $colorMenuBg;
$overlayColorFg: $colorMenuFg;
$overlayButtonColorBg: lighten($overlayColorBg, 20%);
$overlayButtonColorFg: #fff;
$overlayCr: $interiorMarginLg;
// Indicator colors
$colorIndicatorAvailable: $colorKey;
$colorIndicatorDisabled: #444;
$colorIndicatorOn: $colorOk;
$colorIndicatorOff: #666;
// Limits and staleness colors//
$colorTelemFresh: lighten($colorBodyFg, 20%);
$colorTelemStale: darken($colorBodyFg, 20%);
$styleTelemStale: italic;
$colorLimitYellowBg: rgba(#ffaa00, 0.3);
$colorLimitYellowIc: #ffaa00;
$colorLimitRedBg: rgba(red, 0.3);
$colorLimitRedIc: red;
// Bubble colors
$colorInfoBubbleBg: $colorMenuBg;
$colorInfoBubbleFg: #666;
// Items
$colorItemBg: buttonBg($colorBtnBg);
$colorItemBgHov: buttonBg(lighten($colorBtnBg, 5%));
$colorListItemBg: transparent;
$colorListItemBgHov: rgba($colorKey, 0.1);
$colorItemFg: $colorBtnFg;
$colorItemFgDetails: darken($colorItemFg, 20%);
$shdwItemText: none;
// Tabular
$colorTabBorder: lighten($colorBodyBg, 10%);
$colorTabBodyBg: $colorBodyBg;
$colorTabBodyFg: lighten($colorBodyFg, 20%);
$colorTabHeaderBg: lighten($colorBodyBg, 10%);
$colorTabHeaderFg: lighten($colorBodyFg, 20%);
$colorTabHeaderBorder: $colorBodyBg;
// Plot
$colorPlotBg: rgba(black, 0.05);
$colorPlotFg: $colorBodyFg;
$colorPlotHash: black;
$opacityPlotHash: 0.2;
$stylePlotHash: dashed;
$colorPlotAreaBorder: $colorInteriorBorder;
$colorPlotLabelFg: darken($colorPlotFg, 20%);
$legendCollapsedNameMaxW: 50%;
$legendHoverValueBg: rgba($colorBodyFg, 0.2);
// Tree
$colorTreeBg: transparent;
$colorItemTreeHoverBg: lighten($colorBodyBg, 10%);
$colorItemTreeHoverFg: lighten($colorBodyFg, 10%);
$colorItemTreeIcon: $colorKey; // Used
$colorItemTreeIconHover: $colorItemTreeIcon; // Used
$colorItemTreeFg: $colorBodyFg;
$colorItemTreeSelectedBg: darken($colorKey, 15%);
$colorItemTreeSelectedFg: $colorBodyBg;
$colorItemTreeEditingBg: $editColor;
$colorItemTreeEditingFg: $editColorFg;
$colorItemTreeVC: $colorBodyFg;
$colorItemTreeVCHover: $colorKey;
$shdwItemTreeIcon: none;
// Images
$colorThumbHoverBg: $colorItemTreeHoverBg;
// Scrollbar
$scrollbarTrackSize: 7px;
$scrollbarTrackShdw: rgba(#000, 0.2) 0 1px 2px;
$scrollbarTrackColorBg: rgba(#000, 0.2);
$scrollbarThumbColor: darken($colorBodyBg, 50%);
$scrollbarThumbColorHov: $colorKey;
$scrollbarThumbColorMenu: lighten($colorMenuBg, 10%);
$scrollbarThumbColorMenuHov: lighten($scrollbarThumbColorMenu, 2%);
// Splitter
$splitterHandleD: 2px;
$splitterHandleHitMargin: 4px;
$colorSplitterBaseBg: $colorBodyBg;
$colorSplitterBg: lighten($colorSplitterBaseBg, 10%);
$colorSplitterFg: $colorBodyBg;
$colorSplitterHover: $colorKey;
$colorSplitterActive: $colorKey;
$splitterBtnD: (16px, 35px); // height, width
$splitterBtnColorBg: $colorBtnBg;
$splitterBtnColorFg: #999;
$splitterBtnLabelColorFg: #666;
$splitterCollapsedBtnColorBg: #222;
$splitterCollapsedBtnColorFg: #666;
$splitterCollapsedBtnColorBgHov: $colorKey;
$splitterCollapsedBtnColorFgHov: $colorKeyFg;
// Mobile
$colorMobilePaneLeft: darken($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
$transIn: all 50ms ease-in-out;
$transOut: all 250ms 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;
@mixin discreteItem() {
background: rgba($colorBodyFg,0.1);
border: none;
border-radius: $controlCr;
.c-input-inline:hover {
background: $colorBodyBg;
}
}
@mixin discreteItemInnerElem() {
border: 1px solid rgba(#fff, 0.1);
border-radius: $controlCr;
}
@mixin themedButton($c: $colorBtnBg) {
background: linear-gradient(lighten($c, 5%), $c);
box-shadow: rgba(black, 0.5) 0 0 2px;
}
/**************************************************** NOT USED, LEAVE FOR NOW */
// Slider controls, not in use
/*
$sliderColorBase: $colorKey;
$sliderColorRangeHolder: rgba(black, 0.07);
$sliderColorRange: rgba($sliderColorBase, 0.2);
$sliderColorRangeHov: rgba($sliderColorBase, 0.4);
$sliderColorKnob: darken($sliderColorBase, 20%);
$sliderColorKnobHov: rgba($sliderColorBase, 0.7);
$sliderColorRangeValHovBg: $sliderColorRange;
$sliderColorRangeValHovFg: $colorBodyFg;
$sliderKnobW: 15px;
$sliderKnobR: 2px;
*/
// Content status
/*
$colorAlert: #ff3c00;
$colorWarningHi: #990000;
$colorWarningLo: #ff9900;
$colorDiagnostic: #a4b442;
$colorCommand: #3693bd;
$colorInfo: #2294a2;
$colorOk: #33cc33;
*/

View File

@ -20,115 +20,73 @@
* at runtime from the About dialog for additional information. * at runtime from the About dialog for additional information.
*****************************************************************************/ *****************************************************************************/
/****************************************************** SNOW THEME CONSTANTS */
@import "constants"; @import "constants";
// Functions // Functions
@function pullForward($c: $colorBodyBg, $p: 20%) { @function buttonBg($c: $colorBtnBg) {
// For dark interfaces, lighter things come forward - opposite for light interfaces @return $c;
@return darken($c, $p);
} }
@function pushBack($c: $colorBodyBg, $p: 20%) { // Constants
// For dark interfaces, darker things move back - opposite for light interfaces
@return lighten($c, $p);
}
// Global
$fontBaseSize: 12px; $fontBaseSize: 12px;
$smallCr: 2px;
$controlCr: 3px;
$basicCr: 4px;
// Base colors
$colorBodyBg: #fcfcfc; $colorBodyBg: #fcfcfc;
$colorBodyFg: #666; $colorBodyFg: #666;
$colorGenBg: #fff; $colorGenBg: #fff;
$colorHeadBg: #eee;
$colorHeadFg: $colorBodyFg;
$colorStatusBarBg: #000; $colorStatusBarBg: #000;
$colorStatusBarFg: #999; $colorStatusBarFg: #999;
$colorStatusBarFgHov: #aaa; $colorStatusBarFgHov: #aaa;
$colorKey: #0099cc; $colorKey: #0099cc;
$colorKeyFilter: brightness(0.9) sepia(1) hue-rotate(145deg) saturate(6);
$colorKeyFilterHov: brightness(1) sepia(1) hue-rotate(145deg) saturate(7);
$colorKeySelectedBg: $colorKey;
$colorKeyFg: #fff; $colorKeyFg: #fff;
$colorKeyHov: #00c0f6; $colorKeyHov: #00c0f6;
$colorEditAreaBg: #eafaff; // Deprecated, use $editColor instead $colorKeyFilter: brightness(0.9) sepia(1) hue-rotate(145deg) saturate(6);
$colorEditAreaFg: #4bb1c7; // Deprecated, use $editColor instead $colorKeyFilterHov: brightness(1) sepia(1) hue-rotate(145deg) saturate(7);
$colorInteriorBorder: rgba($colorBodyFg, 0.2); $colorInteriorBorder: rgba($colorBodyFg, 0.2);
$colorA: #999; $colorA: #999;
$colorAHov: $colorKey; $colorAHov: $colorKey;
$contrastRatioPercent: 40%;
$hoverRatioPercent: 10%;
$basicCr: 4px;
$controlCr: 3px;
$smallCr: 2px;
$overlayCr: 11px;
$shdwTextSubtle: rgba(black, 0.2) 0 1px 2px;
// Variations // Layout
$colorBodyBgSubtle: pullForward($colorBodyBg, 5%); $shellMainPad: 4px 0;
$colorBodyBgSubtleHov: pushBack($colorKey, 50%); $shellPanePad: 0 7px;
$colorKeySubtle: pushBack($colorKey, 50%);
// Status colors, mainly used for messaging and item ancillary symbols
$colorStatusFg: #999;
$colorStatusDefault: #ccc;
$colorStatusInfo: #60ba7b;
$colorStatusAlert: #ffb66c;
$colorStatusError: #da0004;
$colorStatusBtnBg: #666;
// States
$colorPausedBg: #ff9900;
$colorPausedFg: #fff;
$colorOk: #33cc33;
// Base variations
$colorBodyBgSubtle: darken($colorBodyBg, 5%);
$colorBodyBgSubtleHov: lighten($colorKey, 50%);
$colorKeySubtle: lighten($colorKey, 50%);
// Time Colors
$colorTime: #618cff; $colorTime: #618cff;
$colorTimeBg: $colorTime; $colorTimeBg: $colorTime;
$colorTimeFg: $colorBodyBg; $colorTimeFg: $colorBodyBg;
$colorTimeHov: pushBack($colorTime, 5%); $colorTimeHov: lighten($colorTime, 5%);
$colorTimeSubtle: pushBack($colorTime, 20%); $colorTimeSubtle: lighten($colorTime, 20%);
$colorTOI: $colorBodyFg; // was $timeControllerToiLineColor
// Buttons and Controls $colorTOIHov: $colorTime; // was $timeControllerToiLineColorHov
$btnPad: $interiorMargin, $interiorMargin * 1.25;
$colorBtnBg: #aaaaaa;
$colorBtnBgHov: pullForward($colorBtnBg, $hoverRatioPercent);
$colorBtnFg: #fff;
$colorBtnFgHov: $colorBtnFg;
$colorBtnIcon: #eee;
$colorBtnIconHov: $colorBtnFgHov;
$colorBtnMajorBg: $colorKey;
$colorBtnMajorBgHov: $colorKeyHov;
$colorBtnMajorFg: $colorKeyFg;
$colorBtnMajorFgHov: pushBack($colorBtnMajorFg, $hoverRatioPercent);
$colorBtnCautionBg: #f16f6f;
$colorBtnCautionBgHov: #f1504e;
$colorBtnCautionFg: $colorBtnFg;
$colorClickIcon: $colorKey;
$colorClickIconHov: $colorKeyHov;
$colorToggleIcon: rgba($colorClickIcon, 0.5);
$colorToggleIconActive: $colorKey;
$colorToggleIconHov: rgba($colorToggleIconActive, 0.5);
$colorInvokeMenu: #000;
$contrastInvokeMenuPercent: 40%;
$shdwBtns: none;
$shdwBtnsOverlay: none;
$sliderColorBase: $colorKey;
$sliderColorRangeHolder: rgba(black, 0.07);
$sliderColorRange: rgba($sliderColorBase, 0.2);
$sliderColorRangeHov: rgba($sliderColorBase, 0.4);
$sliderColorKnob: pushBack($sliderColorBase, 20%);
$sliderColorKnobHov: rgba($sliderColorBase, 0.7);
$sliderColorRangeValHovBg: $sliderColorRange;
$sliderColorRangeValHovFg: $colorBodyFg;
$sliderKnobW: 15px;
$sliderKnobR: 2px;
$timeControllerToiLineColor: $colorBodyFg;
$timeControllerToiLineColorHov: $colorTime;
$colorTransLucBg: #666; // Used as a visual blocking element over variable backgrounds, like imagery
$createBtnTextTransform: uppercase;
// Foundation Colors
$colorAlt1: #776ba2;
$colorAlert: #ff3c00;
$colorWarningHi: #990000;
$colorWarningLo: #ff9900;
$colorDiagnostic: #a4b442;
$colorCommand: #3693bd;
$colorInfo: #2294a2;
$colorOk: #33cc33;
$colorIconAlias: #4af6f3;
$colorIconAliasForKeyFilter: #aaa;
$colorPausedBg: #ff9900;
$colorPausedFg: #fff;
$colorCreateBtn: $colorKey;
$colorInvokeMenu: #fff;
$colorObjHdrTxt: $colorBodyFg;
$colorObjHdrIc: lighten($colorObjHdrTxt, 30%);
$colorTick: rgba(black, 0.2);
// Edit Colors
$editColor: #00c7c3; $editColor: #00c7c3;
$editColorFg: $colorBodyFg;
$browseBorderSelectableHov: 1px dotted rgba($colorBodyFg, 0.2); $browseBorderSelectableHov: 1px dotted rgba($colorBodyFg, 0.2);
$browseShdwSelectableHov: rgba($colorBodyFg, 0.2) 0 0 3px; $browseShdwSelectableHov: rgba($colorBodyFg, 0.2) 0 0 3px;
$browseBorderSelected: 1px solid rgba($colorBodyFg, 0.6); $browseBorderSelected: 1px solid rgba($colorBodyFg, 0.6);
@ -138,18 +96,39 @@ $editBorderSelected: 1px solid $editColor;
$editBorderDrilledIn: 1px dashed #ff4d9a; $editBorderDrilledIn: 1px dashed #ff4d9a;
$colorGridLines: rgba($editColor, 0.2); $colorGridLines: rgba($editColor, 0.2);
// UI elements
$colorIconAlias: #4af6f3;
$colorIconAliasForKeyFilter: #aaa;
$colorProgressBarOuter: rgba(#000, 0.1);
$colorProgressBarAmt: #0a0;
// Buttons and Controls
$colorBtnBg: #aaaaaa;
$colorBtnBgHov: darken($colorBtnBg, 10%);
$colorBtnFg: #fff;
$colorBtnFgHov: $colorBtnFg;
$colorBtnMajorBg: $colorKey;
$colorBtnMajorBgHov: $colorKeyHov;
$colorBtnMajorFg: $colorKeyFg;
$colorBtnMajorFgHov: lighten($colorBtnMajorFg, 10%);
$colorBtnCautionBg: #f16f6f;
$colorBtnCautionBgHov: #f1504e;
$colorBtnCautionFg: $colorBtnFg;
$colorClickIcon: $colorKey;
$colorClickIconBgHov: rgba($colorKey, 0.2);
$colorClickIconFgHov: $colorKeyHov;
// Menus // Menus
$colorMenuBg: pushBack($colorBodyBg, 10%); $colorMenuBg: lighten($colorBodyBg, 10%);
$colorMenuFg: pullForward($colorMenuBg, 70%); $colorMenuFg: darken($colorMenuBg, 70%);
$colorMenuIc: $colorKey; $colorMenuIc: $colorKey;
$colorMenuHovBg: $colorMenuIc; //pullForward($colorMenuBg, $hoverRatioPercent); $colorMenuHovBg: $colorMenuIc;
$colorMenuHovFg: $colorMenuBg; $colorMenuHovFg: $colorMenuBg;
$colorMenuHovIc: $colorMenuBg; $colorMenuHovIc: $colorMenuBg;
$colorMenuElementHilite: darken($colorMenuBg, 10%);
$shdwMenu: rgba(black, 0.5) 0 1px 5px; $shdwMenu: rgba(black, 0.5) 0 1px 5px;
$shdwMenuText: none; $shdwMenuText: none;
$colorCreateMenuLgIcon: $colorKey; $menuItemPad: $interiorMargin, floor($interiorMargin * 1.25);
$colorCreateMenuText: $colorBodyFg;
$menuItemPad: ($interiorMargin, nth($btnPad, 2));
// Palettes and Swatches // Palettes and Swatches
$paletteItemBorderOuterColorSelected: black; $paletteItemBorderOuterColorSelected: black;
@ -160,7 +139,7 @@ $paletteItemBorderInnerColor: rgba($paletteItemBorderOuterColorSelected, 0.3);
$colorCheck: $colorKey; $colorCheck: $colorKey;
$colorFormRequired: $colorKey; $colorFormRequired: $colorKey;
$colorFormValid: $colorOk; $colorFormValid: $colorOk;
$colorFormError: $colorWarningHi; $colorFormError: #990000;
$colorFormInvalid: #ff2200; $colorFormInvalid: #ff2200;
$colorFormFieldErrorBg: $colorFormError; $colorFormFieldErrorBg: $colorFormError;
$colorFormFieldErrorFg: rgba(#fff, 0.6); $colorFormFieldErrorFg: rgba(#fff, 0.6);
@ -168,35 +147,28 @@ $colorFormLines: rgba(#000, 0.1);
$colorFormSectionHeader: rgba(#000, 0.05); $colorFormSectionHeader: rgba(#000, 0.05);
$colorInputBg: $colorGenBg; $colorInputBg: $colorGenBg;
$colorInputFg: $colorBodyFg; $colorInputFg: $colorBodyFg;
$colorInputPlaceholder: pushBack($colorBodyFg, 20%); $colorInputPlaceholder: lighten($colorBodyFg, 20%);
$colorFormText: pushBack($colorBodyFg, 10%); $colorFormText: lighten($colorBodyFg, 10%);
$colorInputIcon: pushBack($colorBodyFg, 25%); $colorInputIcon: lighten($colorBodyFg, 25%);
$colorFieldHint: pullForward($colorBodyFg, 40%); $colorFieldHint: darken($colorBodyFg, 40%);
$shdwInput: inset rgba(black, 0.4) 0 0 1px; $shdwInput: inset rgba(black, 0.4) 0 0 1px;
$shdwInputHov: inset rgba(black, 0.7) 0 0 1px; $shdwInputHov: inset rgba(black, 0.7) 0 0 1px;
$shdwInputFoc: inset rgba(black, 0.7) 0 0 3px; $shdwInputFoc: inset rgba(black, 0.7) 0 0 3px;
// Inspector // Inspector
$colorInspectorBg: pullForward($colorBodyBg, 5%); $colorInspectorBg: darken($colorBodyBg, 5%);
$colorInspectorFg: $colorBodyFg; $colorInspectorFg: $colorBodyFg;
$colorInspectorPropName: pushBack($colorBodyFg, 20%); $colorInspectorPropName: lighten($colorBodyFg, 20%);
$colorInspectorPropVal: pullForward($colorInspectorFg, 15%); $colorInspectorPropVal: darken($colorInspectorFg, 15%);
$colorInspectorSectionHeaderBg: pullForward($colorInspectorBg, 5%); $colorInspectorSectionHeaderBg: darken($colorInspectorBg, 5%);
$colorInspectorSectionHeaderFg: pullForward($colorInspectorBg, 40%); $colorInspectorSectionHeaderFg: darken($colorInspectorBg, 40%);
// Status colors, mainly used for messaging and item ancillary symbols // Overlay
$colorStatusFg: #999; $overlayColorBg: $colorMenuBg;
$colorStatusDefault: #ccc; $overlayColorFg: $colorMenuFg;
$colorStatusInfo: #60ba7b; $overlayButtonColorBg: $colorBtnBg;
$colorStatusAlert: #ffb66c; $overlayButtonColorFg: $colorBtnFg;
$colorStatusError: #da0004; $overlayCr: $interiorMarginLg;
$colorStatusBtnBg: #666;
$colorProgressBarOuter: rgba(#000, 0.1);
$colorProgressBarAmt: #0a0;
$progressBarHOverlay: 15px;
$progressBarStripeW: 20px;
$shdwStatusIc: rgba(white, 0.8) 0 0px 5px;
$animPausedPulseDur: 1s;
// Indicator colors // Indicator colors
$colorIndicatorAvailable: $colorKey; $colorIndicatorAvailable: $colorKey;
@ -204,13 +176,9 @@ $colorIndicatorDisabled: #444;
$colorIndicatorOn: $colorOk; $colorIndicatorOn: $colorOk;
$colorIndicatorOff: #666; $colorIndicatorOff: #666;
// Selects
$colorSelectBg: $colorBtnBg;
$colorSelectFg: $colorBtnFg;
// Limits and staleness colors// // Limits and staleness colors//
$colorTelemFresh: pullForward($colorBodyFg, 20%); $colorTelemFresh: darken($colorBodyFg, 20%);
$colorTelemStale: pushBack($colorBodyFg, 20%); $colorTelemStale: lighten($colorBodyFg, 20%);
$styleTelemStale: italic; $styleTelemStale: italic;
$colorLimitYellowBg: rgba(#ffaa00, 0.3); $colorLimitYellowBg: rgba(#ffaa00, 0.3);
$colorLimitYellowIc: #ffaa00; $colorLimitYellowIc: #ffaa00;
@ -220,37 +188,22 @@ $colorLimitRedIc: red;
// Bubble colors // Bubble colors
$colorInfoBubbleBg: $colorMenuBg; $colorInfoBubbleBg: $colorMenuBg;
$colorInfoBubbleFg: #666; $colorInfoBubbleFg: #666;
$colorThumbsBubbleFg: pullForward($colorBodyFg, 10%);
$colorThumbsBubbleBg: pullForward($colorBodyBg, 10%);
// Overlay
$colorOvrBlocker: rgba(black, 0.7); // Used
$colorOvrBg: $colorBodyBg; // Used
$colorOvrFg: $colorBodyFg; // Used
$colorOvrBtnBg: pullForward($colorOvrBg, 40%);
$colorOvrBtnFg: #fff;
$colorFieldHintOverlay: pullForward($colorOvrBg, 40%);
$durLargeViewExpand: 250ms;
// Items // Items
$colorItemBg: #ddd; $colorItemBg: lighten($colorBtnBg, 20%);
$colorItemBgHov: rgba($colorKey, 0.1); //pushBack($colorItemBg, $hoverRatioPercent * 0.4); $colorItemBgHov: lighten($colorItemBg, 5%);
$colorListItemBg: transparent; $colorListItemBg: transparent;
$colorListItemBgHov: rgba($colorKey, 0.1); $colorListItemBgHov: rgba($colorKey, 0.1);
$colorItemFg: $colorBodyFg; $colorItemFg: $colorBodyFg;
$colorItemFgDetails: pushBack($colorItemFg, 15%); $colorItemFgDetails: lighten($colorItemFg, 15%);
$colorItemIc: $colorKey;
$colorItemSubIcons: $colorItemFgDetails;
$colorItemOpenIcon: $colorItemFgDetails;
$shdwItemText: none; $shdwItemText: none;
$colorItemBgSelected: $colorKey;
// Tabular // Tabular
$colorTabBorder: pullForward($colorBodyBg, 10%); $colorTabBorder: darken($colorBodyBg, 10%);
$colorTabBodyBg: $colorBodyBg; $colorTabBodyBg: $colorBodyBg;
$colorTabBodyFg: pullForward($colorBodyFg, 20%); $colorTabBodyFg: darken($colorBodyFg, 20%);
$colorTabHeaderBg: pullForward($colorBodyBg, 10%); $colorTabHeaderBg: darken($colorBodyBg, 10%);
$colorTabHeaderFg: pullForward($colorBodyFg, 20%); $colorTabHeaderFg: darken($colorBodyFg, 20%);
$colorTabHeaderBorder: $colorBodyBg; $colorTabHeaderBorder: $colorBodyBg;
// Plot // Plot
@ -260,24 +213,23 @@ $colorPlotHash: black;
$opacityPlotHash: 0.2; $opacityPlotHash: 0.2;
$stylePlotHash: dashed; $stylePlotHash: dashed;
$colorPlotAreaBorder: $colorInteriorBorder; $colorPlotAreaBorder: $colorInteriorBorder;
$colorPlotLabelFg: pushBack($colorPlotFg, 20%); $colorPlotLabelFg: lighten($colorPlotFg, 20%);
$legendCollapsedNameMaxW: 50%; $legendCollapsedNameMaxW: 50%;
$legendHoverValueBg: rgba($colorBodyFg, 0.2); $legendHoverValueBg: rgba($colorBodyFg, 0.2);
// Tree // Tree
$colorTreeBg: #f0f0f0; // Used $colorTreeBg: transparent;
$colorItemTreeHoverBg: pullForward($colorBodyBg, $hoverRatioPercent); $colorItemTreeHoverBg: darken($colorBodyBg, 10%);
$colorItemTreeHoverFg: pullForward($colorBodyFg, $hoverRatioPercent); $colorItemTreeHoverFg: darken($colorBodyFg, 10%);
$colorItemTreeIcon: $colorKey; // Used $colorItemTreeIcon: $colorKey; // Used
$colorItemTreeIconHover: $colorItemTreeIcon; // Used $colorItemTreeIconHover: $colorItemTreeIcon; // Used
$colorItemTreeFg: $colorBodyFg; $colorItemTreeFg: $colorBodyFg;
$colorItemTreeSelectedBg: pushBack($colorKey, 15%); $colorItemTreeSelectedBg: lighten($colorKey, 15%);
$colorItemTreeSelectedFg: $colorBodyBg; $colorItemTreeSelectedFg: $colorBodyBg;
$colorItemTreeEditingBg: #caf1ff; $colorItemTreeEditingBg: $editColor;
$colorItemTreeEditingFg: $colorEditAreaFg; $colorItemTreeEditingFg: $editColorFg;
$colorItemTreeVC: $colorBodyFg; $colorItemTreeVC: $colorBodyFg;
$colorItemTreeVCHover: $colorKey; $colorItemTreeVCHover: $colorKey;
$colorItemTreeSelectedVC: $colorBodyBg;
$shdwItemTreeIcon: none; $shdwItemTreeIcon: none;
// Images // Images
@ -289,54 +241,37 @@ $scrollbarTrackShdw: rgba(#000, 0.2) 0 1px 2px;
$scrollbarTrackColorBg: rgba(#000, 0.2); $scrollbarTrackColorBg: rgba(#000, 0.2);
$scrollbarThumbColor: darken($colorBodyBg, 50%); $scrollbarThumbColor: darken($colorBodyBg, 50%);
$scrollbarThumbColorHov: $colorKey; $scrollbarThumbColorHov: $colorKey;
$scrollbarThumbColorOverlay: darken($colorOvrBg, 50%); $scrollbarThumbColorMenu: darken($colorMenuBg, 10%);
$scrollbarThumbColorOverlayHov: $scrollbarThumbColorHov; $scrollbarThumbColorMenuHov: darken($scrollbarThumbColorMenu, 2%);
$scrollbarThumbColorMenu: pullForward($colorMenuBg, 10%);
$scrollbarThumbColorMenuHov: pullForward($scrollbarThumbColorMenu, 2%);
// Splitter // Splitter
$splitterD: 7px;
$splitterHandleD: 2px; $splitterHandleD: 2px;
$splitterHandleHitMargin: 4px; $splitterHandleHitMargin: 4px;
$splitterGrippyD: ($splitterHandleD - 4, 75px, 50px); // thickness, length, min-length
$colorSplitterBaseBg: $colorBodyBg; $colorSplitterBaseBg: $colorBodyBg;
$colorSplitterBg: pullForward($colorSplitterBaseBg, 20%); $colorSplitterBg: darken($colorSplitterBaseBg, 20%);
$colorSplitterFg: $colorBodyBg; $colorSplitterFg: $colorBodyBg;
$colorSplitterHover: $colorKey; // pullForward($colorSplitterBg, $hoverRatioPercent * 2); $colorSplitterHover: $colorKey;
$colorSplitterActive: $colorKey; $colorSplitterActive: $colorKey;
$splitterBtnD: (16px, 35px); // height, width $splitterBtnD: (16px, 35px); // height, width
$splitterBtnColorBg: #eee; $splitterBtnColorBg: $colorBtnBg;
$splitterBtnColorFg: #999; $splitterBtnColorFg: #ddd;
$splitterBtnColorHoverBg: rgba($colorKey, 1); $splitterBtnLabelColorFg: #999;
$splitterBtnColorHoverFg: $colorBodyBg; $splitterCollapsedBtnColorBg: #ccc;
$colorSplitterGrippy: pullForward($colorSplitterBaseBg, 30%); $splitterCollapsedBtnColorFg: #666;
$splitterShdw: none; $splitterCollapsedBtnColorBgHov: $colorKey;
$splitterEndCr: none; $splitterCollapsedBtnColorFgHov: $colorKeyFg;
// Minitabs
$colorMiniTabBg: $colorSplitterBg;
$colorMiniTabFg: pullForward($colorMiniTabBg, 30%);
$colorMiniTabBgHov: $colorSplitterHover;
$colorMiniTabFgHov: #fff;
// Mobile // Mobile
$colorMobilePaneLeft: darken($colorBodyBg, 2%); $colorMobilePaneLeft: darken($colorBodyBg, 2%);
$colorMobilePaneLeftTreeItemBg: rgba($colorBodyFg, 0.1); //pullForward($colorMobilePaneLeft, 3%); $colorMobilePaneLeftTreeItemBg: rgba($colorBodyFg, 0.1);
$colorMobilePaneLeftTreeItemFg: $colorItemTreeFg; $colorMobilePaneLeftTreeItemFg: $colorItemTreeFg;
$colorMobileSelectListTreeItemBg: rgba(#000, 0.05); $colorMobileSelectListTreeItemBg: rgba(#000, 0.05);
// Datetime Picker, Calendar
$colorCalCellHovBg: $colorKey;
$colorCalCellHovFg: $colorKeyFg;
$colorCalCellSelectedBg: $colorItemTreeSelectedBg;
$colorCalCellSelectedFg: $colorItemTreeSelectedFg;
$colorCalCellInMonthBg: pullForward($colorMenuBg, 5%);
// About Screen // About Screen
$colorAboutLink: #84b3ff; $colorAboutLink: $colorKeySubtle;
// Loading // Loading
$colorLoadingFg: $colorAlt1; $colorLoadingFg: #776ba2;
$colorLoadingBg: rgba($colorLoadingFg, 0.1); $colorLoadingBg: rgba($colorLoadingFg, 0.1);
// Transitions // Transitions
@ -346,14 +281,50 @@ $transInBounce: all 200ms cubic-bezier(.47,.01,.25,1.5);
$transInBounceBig: all 300ms cubic-bezier(.2,1.6,.6,3); $transInBounceBig: all 300ms cubic-bezier(.2,1.6,.6,3);
// Discrete items, like Notebook entries, Widget rules // Discrete items, like Notebook entries, Widget rules
$createBtnTextTransform: uppercase;
@mixin discreteItem() { @mixin discreteItem() {
background: rgba($colorBodyFg,0.1); background: rgba($colorBodyFg,0.1);
border: 1px solid $colorInteriorBorder; border: 1px solid $colorInteriorBorder;
border-radius: $controlCr; border-radius: $controlCr;
.c-input-inline:hover { .c-input-inline:hover {
background: $colorBodyBg; background: $colorBodyBg;
} }
} }
@mixin discreteItemInnerElem() { @mixin discreteItemInnerElem() {
border: 1px solid $colorBodyBg; border: 1px solid $colorBodyBg;
border-radius: $controlCr; } border-radius: $controlCr;
}
@mixin themedButton($c: $colorBtnBg) {
background: $c;
}
/**************************************************** NOT USED, LEAVE FOR NOW */
// Slider controls, not in use
/*
$sliderColorBase: $colorKey;
$sliderColorRangeHolder: rgba(black, 0.07);
$sliderColorRange: rgba($sliderColorBase, 0.2);
$sliderColorRangeHov: rgba($sliderColorBase, 0.4);
$sliderColorKnob: lighten($sliderColorBase, 20%);
$sliderColorKnobHov: rgba($sliderColorBase, 0.7);
$sliderColorRangeValHovBg: $sliderColorRange;
$sliderColorRangeValHovFg: $colorBodyFg;
$sliderKnobW: 15px;
$sliderKnobR: 2px;
*/
// Content status
/*
$colorAlert: #ff3c00;
$colorWarningHi: #990000;
$colorWarningLo: #ff9900;
$colorDiagnostic: #a4b442;
$colorCommand: #3693bd;
$colorInfo: #2294a2;
$colorOk: #33cc33;
*/

View File

@ -45,14 +45,15 @@ $overlayInnerMargin: 25px;
/*************** Items */ /*************** Items */
$itemPadLR: 5px; $itemPadLR: 5px;
$ueBrowseGridItemLg: 200px; $gridItemDesk: 175px;
$gridItemMobile: 32px;
/*************** Tabular */ /*************** Tabular */
$tabularHeaderH: 22px; $tabularHeaderH: 22px;
$tabularTdPadLR: $itemPadLR; $tabularTdPadLR: $itemPadLR;
$tabularTdPadTB: 2px; $tabularTdPadTB: 2px;
/************************** MOBILE */ /************************** MOBILE */
$mobileMenuIconD: 34px; // Used $mobileMenuIconD: 24px; // Used
$mobileTreeItemH: 35px; // Used $mobileTreeItemH: 35px; // Used
/************************** VISUAL */ /************************** VISUAL */

View File

@ -20,115 +20,6 @@
* at runtime from the About dialog for additional information. * at runtime from the About dialog for additional information.
*****************************************************************************/ *****************************************************************************/
/******************************************************** PLACEHOLDERS */
@mixin cControl() {
$fs: 1em;
@include userSelectNone();
display: inline-flex;
align-items: center;
justify-content: center;
overflow: hidden;
&:before,
&:after {
font-family: symbolsfont;
display: block;
flex: 0 0 auto;
}
&:after {
font-size: 0.8em;
}
[class*="__label"] {
@include ellipsize();
display: block;
line-height: $fs; // Remove effect on top and bottom padding
font-size: $fs;
}
}
@mixin cButton() {
@include cControl();
background: $colorBtnBg;
border-radius: $controlCr;
color: $colorBtnFg;
cursor: pointer;
padding: nth($btnPad, 1) nth($btnPad, 2);
&:hover {
background: $colorBtnBgHov;
color: $colorBtnFgHov;
}
&[class*="--major"] {
background: $colorBtnMajorBg;
color: $colorBtnMajorFg;
&:hover {
background: $colorBtnMajorBgHov;
color: $colorBtnMajorFgHov;
}
}
&[class*='--caution'] {
background: $colorBtnCautionBg;
color: $colorBtnCautionFg;
&:hover {
background: $colorBtnCautionBgHov;
}
}
}
@mixin cClickIcon() {
// A clickable element that just includes the icon, no background
// Padding is included to facilitate a bigger hit area
// Make the icon bigger relative to its container
@include cControl();
$pLR: 3px;
$pTB: 3px;
border-radius: $controlCr;
color: $colorKey;
cursor: pointer;
padding: $pTB $pLR ;
&:hover {
background: rgba($colorKey, 0.2);
}
&:before,
*:before {
// *:before handles any nested containers that may contain glyph elements
// Needed for c-togglebutton.
font-size: 1.3em;
}
}
@mixin cCtrlWrapper {
// Provides a wrapper around buttons and other controls
// Contains control and provides positioning context for contained menu/palette.
// Wraps --menu elements, contains button and menu
overflow: visible;
.c-menu {
// Default position of contained menu
top: 100%; left: 0;
}
&[class*='--menus-up'] {
.c-menu {
top: auto; bottom: 100%;
}
}
&[class*='--menus-left'] {
.c-menu {
left: auto; right: 0;
}
}
}
/********* Buttons */ /********* Buttons */
// Optionally can include icon in :before via markup // Optionally can include icon in :before via markup
button { button {
@ -206,7 +97,7 @@ button {
font-size: 0.7em; font-size: 0.7em;
} }
} }
/********* Disclosure Triangle */ /********* Disclosure Triangle */
// Provides an arrow icon that when clicked expands an element to reveal its contents. // Provides an arrow icon that when clicked expands an element to reveal its contents.
// Used in tree items. Always placed BEFORE an element. // Used in tree items. Always placed BEFORE an element.
.c-disclosure-triangle { .c-disclosure-triangle {
@ -237,55 +128,73 @@ button {
} }
/******************************************************** FORM ELEMENTS */ /******************************************************** FORM ELEMENTS */
/********* Inline inputs */ input, textarea {
.c-input-inline { font-family: inherit;
// A text input or contenteditable element that indicates edit affordance on hover and looks like an input on focus font-weight: inherit;
@include input-base(); letter-spacing: inherit;
border: 1px solid transparent; }
display: block !important;
min-width: 0;
padding-left: 0;
padding-right: 0;
overflow: hidden;
transition: all 250ms ease;
white-space: nowrap;
&:not(:focus) { input[type=text],
text-overflow: ellipsis; input[type=search],
} input[type=number] {
@include reactive-input();
&:hover, padding: $inputTextP;
&:focus { &.numeric {
padding-left: $inputTextPLeftRight; text-align: right;
padding-right: $inputTextPLeftRight;
}
&:hover {
border-color: rgba($colorBodyFg, 0.2);
}
&:focus {
@include nice-input($shdw: rgba(0, 0, 0, 0.6) 0 1px 3px);
border-color: transparent;
} }
} }
.c-labeled-input { input[type=number]::-webkit-inner-spin-button,
// An input used in the Toolbar input[type=number]::-webkit-outer-spin-button {
// Assumes label is before the input margin-right: -5px !important;
@include cControl(); margin-top: -1px !important;
input {
margin-left: $interiorMarginSm;
}
} }
/******************************************************** HYPERLINKS AND HYPERLINK BUTTONS */ .c-input {
.c-hyperlink { &--datetime {
&--link { // Sized for values such as 2018-09-28 22:32:33.468Z
color: $colorKey; width: 160px;
} }
&--button { &--hrs-min-sec {
@include cButton(); // Sized for values such as 00:25:00
width: 60px;
}
&-inline,
&--inline {
// A text input or contenteditable element that indicates edit affordance on hover and looks like an input on focus
@include reactive-input($bg: transparent);
box-shadow: none;
display: block !important;
min-width: 0;
padding-left: 0;
padding-right: 0;
overflow: hidden;
transition: all 250ms ease;
white-space: nowrap;
&:not(:focus) {
text-overflow: ellipsis;
}
&:hover,
&:focus {
background: $colorInputBg;
padding-left: $inputTextPLeftRight;
padding-right: $inputTextPLeftRight;
}
}
&--labeled {
// TODO: replace .c-labeled-input with this
// An input used in the Toolbar
// Assumes label is before the input
@include cControl();
input {
margin-left: $interiorMarginSm;
}
} }
} }
@ -323,7 +232,6 @@ button {
} }
@mixin menuInner() { @mixin menuInner() {
color: $colorMenuFg;
li { li {
@include cControl(); @include cControl();
justify-content: start; justify-content: start;
@ -349,10 +257,6 @@ button {
} }
} }
@mixin modalMenu() {
// Optional modifier that makes a c-menu more mobile-friendly
}
.c-menu { .c-menu {
@include menuOuter(); @include menuOuter();
@include menuInner(); @include menuInner();
@ -397,11 +301,6 @@ button {
justify-content: stretch; justify-content: stretch;
.l-item-description { .l-item-description {
&__icon,
&__description {
//flex: 1 1 50%;
}
&__name, &__name,
&__description { &__description {
margin-top: $interiorMarginLg; margin-top: $interiorMarginLg;
@ -413,6 +312,7 @@ button {
} }
&__name { &__name {
color: $colorMenuFg;
flex: 0 0 auto; flex: 0 0 auto;
font-size: 1.25em; font-size: 1.25em;
} }
@ -576,3 +476,9 @@ button {
} }
} }
} }
/***************************************************** SLIDERS */
.c-slider {
@include cControl();
> * + * { margin-left: $interiorMargin; }
}

View File

@ -49,7 +49,7 @@
font-style: normal; font-style: normal;
} }
/******************************************************** RESETS */ /******************************* RESETS */
*, *,
:before, :before,
:after { :after {
@ -60,7 +60,7 @@ div {
position: relative; position: relative;
} }
/******************************************************** UTILITIES */ /******************************* UTILITIES */
.u-contents { .u-contents {
display: contents; display: contents;
} }
@ -74,7 +74,7 @@ div {
} }
} }
/******************************************************** BROWSER ELEMENTS */ /******************************* BROWSER ELEMENTS */
body.desktop { body.desktop {
::-webkit-scrollbar { ::-webkit-scrollbar {
box-sizing: border-box; box-sizing: border-box;
@ -92,30 +92,16 @@ body.desktop {
} }
} }
.overlay ::-webkit-scrollbar-thumb { ::-webkit-scrollbar-corner {
background: $scrollbarThumbColorOverlay; background: transparent;
&:hover {
background: $scrollbarThumbColorOverlayHov;
}
} }
.menu ::-webkit-scrollbar-thumb { .c-menu ::-webkit-scrollbar-thumb {
background: $scrollbarThumbColorMenu; background: $scrollbarThumbColorMenu;
&:hover { &:hover {
background: $scrollbarThumbColorMenuHov; background: $scrollbarThumbColorMenuHov;
} }
} }
::-webkit-scrollbar-corner {
background: transparent;
}
}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
//margin: -1px -5px inherit -5px !important;
margin-right: -5px !important;
margin-top: -1px !important;
} }
/************************** HTML ENTITIES */ /************************** HTML ENTITIES */
@ -223,21 +209,7 @@ body.desktop .has-local-controls {
//} //}
//} //}
/******************************************************** IS */ /************************** LEGACY */
.is-selectable {
&:hover {
}
}
.is-editing {
.is-selectable {
}
}
/******************************************************** LEGACY */
mct-container { mct-container {
display: block; display: block;
@ -309,6 +281,21 @@ a.disabled {
text-align: center; text-align: center;
} }
.no-selection {
// aka selection = "None". Used in palettes and their menu buttons.
$c: red;
$s: 48%;
$e: 52%;
background-image: linear-gradient(-45deg,
transparent $s - 5%,
$c $s,
$c $e,
transparent $e + 5%
);
background-repeat: no-repeat;
background-size: contain;
}
.scrolling, .scrolling,
.scroll { .scroll {
overflow: auto; overflow: auto;

View File

@ -20,8 +20,6 @@
* at runtime from the About dialog for additional information. * at runtime from the About dialog for additional information.
*****************************************************************************/ *****************************************************************************/
// VERSION MANUALLY MIGRATED FROM VUE-TOOLBAR
/************************** VISUALS */ /************************** VISUALS */
@mixin ancillaryIcon($d, $c) { @mixin ancillaryIcon($d, $c) {
// Used for small icons used in combination with larger icons, // Used for small icons used in combination with larger icons,
@ -146,10 +144,17 @@
} }
/************************** CONTROLS, BUTTONS */ /************************** CONTROLS, BUTTONS */
@mixin hover {
body.desktop & {
&:hover {
@content
}
}
}
@mixin htmlInputReset() { @mixin htmlInputReset() {
appearance: none; appearance: none;
background: none; background: transparent;
background-color: transparent;
border: none; border: none;
border-radius: 0; border-radius: 0;
outline: none; outline: none;
@ -165,7 +170,7 @@
border-radius: $controlCr; border-radius: $controlCr;
&.error { &.error {
background-color: $colorFormFieldErrorBg; background: $colorFormFieldErrorBg;
color: $colorFormFieldErrorFg; color: $colorFormFieldErrorFg;
} }
} }
@ -183,7 +188,7 @@
box-shadow: $shdwInput; box-shadow: $shdwInput;
color: $fg; color: $fg;
&:hover { @include hover() {
box-shadow: $shdwInputHov; box-shadow: $shdwInputHov;
} }
@ -193,12 +198,133 @@
} }
@mixin button($bg: $colorBtnBg, $fg: $colorBtnFg, $radius: $controlCr, $shdw: none) { @mixin button($bg: $colorBtnBg, $fg: $colorBtnFg, $radius: $controlCr, $shdw: none) {
// Is this being used? Remove if not.
background: $bg; background: $bg;
color: $fg; color: $fg;
border-radius: $radius; border-radius: $radius;
box-shadow: $shdw; box-shadow: $shdw;
} }
@mixin cControl() {
$fs: 1em;
@include userSelectNone();
display: inline-flex;
align-items: center;
justify-content: center;
overflow: hidden;
&:before,
&:after {
font-family: symbolsfont;
display: block;
flex: 0 0 auto;
}
&:after {
font-size: 0.8em;
}
[class*="__label"] {
@include ellipsize();
display: block;
line-height: $fs; // Remove effect on top and bottom padding
font-size: $fs;
}
}
@mixin cButton() {
@include cControl();
@include themedButton();
border-radius: $controlCr;
color: $colorBtnFg;
cursor: pointer;
padding: $interiorMargin floor($interiorMargin * 1.25);
@include hover() {
background: $colorBtnBgHov;
color: $colorBtnFgHov;
}
&[class*="--major"] {
background: $colorBtnMajorBg;
color: $colorBtnMajorFg;
@include hover() {
background: $colorBtnMajorBgHov;
color: $colorBtnMajorFgHov;
}
}
&[class*='--caution'] {
background: $colorBtnCautionBg;
color: $colorBtnCautionFg;
&:hover {
background: $colorBtnCautionBgHov;
}
}
}
@mixin cClickIcon() {
// A clickable element that just includes the icon, no background
// Padding is included to facilitate a bigger hit area
// Make the icon bigger relative to its container
@include cControl();
$pLR: 4px;
$pTB: 3px;
background: none;
box-shadow: none;
border-radius: $controlCr;
color: $colorKey;
cursor: pointer;
padding: $pTB $pLR ;
@include hover() {
background: $colorClickIconBgHov;
color: $colorClickIconFgHov;
}
&:before,
*:before {
// *:before handles any nested containers that may contain glyph elements
// Needed for c-togglebutton.
font-size: 1.2em;
}
}
@mixin cCtrlWrapper {
// Provides a wrapper around buttons and other controls
// Contains control and provides positioning context for contained menu/palette.
// Wraps --menu elements, contains button and menu
overflow: visible;
.c-menu {
// Default position of contained menu
top: 100%; left: 0;
}
&[class*='--menus-up'] {
.c-menu {
top: auto; bottom: 100%;
}
}
&[class*='--menus-left'] {
.c-menu {
left: auto; right: 0;
}
}
}
@mixin wrappedInput() { @mixin wrappedInput() {
// An input that is wrapped. Optionally includes a __label or icon element. // An input that is wrapped. Optionally includes a __label or icon element.
// Based on .c-search. // Based on .c-search.

View File

@ -24,8 +24,8 @@
//!********************************* CONTROLS *! //!********************************* CONTROLS *!
//@import "../styles/controls/breadcrumb"; //@import "../styles/controls/breadcrumb";
@import "../styles/controls/buttons"; @import "../styles/controls/buttons";
@import "../styles/controls/palette"; //@import "../styles/controls/palette";
@import "../styles/controls/controls"; //@import "../styles/controls/controls";
@import "../styles/controls/lists"; @import "../styles/controls/lists";
@import "../styles/controls/menus"; @import "../styles/controls/menus";
@import "../styles/controls/messages"; @import "../styles/controls/messages";

View File

@ -116,7 +116,6 @@
$p: $interiorMarginSm; $p: $interiorMarginSm;
@include discreteItem(); @include discreteItem();
display: flex; display: flex;
//flex-wrap: wrap;
padding: $interiorMarginSm $interiorMarginSm $interiorMarginSm $interiorMargin; padding: $interiorMarginSm $interiorMarginSm $interiorMarginSm $interiorMargin;
&__time, &__time,
@ -156,7 +155,7 @@
} }
&__text { &__text {
min-height: 24px; // Needed in Firefox when field is blank min-height: 22px; // Needed in Firefox when field is blank
white-space: pre-wrap; white-space: pre-wrap;
&.is-blank-notebook-entry { &.is-blank-notebook-entry {

View File

@ -24,5 +24,6 @@
// Meant for use as a single line import in Vue SFC's. // Meant for use as a single line import in Vue SFC's.
// Do not include anything that renders to CSS! // Do not include anything that renders to CSS!
@import "constants"; @import "constants";
@import "constants-snow"; // TEMP @import "constants-espresso"; // TEMP
//@import "constants-snow"; // TEMP
@import "mixins"; @import "mixins";

View File

@ -5,7 +5,6 @@
'l-pane--horizontal-handle-after': type === 'horizontal' && handle === 'after', 'l-pane--horizontal-handle-after': type === 'horizontal' && handle === 'after',
'l-pane--vertical-handle-before': type === 'vertical' && handle === 'before', 'l-pane--vertical-handle-before': type === 'vertical' && handle === 'before',
'l-pane--vertical-handle-after': type === 'vertical' && handle === 'after', 'l-pane--vertical-handle-after': type === 'vertical' && handle === 'after',
'l-pane--collapsable' : collapsable,
'l-pane--collapsed': collapsed, 'l-pane--collapsed': collapsed,
'l-pane--reacts': !handle, 'l-pane--reacts': !handle,
'l-pane--resizing': resizing === true 'l-pane--resizing': resizing === true
@ -14,11 +13,13 @@
class="l-pane__handle" class="l-pane__handle"
@mousedown="start"> @mousedown="start">
</div> </div>
<button v-if="label" <div class="l-pane__header"
class="l-pane__collapse-button" v-if="label">
@click="toggleCollapse">
<span class="l-pane__label">{{ label }}</span> <span class="l-pane__label">{{ label }}</span>
</button> <button class="l-pane__collapse-button c-button"
v-if="collapsable"
@click="toggleCollapse"></button>
</div>
<div class="l-pane__contents"> <div class="l-pane__contents">
<slot></slot> <slot></slot>
</div> </div>
@ -61,14 +62,11 @@
// __handle and __label don't appear in mobile // __handle and __label don't appear in mobile
display: none; display: none;
} }
&__collapse-button { &__header {
position: absolute;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; margin-bottom: $interiorMargin;
top: 0; right: 0; // Default
z-index: 1;
} }
&--reacts { &--reacts {
@ -112,7 +110,6 @@
&__contents { &__contents {
flex: 1 1 100%; flex: 1 1 100%;
opacity: 1; opacity: 1;
padding: $interiorMargin;
pointer-events: inherit; pointer-events: inherit;
transition: opacity 250ms ease 250ms; transition: opacity 250ms ease 250ms;
@ -122,13 +119,10 @@
} }
> [class*="__"] + [class*="__"] { > [class*="__"] + [class*="__"] {
// Create margin between elements in a pane
// Doesn't match first elem, but will match all subsequent
margin-top: $interiorMargin;
} }
} }
/************************ DESKTOP STYLES */ /************************************************ DESKTOP STYLES */
body.desktop & { body.desktop & {
&__handle { &__handle {
background: $colorSplitterBg; background: $colorSplitterBg;
@ -151,52 +145,35 @@
} }
} }
&__header {
font-size: floor(12px * .9);
}
&__collapse-button { &__collapse-button {
$m: 2px; box-shadow: none;
$h: 12px; background: $splitterBtnColorBg;
color: $splitterBtnColorFg; color: $splitterBtnColorFg;
flex: 0 0 nth($splitterBtnD, 1); border-radius: $smallCr;
font-size: $h * .9; font-size: 6px;
position: relative; line-height: 90%;
justify-content: start; padding: 3px 15px;
transition: $transOut;
&:after { @include hover() {
// Close icon background: $colorBtnBgHov;
background: $colorBtnBg; color: $colorBtnFgHov;
border-radius: $smallCr;
color: $colorBtnFg;
content: $glyph-icon-arrow-right-equilateral;
display: block;
font-family: symbolsfont;
font-size: 6px;
line-height: 90%;
padding: 3px 15px;
position: absolute;
right: $m;
top: $m;
transition: $transOut;
z-index: -1;
}
&:hover {
background: rgba(black, 0.1);
&:after {
background: $splitterBtnColorHoverBg;
color: $splitterBtnColorHoverFg;
transition: $transIn;
}
} }
} }
&__label { &__label {
// Name of the pane // Name of the pane
@include ellipsize(); @include ellipsize();
@include userSelectNone();
color: $splitterBtnLabelColorFg;
display: block; display: block;
padding-right: nth($splitterBtnD, 2) + $interiorMargin; // Force label to ellipsis pointer-events: none;
text-transform: uppercase; text-transform: uppercase;
transform-origin: top left; transform-origin: top left;
flex: 1 0 90%; flex: 1 1 auto;
} }
&--resizing { &--resizing {
@ -209,6 +186,7 @@
} }
&[class*="--collapsed"] { &[class*="--collapsed"] {
/********************************* STYLES FOR DESKTOP COLLAPSED PANES, ALL ORIENTATIONS */
$d: nth($splitterBtnD, 1); $d: nth($splitterBtnD, 1);
flex-basis: $d; flex-basis: $d;
min-width: $d !important; min-width: $d !important;
@ -218,19 +196,24 @@
display: none; display: none;
} }
> .l-pane__collapse-button { .l-pane__header {
background: $splitterBtnColorFg;
color: $splitterBtnColorBg;
&:hover { &:hover {
background: $splitterBtnColorHoverBg !important; color: $splitterCollapsedBtnColorFgHov;
.l-pane__label {
color: inherit;
}
.l-pane__collapse-button {
background: $splitterCollapsedBtnColorBgHov;
color: inherit;
transition: $transIn;
}
} }
} }
}
> .l-pane__collapse-button { .l-pane__collapse-button {
height: nth($splitterBtnD, 1); background: $splitterCollapsedBtnColorBg;
padding: $interiorMarginSm $interiorMarginSm; color: $splitterCollapsedBtnColorFg;
}
} }
&[class*="--horizontal"] { &[class*="--horizontal"] {
@ -249,31 +232,44 @@
} }
} }
.l-pane__collapse-button {
&:before {
content: $glyph-icon-arrow-right-equilateral;
}
}
&[class*="--collapsed"] { &[class*="--collapsed"] {
> .l-pane__collapse-button { /************************ COLLAPSED HORIZONTAL SPLITTER, EITHER DIRECTION */
[class*="__header"] {
@include abs();
margin: 0;
}
[class*="label"] {
position: absolute;
transform: translate($interiorMarginLg + 1, 18px) rotate(90deg);
left: 3px;
top: 0;
z-index: 1;
}
.l-pane__collapse-button {
border-top-left-radius: 0;
border-bottom-left-radius: 0; // Only have to do this once, because of scaleX(-1) below.
position: absolute; position: absolute;
top: 0; right: 0; bottom: 0; left: 0; top: 0; right: 0; bottom: 0; left: 0;
height: auto; width: 100%; height: auto; width: 100%;
padding: 0;
[class*="label"] { &:before {
position: absolute; position: absolute;
transform: translate($interiorMarginLg + 1, 18px) rotate(90deg); top: 5px;
top: 0;
}
&:after {
background: none;
padding: 0;
top: $interiorMargin;
left: 50%;
right: auto;
transform: translateX(-50%);
width: auto;
} }
} }
} }
/************************** Horizontal Splitter Before */ /************************** Horizontal Splitter Before */
// Inspector pane
&[class*="-before"] { &[class*="-before"] {
> .l-pane__handle { > .l-pane__handle {
left: 0; left: 0;
@ -281,15 +277,14 @@
} }
&[class*="--collapsed"] { &[class*="--collapsed"] {
> .l-pane__collapse-button { .l-pane__collapse-button {
&:after { transform: scaleX(-1);
transform: translateX(-50%) scaleX(-1);
}
} }
} }
} }
/************************** Horizontal Splitter After */ /************************** Horizontal Splitter After */
// Tree pane
&[class*="-after"] { &[class*="-after"] {
> .l-pane__handle { > .l-pane__handle {
right: 0; right: 0;
@ -297,7 +292,7 @@
} }
&:not([class*="--collapsed"]) { &:not([class*="--collapsed"]) {
> .l-pane__collapse-button:after { .l-pane__collapse-button {
transform: scaleX(-1); transform: scaleX(-1);
} }
} }
@ -321,19 +316,19 @@
} }
/************************** Vertical Splitter Before */ /************************** Vertical Splitter Before */
// Pane collapses downward // Pane collapses downward. Used by Elements pool in Inspector
&[class*="-before"] { &[class*="-before"] {
> .l-pane__handle { > .l-pane__handle {
top: 0; top: 0;
transform: translateY(floor($splitterHandleD / -1)); transform: translateY(floor($splitterHandleD / -1));
} }
> .l-pane__collapse-button:after { .l-pane__collapse-button:before {
content: $glyph-icon-arrow-down; content: $glyph-icon-arrow-down;
} }
&.l-pane--collapsed { &.l-pane--collapsed {
> .l-pane__collapse-button:after { > .l-pane__collapse-button {
transform: scaleY(-1); transform: scaleY(-1);
} }
} }

View File

@ -25,9 +25,7 @@
<div class="l-shell__search"> <div class="l-shell__search">
<search class="c-search--major" ref="shell-search"></search> <search class="c-search--major" ref="shell-search"></search>
</div> </div>
<div class="l-shell__tree"> <mct-tree class="l-shell__tree"></mct-tree>
<mct-tree></mct-tree>
</div>
</pane> </pane>
<pane class="l-shell__pane-main"> <pane class="l-shell__pane-main">
<browse-bar class="l-shell__main-view-browse-bar" <browse-bar class="l-shell__main-view-browse-bar"
@ -66,45 +64,64 @@
overflow: hidden; overflow: hidden;
&__status { &__status {
background: $colorBodyFg; background: $colorStatusBarBg;
color: $colorBodyBg; color: $colorStatusBarFg;
border-top: 1px solid $colorInteriorBorder;
height: 24px; height: 24px;
padding: $interiorMarginSm; padding: $interiorMarginSm;
} }
&__pane-tree { &__pane-tree {
background: $colorTreeBg;
width: 40%; width: 40%;
[class*="collapse-button"] { [class*="collapse-button"] {
// For mobile, collapse button becomes menu icon // For mobile, collapse button becomes menu icon
body.mobile & { body.mobile & {
height: $mobileMenuIconD; @include cClickIcon();
width: $mobileMenuIconD; position: absolute;
right: -2 * nth($shellPanePad, 2); // Needs to be -1 * when pane is collapsed
top: 0;
transform: translateX(100%); transform: translateX(100%);
width: $mobileMenuIconD;
z-index: 2;
&:before { &:before {
color: $colorKey;
content: $glyph-icon-menu-hamburger; content: $glyph-icon-menu-hamburger;
font-family: symbolsfont;
font-size: 1.4em;
} }
} }
} }
} }
&__pane-main, &__pane-tree,
&__pane-tree { &__pane-inspector,
> .l-pane__contents { &__pane-main {
.l-pane__contents {
display: flex; display: flex;
flex-flow: column nowrap; flex-flow: column nowrap;
> * {
flex: 0 0 auto;
+ * {
margin-top: $interiorMarginLg;
}
}
}
}
body.mobile & {
&__pane-tree {
background: linear-gradient(90deg, transparent 70%, rgba(black, 0.2) 99%, rgba(black, 0.3));
&[class*="--collapsed"] {
[class*="collapse-button"] {
right: -1 * nth($shellPanePad, 2);
}
}
} }
} }
body.phone.portrait & { body.phone.portrait & {
&__pane-tree { &__pane-tree {
width: calc(100% - #{$mobileMenuIconD}); width: calc(100% - #{$mobileMenuIconD + (2 * nth($shellPanePad, 2))});
+ .l-pane { + .l-pane {
// Hide pane-main when this pane is expanded // Hide pane-main when this pane is expanded
@ -140,13 +157,13 @@
} }
body.mobile & .l-shell__main-view-browse-bar { body.mobile & .l-shell__main-view-browse-bar {
margin-left: $mobileMenuIconD - $interiorMarginLg; // Make room for the hamburger! margin-left: $mobileMenuIconD; // Make room for the hamburger!
} }
&__head { &__head {
align-items: center; align-items: center;
background: $colorHeadBg;
justify-content: space-between; justify-content: space-between;
border-bottom: 1px solid $colorInteriorBorder;
padding: $interiorMargin; padding: $interiorMargin;
> [class*="__"] + [class*="__"] { > [class*="__"] + [class*="__"] {
@ -167,27 +184,40 @@
} }
/******************************* MAIN AREA */ /******************************* MAIN AREA */
&__main-container { &__main-container {
// Wrapper for main views // Wrapper for main views
flex: 1 1 auto; flex: 1 1 auto !important;
overflow: auto; overflow: auto;
//font-size: 16px; // TEMP FOR LEGACY STYLING //font-size: 16px; // TEMP FOR LEGACY STYLING
} }
&__tree { &__tree {
// Tree component within __pane-tree // Tree component within __pane-tree
flex: 1 1 100%; flex: 1 1 auto !important;
overflow-y: auto;
} }
&__time-conductor { &__time-conductor {
border-top: 1px solid $colorInteriorBorder; border-top: 1px solid $colorInteriorBorder;
flex: 0 0 auto;
padding-top: $interiorMargin; padding-top: $interiorMargin;
} }
&__main {
> .l-pane {
padding: nth($shellPanePad, 1) nth($shellPanePad, 2);
}
}
body.desktop & { body.desktop & {
/********** HEAD AND STATUS */ &__main {
// Top and bottom padding in container that holds tree, __pane-main and Inspector
padding: $shellMainPad;
> .l-pane {
padding-top: 0;
padding-bottom: 0;
}
}
&__pane-tree, &__pane-tree,
&__pane-inspector { &__pane-inspector {
max-width: 30%; max-width: 30%;
@ -200,11 +230,6 @@
&__pane-inspector { &__pane-inspector {
width: 200px; width: 200px;
} }
&__toolbar {
flex: 0 0 auto;
margin-bottom: $interiorMargin;
}
} }
} }
</style> </style>

View File

@ -1,10 +1,12 @@
<template> <template>
<ul class="c-tree"> <div class="c-tree__wrapper">
<tree-item v-for="child in children" <ul class="c-tree">
:key="child.id" <tree-item v-for="child in children"
:node="child"> :key="child.id"
</tree-item> :node="child">
</ul> </tree-item>
</ul>
</div>
</template> </template>
<style lang="scss"> <style lang="scss">
@ -16,6 +18,11 @@
overflow-y: auto; overflow-y: auto;
height: 100%; height: 100%;
&__wrapper {
overflow-y: auto;
padding-right: $interiorMarginSm;
}
.c-tree { .c-tree {
margin-left: 15px; margin-left: 15px;
} }
@ -99,7 +106,7 @@
children: [] children: []
}; };
}, },
inject: ['openmct', 'domainObject'], inject: ['openmct'],
mounted: function () { mounted: function () {
this.openmct.objects.get('ROOT') this.openmct.objects.get('ROOT')
.then(root => this.openmct.composition.get(root).load()) .then(root => this.openmct.composition.get(root).load())

View File

@ -35,8 +35,8 @@
&__outer { &__outer {
@include abs(); @include abs();
background: $colorOvrBg; background: $overlayColorBg;
color: $colorOvrFg; color: $overlayColorFg;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
padding: $overlayInnerMargin; padding: $overlayInnerMargin;
@ -65,7 +65,7 @@
body.desktop & { body.desktop & {
&__blocker { &__blocker {
@include abs(); @include abs();
background: $colorOvrBlocker; background: rgba(black, 0.7);
cursor: pointer; cursor: pointer;
display: block; display: block;
} }