mirror of
https://github.com/nasa/openmct.git
synced 2024-12-20 13:43:09 +00:00
a5770817cc
* re-enable main test * Enable tests and fix some failing ones * revert accidental changes * test(a11y): on failure, take a screenshot to disk * test(visual): wait for the snapshot indicator to stop flashing * Fix all failing tests * test: disable a11y checks for planning suite * lint:fix * fix pathing issues * build: increase visual-a11y parallelism from 2 to 4 * test: darkmatter theme a11y checks + snapshots-- ACTIVATE! * test: fix file name and path * fix(#7317): scott bell prophecy * jk no credit for u * chore: disable parallelism until we figure out what's going on * chore: set parallelism to 2 in hopes it fixes percy --------- Co-authored-by: Hill, John (ARC-TI)[KBR Wyle Services, LLC] <john.c.hill@nasa.gov> Co-authored-by: Jesse Mazzella <jesse.d.mazzella@nasa.gov>
906 lines
16 KiB
SCSS
906 lines
16 KiB
SCSS
/*****************************************************************************
|
|
* Open MCT, Copyright (c) 2014-2024, 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.
|
|
*****************************************************************************/
|
|
|
|
/*********************************************** NOTEBOOK */
|
|
@mixin searchHighlight {
|
|
background: rgba($colorBtnSelectedBg, 0.4);
|
|
color: $colorBtnSelectedFg;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.c-notebook {
|
|
$headerFontSize: 1.3em;
|
|
display: flex;
|
|
flex-direction: column;
|
|
flex: 1 1 auto;
|
|
overflow: hidden;
|
|
height: 100%;
|
|
|
|
/****************************** CONTENT */
|
|
&__body {
|
|
// Holds __nav and __page-view
|
|
display: flex;
|
|
flex: 1 1 auto;
|
|
overflow: hidden;
|
|
}
|
|
|
|
&__nav {
|
|
flex: 0 0 auto;
|
|
|
|
* {
|
|
overflow: hidden;
|
|
}
|
|
}
|
|
|
|
.c-sidebar {
|
|
.c-sidebar__pane {
|
|
flex-basis: 50%;
|
|
}
|
|
}
|
|
|
|
body.mobile & {
|
|
.c-list-button,
|
|
&-snapshot-menubutton {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
/****************************** CONTENT */
|
|
&__contents {
|
|
width: 70%;
|
|
}
|
|
|
|
&__page-view {
|
|
// Holds __header, __drag-area and __entries
|
|
display: flex;
|
|
flex: 1 1 auto;
|
|
flex-direction: column;
|
|
width: 100%;
|
|
|
|
> * {
|
|
flex: 0 0 auto;
|
|
|
|
+ * {
|
|
margin-top: $interiorMargin;
|
|
}
|
|
}
|
|
}
|
|
|
|
> * + * {
|
|
margin-top: $interiorMargin;
|
|
}
|
|
|
|
&__head,
|
|
&__controls,
|
|
&__drag-area,
|
|
&__entries {
|
|
display: flex;
|
|
flex-wrap: nowrap;
|
|
}
|
|
|
|
&__head,
|
|
&__drag-area,
|
|
&__controls {
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
&__head {
|
|
[class*='__'] + [class*='__'] {
|
|
margin-left: $interiorMargin;
|
|
}
|
|
}
|
|
|
|
&__search {
|
|
flex: 1 1 auto;
|
|
}
|
|
|
|
&__page-locked-message,
|
|
&__drag-area {
|
|
border-radius: $controlCr;
|
|
padding: 10px;
|
|
|
|
&:before {
|
|
margin-right: 7px !important;
|
|
}
|
|
}
|
|
|
|
&__drag-area {
|
|
background: rgba($colorKey, 0.02);
|
|
border: 1px dashed rgba($colorKey, 0.7);
|
|
color: $colorKey;
|
|
cursor: pointer;
|
|
justify-content: center;
|
|
|
|
[class*='__label'] {
|
|
font-style: italic;
|
|
@include ellipsize();
|
|
}
|
|
|
|
&:hover {
|
|
background: rgba($colorBodyFg, 0.2);
|
|
}
|
|
|
|
&.drag-active,
|
|
&.is-active {
|
|
// Not currently working
|
|
border-color: $colorKey;
|
|
}
|
|
|
|
body.mobile & {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
/***** PAGE VIEW */
|
|
&__page-view {
|
|
&__header {
|
|
display: flex;
|
|
flex-wrap: wrap; // Allows wrapping in mobile portrait and narrow placements
|
|
line-height: 220%;
|
|
|
|
> * {
|
|
flex: 0 0 auto;
|
|
}
|
|
}
|
|
|
|
&__path {
|
|
flex: 1 1 auto;
|
|
margin: 0 $interiorMargin;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
font-size: $headerFontSize;
|
|
|
|
> * {
|
|
// Section
|
|
flex: 0 0 auto;
|
|
|
|
+ * {
|
|
// Page
|
|
display: inline;
|
|
flex: 1 1 auto;
|
|
@include ellipsize();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
&__entries {
|
|
flex-direction: column;
|
|
flex: 1 1 auto;
|
|
overflow-x: hidden;
|
|
overflow-y: scroll;
|
|
|
|
@include desktop() {
|
|
padding-right: $interiorMarginSm; // Scrollbar kickoff
|
|
}
|
|
|
|
[class*='__entry'] + [class*='__entry'] {
|
|
margin-top: $interiorMarginSm;
|
|
}
|
|
|
|
.commit-button {
|
|
@include cButton();
|
|
position: absolute;
|
|
right: 5px;
|
|
bottom: 5px;
|
|
}
|
|
}
|
|
|
|
/***** SEARCH RESULTS */
|
|
&__search-results {
|
|
display: flex;
|
|
flex: 1 1 auto;
|
|
flex-direction: column;
|
|
overflow-y: auto;
|
|
|
|
> * + * {
|
|
margin-top: 5px;
|
|
}
|
|
|
|
&__header {
|
|
font-size: $headerFontSize;
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.c-notebook__entries {
|
|
flex: 1 1 auto;
|
|
}
|
|
|
|
.c-ne {
|
|
flex-direction: column;
|
|
|
|
> * + * {
|
|
margin-top: $interiorMargin;
|
|
}
|
|
}
|
|
}
|
|
|
|
/***** RESTRICTED NOTEBOOK */
|
|
&__page-locked-message {
|
|
background: rgba($colorAlert, 0.2);
|
|
display: flex;
|
|
padding: 5px;
|
|
|
|
> * + * {
|
|
margin-left: $interiorMargin;
|
|
}
|
|
|
|
[class*='icon'] {
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
[class*='__message'] {
|
|
flex: 1 1 auto;
|
|
}
|
|
}
|
|
|
|
&__commit-entries-control {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
}
|
|
}
|
|
|
|
.is-notebook-default,
|
|
.is-status--notebook-default {
|
|
&:after {
|
|
color: $colorFilter;
|
|
font-family: symbolsfont;
|
|
font-size: 0.9em;
|
|
}
|
|
|
|
&.c-list__item:after {
|
|
content: $glyph-icon-notebook-page;
|
|
flex: 1 0 auto;
|
|
text-align: right;
|
|
}
|
|
}
|
|
|
|
/****************************** ENTRIES */
|
|
.c-ne {
|
|
// A Notebook entry
|
|
$p: $interiorMarginSm;
|
|
@include discreteItem();
|
|
cursor: pointer;
|
|
display: flex;
|
|
padding: $interiorMarginSm $interiorMarginSm $interiorMarginSm $interiorMargin;
|
|
|
|
@include hover() {
|
|
background: $colorDiscreteItemBgHov;
|
|
}
|
|
|
|
&.is-selected {
|
|
background: rgba($colorKey, 0.1);
|
|
|
|
.c-ne__text {
|
|
.c-notebook--page-unlocked & {
|
|
cursor: text;
|
|
|
|
@include hover() {
|
|
&:not(.locked) {
|
|
background: $colorInputBgHov;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
&__text,
|
|
&__local-controls {
|
|
padding-top: $p;
|
|
padding-bottom: $p;
|
|
}
|
|
|
|
&__creator,
|
|
&__embed__time {
|
|
opacity: 0.9;
|
|
}
|
|
|
|
&__time-and-creator-and-delete,
|
|
&__text,
|
|
&__input {
|
|
padding: $p;
|
|
}
|
|
|
|
&__time-and-creator-and-delete {
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
> * + * {
|
|
float: right;
|
|
margin-left: auto;
|
|
}
|
|
}
|
|
|
|
&__time-and-creator {
|
|
color: $colorA;
|
|
}
|
|
|
|
&__creator [class*='icon'] {
|
|
font-size: 0.95em;
|
|
}
|
|
|
|
&__time-and-content {
|
|
display: block;
|
|
flex: 1 1 auto;
|
|
overflow: visible;
|
|
|
|
> * + * {
|
|
margin-top: $interiorMarginSm;
|
|
}
|
|
}
|
|
|
|
&__time {
|
|
* {
|
|
white-space: nowrap;
|
|
}
|
|
}
|
|
|
|
&__content {
|
|
flex-direction: column;
|
|
flex: 1 1 auto;
|
|
margin-right: $interiorMarginSm;
|
|
margin-top: $interiorMargin;
|
|
|
|
> [class*='__'] + [class*='__'] {
|
|
margin-top: $interiorMarginSm;
|
|
}
|
|
}
|
|
|
|
&__text,
|
|
&__input {
|
|
color: $colorBodyFgEm !important;
|
|
}
|
|
|
|
&__text {
|
|
min-height: 22px; // Needed in Firefox when field is blank
|
|
white-space: normal;
|
|
|
|
.search-highlight {
|
|
@include searchHighlight();
|
|
}
|
|
|
|
// Resets and styling for markdown
|
|
h1,
|
|
h2,
|
|
h3,
|
|
h4,
|
|
h5 {
|
|
margin: unset !important;
|
|
padding: unset !important;
|
|
}
|
|
|
|
a {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
em {
|
|
font-style: italic;
|
|
}
|
|
|
|
> * {
|
|
&:not(:first-child) {
|
|
margin-top: $interiorMarginSm;
|
|
}
|
|
}
|
|
|
|
p,
|
|
blockquote,
|
|
pre {
|
|
margin: 0;
|
|
|
|
&:not(:first-child) {
|
|
margin-top: $interiorMarginLg;
|
|
}
|
|
}
|
|
|
|
blockquote {
|
|
$m: 16px;
|
|
margin-left: $m;
|
|
margin-right: $m;
|
|
}
|
|
|
|
ul,
|
|
ol {
|
|
padding: 0 0 0 16px;
|
|
}
|
|
|
|
ul {
|
|
list-style: square;
|
|
}
|
|
|
|
ol {
|
|
list-style: decimal;
|
|
}
|
|
|
|
li {
|
|
list-style-type: inherit;
|
|
}
|
|
|
|
table {
|
|
width: auto;
|
|
}
|
|
|
|
th,
|
|
td {
|
|
border: 1px solid rgba($colorBodyFg, 0.7);
|
|
}
|
|
|
|
th {
|
|
background: rgba($colorBodyFg, 0.2);
|
|
}
|
|
}
|
|
|
|
&__input {
|
|
// Textarea
|
|
//@include inlineInput;
|
|
@include reactive-input();
|
|
padding-left: $p;
|
|
padding-right: $p;
|
|
overflow: unset;
|
|
margin-bottom: $interiorMargin;
|
|
min-height: 5rem;
|
|
resize: vertical;
|
|
width: 100%;
|
|
}
|
|
|
|
&__save-button {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
|
|
.c-button {
|
|
$lrP: 15px;
|
|
padding-left: $lrP;
|
|
padding-right: $lrP;
|
|
}
|
|
}
|
|
|
|
&__section-and-page {
|
|
// Shown when c-ne within search results
|
|
background: rgba($colorBodyFg, 0.1); //$colorInteriorBorder;
|
|
border-radius: $controlCr;
|
|
display: inline-flex;
|
|
align-items: center;
|
|
align-self: flex-start;
|
|
padding: $interiorMargin;
|
|
|
|
.search-highlight {
|
|
@include searchHighlight();
|
|
}
|
|
|
|
> * + * {
|
|
margin-left: $interiorMargin;
|
|
}
|
|
|
|
[class*='icon'] {
|
|
font-size: 0.8em;
|
|
opacity: 0.7;
|
|
}
|
|
}
|
|
|
|
&__remove {
|
|
float: right;
|
|
}
|
|
}
|
|
|
|
/****************************** EMBEDS */
|
|
@mixin snapThumb() {
|
|
// LEGACY: TODO: refactor when .snap-thumb in New Entry dialog is refactored
|
|
$d: 40px;
|
|
border: 1px solid $colorInteriorBorder;
|
|
cursor: pointer;
|
|
width: $d;
|
|
height: $d;
|
|
border-radius: 5px;
|
|
overflow: hidden;
|
|
|
|
img {
|
|
height: 100%;
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
.snap-thumb {
|
|
// LEGACY,
|
|
@include snapThumb();
|
|
}
|
|
|
|
.c-ne__embeds-wrapper {
|
|
max-height: 75px;
|
|
padding-left: $interiorMargin;
|
|
padding-top: $interiorMargin;
|
|
display: flex;
|
|
}
|
|
|
|
.c-ne__embed {
|
|
@include discreteItemInnerElem();
|
|
display: inline-flex;
|
|
flex: 0 0 auto;
|
|
padding: $interiorMargin;
|
|
border: 1px solid $colorInteriorBorderNotebook;
|
|
|
|
&__info {
|
|
display: flex;
|
|
flex-direction: column;
|
|
margin-left: $interiorMargin;
|
|
|
|
a {
|
|
color: $colorKey;
|
|
}
|
|
}
|
|
|
|
&__name,
|
|
&__link {
|
|
// Holds __link and __context-available
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
&__link {
|
|
flex: 1 1 auto;
|
|
|
|
&:before {
|
|
display: block;
|
|
font-size: 1em;
|
|
margin-right: $interiorMarginSm;
|
|
}
|
|
}
|
|
|
|
&__context-available {
|
|
font-size: 0.7em;
|
|
margin-left: $interiorMarginSm;
|
|
}
|
|
|
|
&__snap-thumb {
|
|
@include snapThumb();
|
|
}
|
|
|
|
&__actions {
|
|
margin: $interiorMarginSm;
|
|
}
|
|
|
|
&__actions-menu {
|
|
width: 55vh;
|
|
max-width: 500px;
|
|
height: 130px;
|
|
z-index: 70;
|
|
|
|
[class*='__icon'] {
|
|
filter: $colorKeyFilter;
|
|
margin: 0%;
|
|
height: 4vh;
|
|
}
|
|
|
|
[class*='__item-description'] {
|
|
min-width: 200px;
|
|
}
|
|
}
|
|
}
|
|
|
|
/****************************** SNAPSHOTTING */
|
|
// LEGACY: TODO: refactor these names
|
|
.t-contents,
|
|
.snap-annotation {
|
|
overflow: hidden;
|
|
}
|
|
|
|
.s-status-taking-snapshot,
|
|
.overlay.snapshot {
|
|
// Handle overflow-y issues with tables and html2canvas
|
|
background: $colorBodyBg; // Prevent html2canvas from using white background
|
|
color: $colorBodyFg;
|
|
padding: $interiorMarginSm !important; // Prevents items from going right to the edge of the image
|
|
|
|
.l-sticky-headers .l-tabular-body {
|
|
overflow: auto;
|
|
}
|
|
|
|
.l-browse-bar {
|
|
display: none; // Suppress browse-bar when snapshotting from view-large overlay
|
|
+ * {
|
|
margin-top: 0 !important; // Remove margin from any following elements
|
|
}
|
|
}
|
|
|
|
* {
|
|
box-shadow: none !important; // Prevent html2canvas problems with box-shadow
|
|
}
|
|
}
|
|
|
|
.c-notebook-snapshot {
|
|
flex: 1 1 auto;
|
|
display: flex;
|
|
flex-direction: column;
|
|
|
|
> * + * {
|
|
margin-top: $interiorMargin;
|
|
}
|
|
|
|
&__header {
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
&__image {
|
|
background-size: contain;
|
|
background-repeat: no-repeat;
|
|
background-position: center center;
|
|
flex: 1 1 auto;
|
|
}
|
|
}
|
|
|
|
/****************************** SNAPSHOT CONTAINER */
|
|
.c-snapshots-h {
|
|
// Is hidden when the parent div l-shell__drawer is collapsed, so no worries about padding, etc.
|
|
display: flex;
|
|
flex-direction: column;
|
|
overflow: hidden;
|
|
padding: $interiorMargin $interiorMarginLg;
|
|
|
|
> * + * {
|
|
margin-top: $interiorMargin;
|
|
}
|
|
|
|
.l-browse-bar {
|
|
flex: 0 0 auto;
|
|
}
|
|
|
|
.c-snapshots-h__title {
|
|
display: flex;
|
|
}
|
|
|
|
.c-snapshots {
|
|
flex: 1 1 auto;
|
|
}
|
|
}
|
|
|
|
.c-snapshots {
|
|
flex-wrap: wrap;
|
|
overflow: auto;
|
|
|
|
.c-snapshot {
|
|
margin: 0 $interiorMarginSm $interiorMarginSm 0;
|
|
}
|
|
|
|
.hint {
|
|
font-size: 1.25em;
|
|
font-style: italic;
|
|
opacity: 0.7;
|
|
padding: $interiorMarginLg;
|
|
text-align: center;
|
|
}
|
|
}
|
|
|
|
/****************************** PAINTERRO OVERRIDES */
|
|
.annotation-dialog .abs.editor {
|
|
border-radius: 0;
|
|
}
|
|
|
|
#snap-annotation {
|
|
$m: 0; //$interiorMargin;
|
|
display: flex;
|
|
flex-direction: column;
|
|
position: absolute;
|
|
top: $m;
|
|
right: 0;
|
|
bottom: $m;
|
|
left: 0; // LEGACY, deal with .editor border-radius clipping stuff
|
|
}
|
|
|
|
#snap-annotation-wrapper,
|
|
#snap-annotation-bar {
|
|
position: relative;
|
|
top: auto;
|
|
right: auto;
|
|
bottom: auto;
|
|
left: auto;
|
|
}
|
|
|
|
#snap-annotation-wrapper {
|
|
background: rgba($colorBodyFg, 0.1);
|
|
border: 1px solid $colorInteriorBorder;
|
|
order: 2;
|
|
flex: 10 0 auto;
|
|
}
|
|
|
|
#snap-annotation-bar {
|
|
// Holds tool buttons, color selectors, etc.
|
|
$h: 22px;
|
|
$fs: 0.8rem;
|
|
$m: $interiorMarginSm;
|
|
|
|
display: flex;
|
|
align-items: center;
|
|
height: $h + ($m * 2) !important;
|
|
margin-bottom: $interiorMarginLg;
|
|
order: 1;
|
|
flex: 0 0 auto;
|
|
background-color: transparent !important;
|
|
padding: $interiorMarginSm;
|
|
|
|
> div {
|
|
display: contents;
|
|
|
|
> * + * {
|
|
margin-left: $interiorMargin !important;
|
|
}
|
|
}
|
|
|
|
.ptro-tool-controls {
|
|
display: flex;
|
|
margin-left: $interiorMarginLg !important;
|
|
|
|
> * + * {
|
|
margin-left: $interiorMargin !important;
|
|
}
|
|
}
|
|
|
|
.ptro-icon-btn,
|
|
.ptro-named-btn,
|
|
.ptro-color-btn,
|
|
.ptro-bordered-btn,
|
|
.ptro-tool-ctl-name,
|
|
.ptro-color-btn,
|
|
.tool-controls,
|
|
.ptro-input {
|
|
// Lot of resets for crappy CSS in Painterro
|
|
font-family: inherit;
|
|
font-size: $fs !important;
|
|
height: $h !important;
|
|
margin: 0;
|
|
position: relative;
|
|
line-height: $h !important;
|
|
}
|
|
|
|
.ptro-tool-ctl-name {
|
|
border-radius: 0;
|
|
background: none;
|
|
color: $colorBodyFg;
|
|
top: auto;
|
|
font-family: inherit;
|
|
padding: 0;
|
|
}
|
|
|
|
.ptro-color-btn {
|
|
width: $h !important;
|
|
}
|
|
|
|
.ptro-check,
|
|
.ptro-color-control,
|
|
.ptro-icon-btn,
|
|
.ptro-named-btn {
|
|
// Buttons in toolbar
|
|
border-radius: $smallCr;
|
|
box-shadow: rgba($colorBtnFg, 0.3) 0 0 0 1px;
|
|
color: $colorBtnFg !important;
|
|
padding: 1px $interiorMargin;
|
|
|
|
&:hover {
|
|
background: $colorBtnBgHov;
|
|
color: $colorBtnFgHov;
|
|
}
|
|
|
|
i {
|
|
display: contents;
|
|
font-size: $fs * 1.2;
|
|
line-height: inherit;
|
|
}
|
|
}
|
|
|
|
.ptro-color-control,
|
|
.ptro-icon-btn,
|
|
.ptro-named-btn {
|
|
// Buttons in toolbar
|
|
background-color: $colorBtnBg;
|
|
}
|
|
|
|
.ptro-color-active-control {
|
|
background: $colorBtnMajorBg !important;
|
|
color: $colorBtnMajorFg !important;
|
|
}
|
|
|
|
.ptro-info,
|
|
.ptro-btn-color-checkers-bar,
|
|
*[title='Font name'],
|
|
*[title='Stroke color'],
|
|
*[title='Stroke width'],
|
|
*[data-id='fontName'],
|
|
*[data-id='fontStrokeSize'],
|
|
*[data-id='stroke'] {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
/****************************** MOBILE */
|
|
body.mobile {
|
|
.c-notebook__drag-area {
|
|
display: none;
|
|
}
|
|
|
|
.c-notebook__entry {
|
|
[class*='local-controls'] {
|
|
display: none;
|
|
height: fit-content;
|
|
}
|
|
}
|
|
|
|
&.phone.portrait {
|
|
.c-notebook__head,
|
|
.c-notebook__entry,
|
|
.c-ne__time-and-content {
|
|
flex-direction: column;
|
|
|
|
> [class*='__'] + [class*='__'] {
|
|
margin-left: 0;
|
|
margin-top: $interiorMargin;
|
|
}
|
|
}
|
|
|
|
.c-notebook__entry {
|
|
[class*='text'] {
|
|
min-height: 0;
|
|
pointer-events: none;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/****************************** INDICATOR */
|
|
.c-indicator.has-new-snapshot {
|
|
$c: $colorOk;
|
|
@include pulseProp(
|
|
$animName: flashSnapshot,
|
|
$dur: 500ms,
|
|
$iter: infinite,
|
|
$prop: background,
|
|
$valStart: rgba($c, 0.4),
|
|
$valEnd: rgba($c, 0)
|
|
);
|
|
}
|
|
|
|
/****************************** RESTRICTED NOTEBOOK / SHIFT LOG */
|
|
.c-notebook--restricted {
|
|
.c-notebook__pages {
|
|
.c-list__item {
|
|
// Can display lock icon when a page is committed.
|
|
&:before {
|
|
$s: 0.8em;
|
|
color: $colorAlert;
|
|
display: block;
|
|
font-size: $s;
|
|
width: $s;
|
|
margin-right: $interiorMarginSm;
|
|
}
|
|
|
|
&:not([class*='lock']) {
|
|
&:before {
|
|
content: '';
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.c-list__item {
|
|
&__name:focus {
|
|
text-overflow: clip;
|
|
}
|
|
}
|