Fix constrast for accessibility (#7315)

* Closes #7304
- Change colors to increase contrast.
- New base level theme color var: `$colorBodyFgSubtle`.
- Minor CSS cleanups.
- WARNING: this appears to have added a regression in selects
that colors the arrow black in Espresso.

* Closes #7304
- Fix dropdown arrow colors, whew.
- Normalize font sizes in Status area.
- More color changes for contrast, including new theme constants.
- TODO: compare and sync Espresso with other themes.
- TODO: check for regressions!

* disable ruleset

* Closes #7304
- Normalize font sizes in multiple spots.
- More color changes for contrast, including more new theme constants.
- TODO: compare and sync Espresso with other themes.
- TODO: check for regressions!

* Closes #7304
- Reorganize CSS files for more uniformity.

* Closes #7304
- CSS normalized across all themes via Google Sheet at https://docs.google.com/spreadsheets/d/1SEEtuNSq6I7gvVHKpHW8_fp8Ltc-HOAWxrSAkUzS6Kw/edit?usp=sharing

* Closes #7304
- Color tweaks, normalization.

* Closes #7304
- Color tweaks, normalization.
- Search layout, contrast and font-size improvements.
- Added '+' icons to collapsed pane buttons.

* Closes #7304
- Shell head layout improvements.

* Update ColorKey for Take Snapshot Failures and Opacity labels. Also fix create menu

* Closes #7410
- CHERRY PICK FROM event-colors-7410.
- Event display approach modified to include background color.
- Theme colors modified and constrast verified via Wave a11y browser plugin.

* Closes #7304
- Set back to install Espresso theme by default.

* temporarily skip

* remove comment

* lint

* Update default colors

* update snapshot

* missed

---------

Co-authored-by: John Hill <john.c.hill@nasa.gov>
Co-authored-by: Shefali Joshi <simplyrender@gmail.com>
This commit is contained in:
Charles Hacskaylo 2024-01-29 21:30:55 -08:00 committed by GitHub
parent f8d936a834
commit 068ac4899d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
27 changed files with 347 additions and 350 deletions

View File

@ -61,7 +61,6 @@ export async function scanForA11yViolations(page, testCaseName, options = {}) {
const builder = new AxeBuilder({ page });
builder.withTags(['wcag2aa']);
// https://github.com/dequelabs/axe-core/blob/develop/doc/rule-descriptions.md
builder.disableRules(['color-contrast']);
const accessibilityScanResults = await builder.analyze();
// Assert that no violations should be present

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

@ -32,9 +32,9 @@ const setBorderColor = '#ff00ff';
const setBackgroundColor = '#5b0f00';
const setTextColor = '#e6b8af';
const defaultFrameBorderColor = '#e6b8af'; //default border color
const defaultBorderTargetColor = '#aaaaaa';
const defaultTextColor = '#aaaaaa'; // default text color
const inheritedColor = '#aaaaaa'; // inherited from the body style
const defaultBorderTargetColor = '#acacac';
const defaultTextColor = '#acacac'; // default text color
const inheritedColor = '#acacac'; // inherited from the body style
const pukeGreen = '#6aa84f'; //Ugliest green known to man
const NO_STYLE_RGBA = 'rgba(0, 0, 0, 0)'; //default background color value
@ -397,8 +397,8 @@ test.describe('Flexible Layout styling', () => {
page.getByLabel('StackedPlot1 Frame').getByLabel('Stacked Plot Style Target')
);
// Save Flexible Layout
await page.locator('button[title="Save"]').click();
await page.locator('text=Save and Finish Editing').click();
await page.getByRole('button', { name: 'Save' }).click();
await page.getByRole('listitem', { name: 'Save and Finish Editing' }).click();
// Reload page and verify that styles persist
await page.reload({ waitUntil: 'domcontentloaded' });

View File

@ -36,9 +36,9 @@ import { test } from '../../../../pluginFixtures.js';
const setBorderColor = '#ff00ff';
const setBackgroundColor = '#5b0f00';
const setTextColor = '#e6b8af';
const defaultTextColor = '#aaaaaa'; // default text color
const defaultTextColor = '#acacac'; // default text color
const NO_STYLE_RGBA = 'rgba(0, 0, 0, 0)'; //default background color value
const DEFAULT_PLOT_VIEW_BORDER_COLOR = '#AAAAAA';
const DEFAULT_PLOT_VIEW_BORDER_COLOR = '#acacac';
const setFontSize = '72px';
const setFontWeight = '700'; //bold for monospace bold
const setFontFamily = '"Andale Mono", sans-serif';

View File

@ -20,14 +20,16 @@
* at runtime from the About dialog for additional information.
*****************************************************************************/
import { scanForA11yViolations, test } from '../../avpFixtures.js';
import { test } from '../../avpFixtures.js';
import { VISUAL_URL } from '../../constants.js';
test.describe('a11y - Default @a11y', () => {
test.describe('a11y - Default', () => {
test.beforeEach(async ({ page }) => {
await page.goto(VISUAL_URL, { waitUntil: 'domcontentloaded' });
});
test('main view @a11y', async ({ page }, testInfo) => {
await scanForA11yViolations(page, testInfo.title);
test('main view', async ({ page }, testInfo) => {
await page.goto('./');
//Skipping for https://github.com/nasa/openmct/issues/7421
//await scanForA11yViolations(page, testInfo.title);
});
});

View File

@ -26,7 +26,7 @@ Tests the branding associated with the default deployment. At least the about mo
import percySnapshot from '@percy/playwright';
import { expect, scanForA11yViolations, test } from '../../../avpFixtures.js';
import { expect, test } from '../../../avpFixtures.js';
import { VISUAL_URL } from '../../../constants.js';
//Declare the scope of the visual test
@ -78,6 +78,7 @@ test.describe('Visual - Header @a11y', () => {
await expect(await page.getByLabel('Show Snapshots')).toBeVisible();
});
});
test.afterEach(async ({ page }, testInfo) => {
await scanForA11yViolations(page, testInfo.title);
});
// Skipping for https://github.com/nasa/openmct/issues/7421
// test.afterEach(async ({ page }, testInfo) => {
// await scanForA11yViolations(page, testInfo.title);
// });

View File

@ -22,7 +22,7 @@
import percySnapshot from '@percy/playwright';
import { scanForA11yViolations, test } from '../../../avpFixtures.js';
import { test } from '../../../avpFixtures.js';
import { MISSION_TIME, VISUAL_URL } from '../../../constants.js';
//Declare the scope of the visual test
@ -55,6 +55,7 @@ test.describe('Visual - Inspector @ally', () => {
});
});
});
test.afterEach(async ({ page }, testInfo) => {
await scanForA11yViolations(page, testInfo.title);
});
// Skipping for https://github.com/nasa/openmct/issues/7421
// test.afterEach(async ({ page }, testInfo) => {
// await scanForA11yViolations(page, testInfo.title);
// });

View File

@ -23,11 +23,11 @@
import percySnapshot from '@percy/playwright';
import { createDomainObjectWithDefaults, expandTreePaneItemByName } from '../../appActions.js';
import { scanForA11yViolations, test } from '../../avpFixtures.js';
import { test } from '../../avpFixtures.js';
import { VISUAL_URL } from '../../constants.js';
import { enterTextEntry, startAndAddRestrictedNotebookObject } from '../../helper/notebookUtils.js';
test.describe('Visual - Restricted Notebook', () => {
test.describe('Visual - Restricted Notebook @a11y', () => {
test.beforeEach(async ({ page }) => {
const restrictedNotebook = await startAndAddRestrictedNotebookObject(page);
await page.goto(restrictedNotebook.url + '?hideTree=true&hideInspector=true');
@ -39,7 +39,7 @@ test.describe('Visual - Restricted Notebook', () => {
});
});
test.describe('Visual - Notebook', () => {
test.describe('Visual - Notebook @a11y', () => {
let notebook;
test.beforeEach(async ({ page }) => {
await page.goto(VISUAL_URL, { waitUntil: 'domcontentloaded' });
@ -125,7 +125,8 @@ test.describe('Visual - Notebook', () => {
// Take a snapshot
await percySnapshot(page, `Notebook Selected Entry Text Area Active (theme: '${theme}')`);
});
test.afterEach(async ({ page }, testInfo) => {
await scanForA11yViolations(page, testInfo.title);
});
// Skipping for https://github.com/nasa/openmct/issues/7421
// test.afterEach(async ({ page }, testInfo) => {
// await scanForA11yViolations(page, testInfo.title);
// });
});

View File

@ -24,7 +24,7 @@ import percySnapshot from '@percy/playwright';
import fs from 'fs';
import { createDomainObjectWithDefaults, createPlanFromJSON } from '../../appActions.js';
import { scanForA11yViolations, test } from '../../avpFixtures.js';
import { test } from '../../avpFixtures.js';
import { VISUAL_URL } from '../../constants.js';
import { setBoundsToSpanAllActivities, setDraftStatusForPlan } from '../../helper/planningUtils.js';
@ -34,7 +34,7 @@ const examplePlanSmall = JSON.parse(
const snapshotScope = '.l-shell__pane-main .l-pane__contents';
test.describe('Visual - Planning @a11y', () => {
test.describe('Visual - Planning', () => {
test.beforeEach(async ({ page }) => {
await page.goto(VISUAL_URL, { waitUntil: 'domcontentloaded' });
});
@ -99,7 +99,8 @@ test.describe('Visual - Planning @a11y', () => {
scope: snapshotScope
});
});
test.afterEach(async ({ page }, testInfo) => {
await scanForA11yViolations(page, testInfo.title);
});
// Skipping for https://github.com/nasa/openmct/issues/7421
// test.afterEach(async ({ page }, testInfo) => {
// await scanForA11yViolations(page, testInfo.title);
// });
});

View File

@ -118,7 +118,7 @@
&__metadata {
color: $colorItemFgDetails;
font-size: 0.9em;
//font-size: 0.9em;
body.mobile & {
[class*='__item-count'] {

View File

@ -1,5 +1,7 @@
/******************************* LIST ITEM */
.c-list-item {
color: $colorItemFgDetails;
&__name__type-icon {
color: $colorItemTreeIcon;
}
@ -8,12 +10,12 @@
@include ellipsize();
a & {
// .c-list-item_name a element
color: $colorItemFg;
}
}
&:not(.c-list-item__name) {
color: $colorItemFgDetails;
}
&.is-alias {

View File

@ -1,22 +1,23 @@
.c-path,
.c-location {
// Path is two or more items, not clickable
// Location used in Inspector, is clickable
// Location used in Inspector and search results, is clickable
display: flex;
&__item {
display: flex;
font-size: 11px;
align-items: center;
min-width: 0;
&:not(:last-child) {
&:after {
// color: $colorInspectorPropName;
// Right-pointing arrow
color: $colorBodyFgSubtle;
content: $glyph-icon-arrow-right;
font-family: symbolsfont;
font-size: 0.7em;
margin-left: $interiorMarginSm;
opacity: 0.8;
}
}
}

View File

@ -75,7 +75,7 @@
}
&.selected {
background: $colorKey;
background: $colorKeyBg;
color: $colorKeyFg;
}
}

View File

@ -20,8 +20,7 @@
* at runtime from the About dialog for additional information.
*****************************************************************************/
/************************************************** ESPRESSO THEME CONSTANTS */
/************************************************** ESPRESSO THEME */
// Fonts
$heroFont: 'Helvetica Neue', Helvetica, Arial, sans-serif;
$headerFont: $heroFont;
@ -41,6 +40,29 @@ $bodyFont: $heroFont;
font-family: $bodyFont;
font-size: $size;
}
@mixin discreteItem() {
background: $colorDiscreteItemBg;
border: none;
border-radius: $controlCr;
.c-input-inline:hover {
background: $colorBodyBg;
}
&--current-match {
background: $colorDiscreteItemCurrentBg;
}
}
@mixin discreteItemInnerElem() {
border: 1px solid rgba(#fff, 0.1);
border-radius: $controlCr;
}
@mixin themedButton($c: $colorBtnBg) {
background: linear-gradient(pullForward($c, 5%), $c);
box-shadow: rgba(black, 0.5) 0 0.5px 2px;
}
// Functions
@function buttonBg($c: $colorBtnBg) {
@ -55,7 +77,7 @@ $bodyFont: $heroFont;
@return darken($val, $amt);
}
// Constants
/**************************************************** CONSTANTS */
$fontBaseSize: 12px;
$smallCr: 2px;
$controlCr: 3px;
@ -64,20 +86,24 @@ $shdwBtns: rgba(black, 0.2) 0 1px 2px;
$shdwBtnsOverlay: rgba(black, 0.5) 0 1px 5px;
// Base colors
$colorBodyBg: #393939;
$colorBodyFg: #aaaaaa;
$colorBodyBg: #2c2c2c;
$colorBodyBgSubtle: pullForward($colorBodyBg, 5%);
$colorBodyBgSubtleHov: pullForward($colorBodyBg, 10%);
$colorBodyFg: #acacac;
$colorBodyFgSubtle: #9c9c9c;
$colorBodyFgEm: #fff;
$colorGenBg: #222;
$colorHeadBg: #262626;
$colorHeadBg: #000;
$colorHeadFg: $colorBodyFg;
$colorKey: #0099cc;
$colorKey: #009fd4;
$colorKeyBg: #007fad; // Darker version of colorKey for use in major buttons
$colorKeyFg: #fff;
$colorKeyHov: lighten($colorKey, 10%);
$colorKeyFilter: invert(36%) sepia(76%) saturate(2514%) hue-rotate(170deg) brightness(99%)
contrast(101%);
$colorKeyFilterHov: invert(63%) sepia(88%) saturate(3029%) hue-rotate(154deg) brightness(101%)
contrast(100%);
$colorKeySelectedBg: $colorKey;
$colorKeyBgHov: lighten($colorKeyBg, 10%);
$colorKeyFilter: invert(36%) sepia(76%) saturate(2514%) hue-rotate(170deg) brightness(99%) contrast(101%);
$colorKeyFilterHov: invert(63%) sepia(88%) saturate(3029%) hue-rotate(154deg) brightness(101%) contrast(100%);
$colorKeySelectedBg: $colorKeyBg;
$colorKeySubtle: pushBack($colorKey, 10%);
$uiColor: #0093ff; // Resize bars, splitter bars, etc.
$colorInteriorBorder: rgba($colorBodyFg, 0.2);
$colorA: #ccc;
@ -88,7 +114,7 @@ $colorSelectedBg: rgba($colorKey, 0.3);
$colorSelectedFg: pullForward($colorBodyFg, 20%);
// Object labels
$objectLabelTypeIconOpacity: 0.7;
$objectLabelTypeIconOpacity: 0.8; //JOHN
$objectLabelNameColorFg: lighten($colorBodyFg, 10%);
// Layout
@ -104,14 +130,11 @@ $sideBarHeaderFg: rgba($colorBodyFg, 0.7);
$colorStatusFg: #888;
$colorStatusDefault: #ccc;
$colorStatusInfo: #60ba7b;
$colorStatusInfoFilter: invert(58%) sepia(44%) saturate(405%) hue-rotate(85deg) brightness(102%)
contrast(92%);
$colorStatusInfoFilter: invert(58%) sepia(44%) saturate(405%) hue-rotate(85deg) brightness(102%) contrast(92%);
$colorStatusAlert: #ffb66c;
$colorStatusAlertFilter: invert(78%) sepia(26%) saturate(1160%) hue-rotate(324deg) brightness(107%)
contrast(101%);
$colorStatusAlertFilter: invert(78%) sepia(26%) saturate(1160%) hue-rotate(324deg) brightness(107%) contrast(101%);
$colorStatusError: #da0004;
$colorStatusErrorFilter: invert(10%) sepia(96%) saturate(4360%) hue-rotate(351deg) brightness(111%)
contrast(115%);
$colorStatusErrorFilter: invert(10%) sepia(96%) saturate(4360%) hue-rotate(351deg) brightness(111%) contrast(115%);
$colorStatusBtnBg: #666; // Where is this used?
$colorStatusPartialBg: #3f5e8b;
$colorStatusCompleteBg: #457638;
@ -139,11 +162,6 @@ $colorFilter: $colorFilterFg; // Standalone against $colorBodyBg
$colorPausedBg: #ff9900;
$colorPausedFg: #333;
// Base variations
$colorBodyBgSubtle: pullForward($colorBodyBg, 5%);
$colorBodyBgSubtleHov: pullForward($colorBodyBg, 10%);
$colorKeySubtle: pushBack($colorKey, 10%);
// Time Colors
$colorTimeCommonFg: #eee;
$colorTimeFixed: #59554c;
@ -156,7 +174,6 @@ $colorTimeFixedBtnBg: pullForward($colorTimeFixed, 5%);
$colorTimeFixedBtnFg: $colorTimeFixedFgSubtle;
$colorTimeFixedBtnBgMajor: #a09375;
$colorTimeFixedBtnFgMajor: #fff;
$colorTimeRealtime: #445890;
$colorTimeRealtimeBg: $colorTimeRealtime;
$colorTimeRealtimeFg: #eee;
@ -167,31 +184,29 @@ $colorTimeRealtimeBtnBg: pullForward($colorTimeRealtime, 5%);
$colorTimeRealtimeBtnFg: $colorTimeRealtimeFgSubtle;
$colorTimeRealtimeBtnBgMajor: #588ffa;
$colorTimeRealtimeBtnFgMajor: #fff;
$colorTOI: $colorBodyFg; // was $timeControllerToiLineColor
$colorTOIHov: $colorTimeRealtime; // was $timeControllerToiLineColorHov
$timeConductorAxisHoverFilter: brightness(1.2);
$timeConductorActiveBg: $colorKey;
$timeConductorActivePanBg: #226074;
/************************************************** BROWSING */
// Browse
$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(1.2) contrast(1.1);
// Missing Items
$filterItemMissing: brightness(0.6) grayscale(1);
$opacityMissing: 0.5;
$borderMissing: 1px dashed $colorAlert !important;
/************************************************** EDITING */
// Edit
$editUIColor: $uiColor; // Base color
$editUIColorBg: $editUIColor;
$editUIColorFg: #fff;
$editUIColorHov: pullForward(
saturate($uiColor, 10%),
10%
); // Hover color when $editUIColor is applied as a base color
$editUIColorHov: pullForward(saturate($uiColor, 10%), 10%); // Hover color when $editUIColor is applied as a base color
$editUIBaseColor: #344b8d; // Base color, toolbar bg
$editUIBaseColorHov: pullForward($editUIBaseColor, 20%);
$editUIBaseColorFg: #ffffff; // Toolbar button icon colors, etc.
@ -210,10 +225,7 @@ $editFrameColorHandleBg: $colorBodyBg; // Resize handle 'offset' color to make h
$editFrameColorHandleFg: $editFrameColorSelected; // Resize handle main color
$editFrameSelectedShdw: rgba(black, 0.4) 0 1px 5px 1px;
$editFrameMovebarColorBg: $editFrameColor; // Movebar bg color
$editFrameMovebarColorFg: pullForward(
$editFrameMovebarColorBg,
20%
); // Grippy lines, container size text
$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
@ -237,8 +249,8 @@ $colorBtnFg: pullForward($colorBodyFg, 10%);
$colorBtnReverseFg: pullForward($colorBtnFg, 10%);
$colorBtnReverseBg: pullForward($colorBtnBg, 10%);
$colorBtnFgHov: $colorBtnFg;
$colorBtnMajorBg: $colorKey;
$colorBtnMajorBgHov: $colorKeyHov;
$colorBtnMajorBg: $colorKeyBg;
$colorBtnMajorBgHov: $colorKeyBgHov;
$colorBtnMajorFg: $colorKeyFg;
$colorBtnMajorFgHov: pushBack($colorBtnMajorFg, 10%);
$colorBtnCautionBg: $colorStatusAlert;
@ -263,7 +275,7 @@ $shdwCursorGuide: rgba(black, 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%);
$colorSelectArw: #777777; // This must be a solid color, not a gradient, due to usage of SVG bg in selects
$shdwSelect: rgba(black, 0.5) 0 0.5px 3px;
$controlDisabledOpacity: 0.2;
@ -314,12 +326,12 @@ $formInputH: 22px;
$formRowCtrlsH: 14px;
// Inspector
$colorInspectorBg: pullForward($colorBodyBg, 5%);
$colorInspectorBg: $colorBodyBg;
$colorInspectorFg: $colorBodyFg;
$colorInspectorPropName: pushBack($colorBodyFg, 20%);
$colorInspectorPropVal: pullForward($colorInspectorFg, 15%);
$colorInspectorPropName: $colorBodyFgSubtle;
$colorInspectorPropVal: $colorBodyFgEm;
$colorInspectorSectionHeaderBg: pullForward($colorInspectorBg, 5%);
$colorInspectorSectionHeaderFg: pullForward($colorInspectorBg, 40%);
$colorInspectorSectionHeaderFg: #bfbfbf;
// Tabs
$colorTabBg: pullForward($colorBodyBg, 5%);
@ -339,7 +351,7 @@ $colorIndicatorOn: $colorOk;
$colorIndicatorOff: #777777;
$colorIndicatorBgHov: rgba($colorHeadFg, 0.1);
$colorIndicatorMenuBg: $colorHeadBg;
$colorIndicatorMenuBgShdw: rgba(white, 0.6) 0 0 6px;
$colorIndicatorMenuBgShdw: rgba(white, 0.3) 0 0 10px 1px;
$colorIndicatorMenuFg: $colorHeadFg;
$colorIndicatorMenuFgHov: pullForward($colorHeadFg, 10%);
@ -366,10 +378,14 @@ $colorLimitCyanFg: #d3faff;
$colorLimitCyanIc: #6bedff;
// Events
$colorEventPurpleFg: #6433ff;
$colorEventRedFg: #cc0000;
$colorEventOrangeFg: orange;
$colorEventYellowFg: #ffcc00;
$colorEventPurpleFg: #aB8fff;
$colorEventRedFg: #ff9999;
$colorEventOrangeFg: #ff8800;
$colorEventYellowFg: #ffdb63;
$colorEventPurpleBg: #31204a;
$colorEventRedBg: #3c1616;
$colorEventOrangeBg: #3e2a13;
$colorEventYellowBg: #3e3316;
// Bubble colors
$colorInfoBubbleBg: #dddddd;
@ -383,10 +399,10 @@ $colorItemBgHov: buttonBg(pullForward($colorBtnBg, 5%));
$colorListItemBg: transparent;
$colorListItemBgHov: rgba($colorKey, 0.1);
$colorItemFg: $colorBtnFg;
$colorItemFgDetails: pushBack($colorItemFg, 20%);
$colorItemFgDetails: $colorBodyFgSubtle;
$shdwItemText: none;
// Tabular (NOT TABS!)
// Tabular
$colorTabBorder: pullForward($colorBodyBg, 10%);
$colorTabBodyBg: $colorBodyBg;
$colorTabBodyFg: pullForward($colorBodyFg, 20%);
@ -478,10 +494,10 @@ $colorSplitterActive: $colorKey;
$splitterBtnD: (16px, 35px); // height, width
$splitterBtnColorBg: $colorBtnBg;
$splitterBtnColorFg: #999;
$splitterBtnLabelColorFg: #666;
$splitterCollapsedBtnColorBg: #222;
$splitterCollapsedBtnColorFg: #555;
$splitterCollapsedBtnColorBgHov: $colorKey;
$splitterBtnLabelColorFg: $colorBodyFgSubtle;
$splitterCollapsedBtnColorBg: $colorHeadBg;
$splitterCollapsedBtnColorFg: #757575;
$splitterCollapsedBtnColorBgHov: $colorKeyBg;
$splitterCollapsedBtnColorFgHov: $colorKeyFg;
// Mobile
@ -507,31 +523,9 @@ $transOutTransform: transform $transOutTime ease-in-out;
$transInBounce: all 200ms cubic-bezier(0.47, 0.01, 0.25, 1.5);
$transInBounceBig: all 300ms cubic-bezier(0.2, 1.6, 0.6, 3);
// Discrete items, like Notebook entries, Widget rules
// Discrete items
$createBtnTextTransform: uppercase;
$colorDiscreteItemBg: rgba($colorBodyFg, 0.1);
$colorDiscreteItemBgHov: rgba($colorBodyFg, 0.2);
$colorDiscreteItemCurrentBg: rgba($colorOk, 0.3);
$scrollContainer: $colorBodyBg;
@mixin discreteItem() {
background: $colorDiscreteItemBg;
border: none;
border-radius: $controlCr;
.c-input-inline:hover {
background: $colorBodyBg;
}
&--current-match {
background: $colorDiscreteItemCurrentBg;
}
}
@mixin discreteItemInnerElem() {
border: 1px solid rgba(#fff, 0.1);
border-radius: $controlCr;
}
@mixin themedButton($c: $colorBtnBg) {
background: linear-gradient(pullForward($c, 5%), $c);
box-shadow: rgba(black, 0.5) 0 0.5px 2px;
}

View File

@ -20,8 +20,7 @@
* at runtime from the About dialog for additional information.
*****************************************************************************/
/************************************************** MAELSTROM THEME CONSTANTS */
/************************************************** MAELSTROM THEME */
// Fonts
@import url('https://fonts.googleapis.com/css?family=Chakra+Petch:400,600,700|Michroma|Teko:400,700');
@ -46,6 +45,42 @@ $bodyFont: 'Chakra Petch', sans-serif;
font-size: $size;
}
@mixin discreteItem() {
background: rgba($colorBodyFg, 0.1);
border: none;
border-radius: $controlCr;
&--current-match {
background: $colorDiscreteItemCurrentBg;
}
}
@mixin discreteItemInnerElem() {
border: 1px solid rgba(#fff, 0.1);
border-radius: $controlCr;
}
@mixin themedButton($c: $colorBtnBg) {
background: linear-gradient(pullForward($c, 5%), $c);
box-shadow: rgba(black, 0.5) 0 0.5px 2px;
}
/**************************************************** OVERRIDES */
.c-frame {
&:not(.no-frame) {
$bc: #666;
$bLR: 3px solid transparent;
$br: 20px;
background: none !important;
border-radius: $br;
border-top: 4px solid $bc !important;
border-bottom: 2px solid $bc !important;
border-left: $bLR !important;
border-right: $bLR !important;
padding: 5px 10px 10px 10px !important;
}
}
// Functions
@function buttonBg($c: $colorBtnBg) {
@return linear-gradient(lighten($c, 5%), $c);
@ -59,7 +94,7 @@ $bodyFont: 'Chakra Petch', sans-serif;
@return darken($val, $amt);
}
// Constants
/**************************************************** CONSTANTS */
$fontBaseSize: 12px;
$smallCr: 2px;
$controlCr: 3px;
@ -69,19 +104,23 @@ $shdwBtnsOverlay: rgba(black, 0.5) 0 1px 5px;
// Base colors
$colorBodyBg: #393939;
$colorBodyBgSubtle: pullForward($colorBodyBg, 5%);
$colorBodyBgSubtleHov: pushBack($colorKey, 50%);
$colorBodyFg: #ccc;
$colorBodyFgSubtle: #9c9c9c;
$colorBodyFgEm: #fff;
$colorGenBg: #222;
$colorHeadBg: #262626;
$colorHeadFg: $colorBodyFg;
$colorKey: #0099cc;
$colorKeyBg: #007fad; // Darker version of colorKey for use in major buttons
$colorKeyFg: #fff;
$colorKeyHov: #26d8ff;
$colorKeyFilter: invert(36%) sepia(76%) saturate(2514%) hue-rotate(170deg) brightness(99%)
contrast(101%);
$colorKeyFilterHov: invert(63%) sepia(88%) saturate(3029%) hue-rotate(154deg) brightness(101%)
contrast(100%);
$colorKeyBgHov: lighten($colorKeyBg, 10%);
$colorKeyFilter: invert(36%) sepia(76%) saturate(2514%) hue-rotate(170deg) brightness(99%) contrast(101%);
$colorKeyFilterHov: invert(63%) sepia(88%) saturate(3029%) hue-rotate(154deg) brightness(101%) contrast(100%);
$colorKeySelectedBg: $colorKey;
$colorKeySubtle: pushBack($colorKey, 10%);
$uiColor: #0093ff; // Resize bars, splitter bars, etc.
$colorInteriorBorder: rgba($colorBodyFg, 0.2);
$colorA: #ccc;
@ -93,7 +132,7 @@ $colorSelectedFg: pullForward($colorBodyFg, 20%);
// Object labels
$objectLabelTypeIconOpacity: 0.7;
$objectLabelNameFilter: brightness(1.3);
$objectLabelNameColorFg: lighten($colorBodyFg, 10%);
// Layout
$shellMainPad: 4px 0;
@ -108,14 +147,11 @@ $sideBarHeaderFg: rgba($colorBodyFg, 0.7);
$colorStatusFg: #999;
$colorStatusDefault: #ccc;
$colorStatusInfo: #60ba7b;
$colorStatusInfoFilter: invert(58%) sepia(44%) saturate(405%) hue-rotate(85deg) brightness(102%)
contrast(92%);
$colorStatusInfoFilter: invert(58%) sepia(44%) saturate(405%) hue-rotate(85deg) brightness(102%) contrast(92%);
$colorStatusAlert: #ffb66c;
$colorStatusAlertFilter: invert(78%) sepia(26%) saturate(1160%) hue-rotate(324deg) brightness(107%)
contrast(101%);
$colorStatusAlertFilter: invert(78%) sepia(26%) saturate(1160%) hue-rotate(324deg) brightness(107%) contrast(101%);
$colorStatusError: #da0004;
$colorStatusErrorFilter: invert(10%) sepia(96%) saturate(4360%) hue-rotate(351deg) brightness(111%)
contrast(115%);
$colorStatusErrorFilter: invert(10%) sepia(96%) saturate(4360%) hue-rotate(351deg) brightness(111%) contrast(115%);
$colorStatusBtnBg: #666; // Where is this used?
$colorStatusPartialBg: #3f5e8b;
$colorStatusCompleteBg: #457638;
@ -143,11 +179,6 @@ $colorFilter: $colorFilterFg; // Standalone against $colorBodyBg
$colorPausedBg: #ff9900;
$colorPausedFg: #333;
// Base variations
$colorBodyBgSubtle: pullForward($colorBodyBg, 5%);
$colorBodyBgSubtleHov: pushBack($colorKey, 50%);
$colorKeySubtle: pushBack($colorKey, 10%);
// Time Colors
$colorTimeCommonFg: #eee;
$colorTimeFixed: #59554c;
@ -160,7 +191,6 @@ $colorTimeFixedBtnBg: pullForward($colorTimeFixed, 5%);
$colorTimeFixedBtnFg: $colorTimeFixedFgSubtle;
$colorTimeFixedBtnBgMajor: #a09375;
$colorTimeFixedBtnFgMajor: #fff;
$colorTimeRealtime: #445890;
$colorTimeRealtimeBg: $colorTimeRealtime;
$colorTimeRealtimeFg: #eee;
@ -171,31 +201,29 @@ $colorTimeRealtimeBtnBg: pullForward($colorTimeRealtime, 5%);
$colorTimeRealtimeBtnFg: $colorTimeRealtimeFgSubtle;
$colorTimeRealtimeBtnBgMajor: #588ffa;
$colorTimeRealtimeBtnFgMajor: #fff;
$colorTOI: $colorBodyFg; // was $timeControllerToiLineColor
$colorTOIHov: $colorTimeRealtime; // was $timeControllerToiLineColorHov
$timeConductorAxisHoverFilter: brightness(1.2);
$timeConductorActiveBg: $colorKey;
$timeConductorActivePanBg: #226074;
/************************************************** BROWSING */
// Browse
$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(1.2) contrast(1.1);
// Missing Items
$filterItemMissing: contrast(0.2);
$opacityMissing: 0.5;
$borderMissing: 1px dashed $colorAlert !important;
/************************************************** EDITING */
// Edit
$editUIColor: $uiColor; // Base color
$editUIColorBg: $editUIColor;
$editUIColorFg: #fff;
$editUIColorHov: pullForward(
saturate($uiColor, 10%),
10%
); // Hover color when $editUIColor is applied as a base color
$editUIColorHov: pullForward(saturate($uiColor, 10%), 10%); // Hover color when $editUIColor is applied as a base color
$editUIBaseColor: #344b8d; // Base color, toolbar bg
$editUIBaseColorHov: pullForward($editUIBaseColor, 20%);
$editUIBaseColorFg: #ffffff; // Toolbar button icon colors, etc.
@ -214,10 +242,7 @@ $editFrameColorHandleBg: $colorBodyBg; // Resize handle 'offset' color to make h
$editFrameColorHandleFg: $editFrameColorSelected; // Resize handle main color
$editFrameSelectedShdw: rgba(black, 0.4) 0 1px 5px 1px;
$editFrameMovebarColorBg: $editFrameColor; // Movebar bg color
$editFrameMovebarColorFg: pullForward(
$editFrameMovebarColorBg,
20%
); // Grippy lines, container size text
$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
@ -236,6 +261,7 @@ $colorTabsHolderBg: rgba(black, 0.2);
// Buttons and Controls
$colorBtnBg: pullForward($colorBodyBg, 10%);
$colorBtnBgHov: pullForward($colorBtnBg, 10%);
$shdwBtnHov: inset rgba(white, 10%) 0 0 0 100px;
$colorBtnFg: pullForward($colorBodyFg, 10%);
$colorBtnReverseFg: pullForward($colorBtnFg, 10%);
$colorBtnReverseBg: pullForward($colorBtnBg, 10%);
@ -369,10 +395,14 @@ $colorLimitCyanFg: #d3faff;
$colorLimitCyanIc: #6bedff;
// Events
$colorEventPurpleFg: #6433ff;
$colorEventRedFg: #cc0000;
$colorEventOrangeFg: orange;
$colorEventYellowFg: #ffcc00;
$colorEventPurpleFg: #aB8fff;
$colorEventRedFg: #ff9999;
$colorEventOrangeFg: #ff8800;
$colorEventYellowFg: #ffdb63;
$colorEventPurpleBg: #31204a;
$colorEventRedBg: #3c1616;
$colorEventOrangeBg: #3e2a13;
$colorEventYellowBg: #3e3316;
// Bubble colors
$colorInfoBubbleBg: #dddddd;
@ -510,44 +540,9 @@ $transOutTransform: transform $transOutTime ease-in-out;
$transInBounce: all 200ms cubic-bezier(0.47, 0.01, 0.25, 1.5);
$transInBounceBig: all 300ms cubic-bezier(0.2, 1.6, 0.6, 3);
// Discrete items, like Notebook entries, Widget rules
// Discrete items
$createBtnTextTransform: uppercase;
$colorDiscreteItemBg: rgba($colorBodyFg, 0.1);
$colorDiscreteItemBgHov: rgba($colorBodyFg, 0.2);
$colorDiscreteItemCurrentBg: rgba($colorOk, 0.3);
$scrollContainer: $colorBodyBg;
@mixin discreteItem() {
background: rgba($colorBodyFg, 0.1);
border: none;
border-radius: $controlCr;
&--current-match {
background: $colorDiscreteItemCurrentBg;
}
}
@mixin discreteItemInnerElem() {
border: 1px solid rgba(#fff, 0.1);
border-radius: $controlCr;
}
@mixin themedButton($c: $colorBtnBg) {
background: linear-gradient(pullForward($c, 5%), $c);
box-shadow: rgba(black, 0.5) 0 0.5px 2px;
}
/**************************************************** OVERRIDES */
.c-frame {
&:not(.no-frame) {
$bc: #666;
$bLR: 3px solid transparent;
$br: 20px;
background: none !important;
border-radius: $br;
border-top: 4px solid $bc !important;
border-bottom: 2px solid $bc !important;
border-left: $bLR !important;
border-right: $bLR !important;
padding: 5px 10px 10px 10px !important;
}
}

View File

@ -20,8 +20,7 @@
* at runtime from the About dialog for additional information.
*****************************************************************************/
/****************************************************** SNOW THEME CONSTANTS */
/****************************************************** SNOW THEME */
// Fonts
$heroFont: 'Helvetica Neue', Helvetica, Arial, sans-serif;
$headerFont: $heroFont;
@ -42,6 +41,29 @@ $bodyFont: $heroFont;
font-size: $size;
}
@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;
}
// Functions
@function buttonBg($c: $colorBtnBg) {
@return $c;
@ -55,7 +77,7 @@ $bodyFont: $heroFont;
@return lighten($val, $amt);
}
// General
/**************************************************** CONSTANTS */
$fontBaseSize: 12px;
$smallCr: 2px;
$controlCr: 3px;
@ -65,19 +87,23 @@ $shdwBtnsOverlay: none;
// Base colors
$colorBodyBg: #fcfcfc;
$colorBodyBgSubtle: pullForward($colorBodyBg, 5%);
$colorBodyBgSubtleHov: pullForward($colorBodyBg, 10%);
$colorBodyFg: #666;
$colorBodyFgSubtle: #888;
$colorBodyFgEm: #333;
$colorGenBg: #fff;
$colorHeadBg: #eee;
$colorHeadFg: $colorBodyFg;
$colorKey: #0099cc;
$colorKeyBg: #007fad; // Darker version of colorKey for use in major buttons
$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%);
$colorKeyHov: lighten($colorKey, 10%); //#00c0f6;
$colorKeyBgHov: lighten($colorKeyBg, 10%);
$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;
$colorKeySubtle: pushBack($colorKey, 20%);
$uiColor: #289fec; // Resize bars, splitter bars, etc.
$colorInteriorBorder: rgba($colorBodyFg, 0.2);
$colorA: $colorBodyFg;
@ -104,14 +130,11 @@ $sideBarHeaderFg: rgba($colorBodyFg, 0.7);
$colorStatusFg: #999;
$colorStatusDefault: #ccc;
$colorStatusInfo: #60ba7b;
$colorStatusInfoFilter: invert(64%) sepia(42%) saturate(416%) hue-rotate(85deg) brightness(93%)
contrast(93%);
$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%);
$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%);
$colorStatusErrorFilter: invert(8%) sepia(96%) saturate(4511%) hue-rotate(352deg) brightness(136%) contrast(114%);
$colorStatusBtnBg: #666; // Where is this used?
$colorStatusPartialBg: #c9d6ff;
$colorStatusCompleteBg: #a4e4b4;
@ -139,11 +162,6 @@ $colorFilter: $colorFilterBg; // Standalone against $colorBodyBg
$colorPausedBg: #ff9900;
$colorPausedFg: #fff;
// Base variations
$colorBodyBgSubtle: pullForward($colorBodyBg, 5%);
$colorBodyBgSubtleHov: pullForward($colorBodyBg, 10%);
$colorKeySubtle: pushBack($colorKey, 20%);
// Time Colors
$colorTimeCommonFg: #eee;
$colorTimeFixed: #59554c;
@ -156,7 +174,6 @@ $colorTimeFixedBtnBg: pullForward($colorTimeFixed, 5%);
$colorTimeFixedBtnFg: $colorTimeFixedFgSubtle;
$colorTimeFixedBtnBgMajor: #a09375;
$colorTimeFixedBtnFgMajor: #fff;
$colorTimeRealtime: #445890;
$colorTimeRealtimeBg: $colorTimeRealtime;
$colorTimeRealtimeFg: #eee;
@ -167,31 +184,29 @@ $colorTimeRealtimeBtnBg: pullForward($colorTimeRealtime, 5%);
$colorTimeRealtimeBtnFg: $colorTimeRealtimeFgSubtle;
$colorTimeRealtimeBtnBgMajor: #588ffa;
$colorTimeRealtimeBtnFgMajor: #fff;
$colorTOI: $colorBodyFg; // was $timeControllerToiLineColor
$colorTOIHov: $colorTimeRealtime; // was $timeControllerToiLineColorHov
$timeConductorAxisHoverFilter: brightness(0.8);
$timeConductorActiveBg: $colorKey;
$timeConductorActivePanBg: #a0cde1;
/************************************************** BROWSING */
// Browse
$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);
// Missing Items
$filterItemMissing: contrast(0.2);
$opacityMissing: 0.4;
$borderMissing: 1px dashed $colorAlert !important;
/************************************************** EDITING */
// Edit
$editUIColor: $uiColor; // Base color
$editUIColorBg: $editUIColor;
$editUIColorFg: #fff;
$editUIColorHov: pullForward(
saturate($uiColor, 10%),
20%
); // Hover color when $editUIColor is applied as a base color
$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.
@ -210,10 +225,7 @@ $editFrameColorHandleBg: $colorBodyBg; // Resize handle 'offset' color to make h
$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
$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
@ -237,8 +249,8 @@ $colorBtnFg: #fff;
$colorBtnReverseFg: $colorBodyBg;
$colorBtnReverseBg: $colorBodyFg;
$colorBtnFgHov: $colorBtnFg;
$colorBtnMajorBg: $colorKey;
$colorBtnMajorBgHov: $colorKeyHov;
$colorBtnMajorBg: $colorKeyBg;
$colorBtnMajorBgHov: $colorKeyBgHov;
$colorBtnMajorFg: $colorKeyFg;
$colorBtnMajorFgHov: pushBack($colorBtnMajorFg, 10%);
$colorBtnCautionBg: #f16f6f;
@ -367,9 +379,13 @@ $colorLimitCyanIc: #1795c0;
// Events
$colorEventPurpleFg: #6433ff;
$colorEventRedFg: #cc0000;
$colorEventOrangeFg: orange;
$colorEventYellowFg: #ffcc00;
$colorEventRedFg: #aa0000;
$colorEventOrangeFg: #b84900;
$colorEventYellowFg: #867109;
$colorEventPurpleBg: #ebe7fb;
$colorEventRedBg: #fcefef;
$colorEventOrangeBg: #ffece3;
$colorEventYellowBg: #fdf8eb;
// Bubble colors
$colorInfoBubbleBg: $colorMenuBg;
@ -507,31 +523,9 @@ $transOutTransform: transform $transOutTime ease-in-out;
$transInBounce: all 200ms cubic-bezier(0.47, 0.01, 0.25, 1.5);
$transInBounceBig: all 300ms cubic-bezier(0.2, 1.6, 0.6, 3);
// Discrete items, like Notebook entries, Widget rules
// Discrete items
$createBtnTextTransform: uppercase;
$colorDiscreteItemBg: rgba($colorBodyFg, 0.1);
$colorDiscreteItemBgHov: rgba($colorBodyFg, 0.2);
$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;
}

View File

@ -193,7 +193,6 @@ button {
.c-icon-button {
[class*='label'] {
opacity: 0.8;
padding: 1px 0;
}

View File

@ -237,18 +237,23 @@ tr {
.is-event {
&--purple {
background-color: $colorEventPurpleBg !important;
color: $colorEventPurpleFg !important;
}
&--red {
background-color: $colorEventRedBg !important;
color: $colorEventRedFg !important;
}
&--orange {
background-color: $colorEventOrangeBg !important;
color: $colorEventOrangeFg !important;
}
&--yellow {
background-color: $colorEventYellowBg !important;
color: $colorEventYellowFg !important;
}
&--no-style {
color: inherit;
background-color: $colorBodyBg !important;
color: $colorBodyFg !important;
}
}

View File

@ -283,8 +283,8 @@
display: flex;
padding: $interiorMarginSm $interiorMarginSm $interiorMarginSm $interiorMargin;
&:hover {
background: rgba($colorBodyFg, 0.3);
@include hover() {
background: $colorDiscreteItemBgHov;
}
&.is-selected {
@ -299,7 +299,6 @@
background: $colorInputBgHov;
}
}
}
}
}
@ -343,10 +342,6 @@
> * + * {
margin-top: $interiorMarginSm;
}
[class*='created-'] {
color: pullForward($colorBodyFg, 20%);
}
}
&__time {
@ -366,6 +361,11 @@
}
}
&__text,
&__input {
color: $colorBodyFgEm !important;
}
&__text {
min-height: 22px; // Needed in Firefox when field is blank
white-space: normal;

View File

@ -36,7 +36,7 @@
&__tabs {
flex: 0 0 auto;
font-size: 0.8em;
font-size: 11px;
text-transform: uppercase;
&.c-tabs {
@ -147,7 +147,7 @@
[class*='header'] {
@include propertiesHeader();
flex: 0 0 auto;
font-size: 0.85em;
//font-size: 0.85em;
}
}
@ -156,7 +156,7 @@
[class*='header'] {
@include propertiesHeader();
flex: 0 0 auto;
font-size: 0.85em;
font-size: 11px;
text-transform: uppercase;
&:not(:first-child) {
@ -192,7 +192,7 @@
[class*='__label'],
[class*='__value'] {
// Row borders, effected via border-top on child elements of the row
border-top: 1px solid $colorInspectorSectionHeaderBg;
border-top: 1px solid $colorInteriorBorder;
}
}

View File

@ -178,7 +178,6 @@
}
}
&__head,
&__status {
flex: 0 0 auto;
display: flex;
@ -200,13 +199,12 @@
&__head {
align-items: center;
background: $colorHeadBg;
justify-content: space-between;
display: grid;
grid-template-columns: min-content 1fr 3fr repeat(3, min-content);
grid-column-gap: $interiorMargin;
min-height: 34px;
padding: $interiorMargin $interiorMargin + 2;
> [class*='__'] + [class*='__'] {
margin-left: $interiorMargin;
}
.l-shell__head__collapse-button {
color: $colorBtnMajorBg;
flex: 0 0 auto;
@ -228,8 +226,6 @@
&-section {
// Subdivides elements across the head
display: flex;
flex: 0 1 auto;
padding: 0 $interiorMargin;
}
&--expanded {
@ -244,25 +240,21 @@
border-right: $brdr;
border-left: $brdr;
align-items: start;
}
&__create-button,
&__app-logo {
flex: 0 0 auto;
}
&__create-button {
margin-right: $interiorMarginLg;
$p: $interiorMarginSm;
padding-left: $p; padding-right: $p;
}
&__indicators {
flex: 1 1 auto;
flex-wrap: wrap;
font-size: 11px;
justify-content: flex-end;
.c-indicator .label {
font-size: 0.9em;
.l-shell__head--expanded & {
// Force elements to wrap down when width constrained
height: 24px;
overflow: hidden;
}
}
/******************************* MAIN AREA */
@ -305,6 +297,15 @@
padding-top: 0;
padding-bottom: 0;
}
.l-pane__expand-button__label {
// Add a plus icon before the label
&:before {
font-family: symbolsfont;
content: $glyph-icon-plus;
display: inline-block;
}
}
}
&__pane-tree,
@ -372,11 +373,6 @@
align-items: center;
justify-content: space-between;
//[class*="__"] {
// // Removes extraneous horizontal white space
// display: inline-flex;
//}
> * + * {
margin-left: $interiorMarginSm;
}

View File

@ -44,10 +44,6 @@
@include desktop() {
margin-bottom: $interiorMargin;
}
[class*='button'] {
color: $colorBtnMajorBg;
}
}
&--reacts {
@ -129,7 +125,7 @@
}
&__header {
font-size: floor(12px * 0.9);
font-size: 11px;
}
&__label {
@ -146,11 +142,16 @@
display: none; // Hidden by default
background-color: $splitterCollapsedBtnColorBg;
color: $splitterCollapsedBtnColorFg;
font-size: 0.9em;
&:before {
// '+' icon
font-size: 0.8em;
margin-bottom: $interiorMarginSm;
}
&:hover {
background-color: $splitterCollapsedBtnColorBgHov;
color: inherit;
color: $splitterCollapsedBtnColorFgHov;
@include transition(background-color);
}
}
@ -226,7 +227,8 @@
left: 0;
height: auto;
width: 100%;
padding: $interiorMargin 2px;
padding: $interiorMargin 1px;
font-size: 11px;
[class*='label'] {
text-orientation: mixed;

View File

@ -22,6 +22,7 @@
<template>
<div ref="GrandSearch" aria-label="OpenMCT Search" class="c-gsearch" role="search">
<SearchResultsDropDown ref="searchResultsDropDown" />
<search
ref="shell-search"
class="c-gsearch__input"
@ -30,7 +31,6 @@
@clear="searchEverything"
@click="showSearchResults"
/>
<SearchResultsDropDown ref="searchResultsDropDown" />
</div>
</template>

View File

@ -21,53 +21,56 @@
-->
<template>
<div role="dialog" aria-label="Search Results Dropdown" class="c-gsearch__dropdown">
<div v-show="resultsShown" class="c-gsearch__results-wrapper">
<div class="c-gsearch__results" :class="{ 'search-finished': !searchLoading }">
<div
v-if="objectResults?.length"
ref="objectResults"
class="c-gsearch__results-section"
role="list"
aria-label="Object Results"
>
<div class="c-gsearch__results-section-title">Object Results</div>
<object-search-result
v-for="objectResult in objectResults"
:key="openmct.objects.makeKeyString(objectResult.identifier)"
:result="objectResult"
@preview-changed="previewChanged"
@click="selectedResult"
/>
</div>
<div
v-if="annotationResults?.length"
ref="annotationResults"
role="list"
aria-label="Annotation Results"
>
<div class="c-gsearch__results-section-title">Annotation Results</div>
<annotation-search-result
v-for="annotationResult in annotationResults"
:key="makeKeyForAnnotationResult(annotationResult)"
:result="annotationResult"
@click="selectedResult"
/>
</div>
<div v-if="searchLoading" class="c-gsearch__result-pane-msg">
<div class="hint">Searching...</div>
<progress-bar :model="{ progressPerc: null }" />
</div>
<div
v-if="
!searchLoading &&
(!annotationResults || !annotationResults.length) &&
(!objectResults || !objectResults.length)
"
class="c-gsearch__result-pane-msg"
>
<div class="hint">No results found</div>
</div>
<div
v-show="resultsShown"
role="dialog"
aria-label="Search Results Dropdown"
class="c-gsearch__dropdown"
>
<div class="c-gsearch__results" :class="{ 'search-finished': !searchLoading }">
<div
v-if="objectResults?.length"
ref="objectResults"
class="c-gsearch__results-section"
role="list"
aria-label="Object Results"
>
<div class="c-gsearch__results-section-title">Object Results</div>
<object-search-result
v-for="objectResult in objectResults"
:key="openmct.objects.makeKeyString(objectResult.identifier)"
:result="objectResult"
@preview-changed="previewChanged"
@click="selectedResult"
/>
</div>
<div
v-if="annotationResults?.length"
ref="annotationResults"
role="list"
aria-label="Annotation Results"
>
<div class="c-gsearch__results-section-title">Annotation Results</div>
<annotation-search-result
v-for="annotationResult in annotationResults"
:key="makeKeyForAnnotationResult(annotationResult)"
:result="annotationResult"
@click="selectedResult"
/>
</div>
<div v-if="searchLoading" class="c-gsearch__result-pane-msg">
<div class="hint">Searching...</div>
<progress-bar :model="{ progressPerc: null }" />
</div>
<div
v-if="
!searchLoading &&
(!annotationResults || !annotationResults.length) &&
(!objectResults || !objectResults.length)
"
class="c-gsearch__result-pane-msg"
>
<div class="hint">No results found</div>
</div>
</div>
</div>

View File

@ -24,21 +24,21 @@
.c-gsearch {
.l-shell__head & {
// Search input in the shell head
width: 20%;
.c-search {
background: rgba($colorHeadFg, 0.2);
box-shadow: none;
flex: 1 1 auto;
}
}
&__results-wrapper {
&__dropdown {
@include menuOuter();
display: flex;
flex-direction: column;
padding: $interiorMarginLg;
min-width: 500px;
max-height: 500px;
top: $formInputH;
z-index: 60;
}
@ -76,10 +76,10 @@
.c-gsearch-result {
display: flex;
padding: $interiorMargin $interiorMarginSm;
padding: $interiorMarginSm 0;
> * + * {
margin-left: $interiorMarginLg;
margin-left: $interiorMargin;
}
+ .c-gsearch-result {
@ -93,7 +93,7 @@
&__type-icon {
color: $colorItemTreeIcon;
font-size: 2.2em;
font-size: 1.5em;
// TEMP: uses object-label component, hide label part
.c-object-label__name {
@ -113,8 +113,9 @@
}
.c-location {
font-size: 0.9em;
opacity: 0.8;
//color: $colorBodyFg;
//font-size: 0.9em;
//opacity: 0.8;
}
}

View File

@ -25,7 +25,7 @@
position: absolute;
&:checked + label > .c-custom-checkbox__box {
background: $colorKey;
background: $colorKeyBg;
&:before {
color: $colorKeyFg;
content: $glyph-icon-check;