diff --git a/src/styles-new/_constants-espresso.scss b/src/styles-new/_constants-espresso.scss
index 1d5cc109ee..d713f5d1a1 100644
--- a/src/styles-new/_constants-espresso.scss
+++ b/src/styles-new/_constants-espresso.scss
@@ -183,6 +183,9 @@ $colorDropHintFg: pullForward($colorDropHint, 40%);
$colorDisclosureCtrl: rgba($colorBodyFg, 0.5);
$colorDisclosureCtrlHov: rgba($colorBodyFg, 0.7);
$btnStdH: 24px;
+$colorCursorGuide: rgba(white, 0.6);
+$shdwCursorGuide: rgba(black, 0.4) 0 0 2px;
+$colorLocalControlOvrBg: rgba($colorBodyBg, 0.8);
// Menus
$colorMenuBg: pullForward($colorBodyBg, 15%);
diff --git a/src/styles-new/_constants-maelstrom.scss b/src/styles-new/_constants-maelstrom.scss
index 6635fd1f04..548efabdcf 100644
--- a/src/styles-new/_constants-maelstrom.scss
+++ b/src/styles-new/_constants-maelstrom.scss
@@ -187,6 +187,9 @@ $colorDropHintFg: pullForward($colorDropHint, 40%);
$colorDisclosureCtrl: rgba($colorBodyFg, 0.5);
$colorDisclosureCtrlHov: rgba($colorBodyFg, 0.7);
$btnStdH: 24px;
+$colorCursorGuide: rgba(white, 0.6);
+$shdwCursorGuide: rgba(black, 0.4) 0 0 2px;
+$colorLocalControlOvrBg: rgba($colorBodyBg, 0.8);
// Menus
$colorMenuBg: pullForward($colorBodyBg, 15%);
diff --git a/src/styles-new/_constants-snow.scss b/src/styles-new/_constants-snow.scss
index a52ad38561..d5e35f9b2a 100644
--- a/src/styles-new/_constants-snow.scss
+++ b/src/styles-new/_constants-snow.scss
@@ -183,6 +183,9 @@ $colorDropHintFg: pushBack($colorDropHint, 0);
$colorDisclosureCtrl: rgba($colorBodyFg, 0.5);
$colorDisclosureCtrlHov: rgba($colorBodyFg, 0.7);
$btnStdH: 24px;
+$colorCursorGuide: rgba(black, 0.6);
+$shdwCursorGuide: rgba(white, 0.4) 0 0 2px;
+$colorLocalControlOvrBg: rgba($colorBodyBg, 0.8);
// Menus
$colorMenuBg: pushBack($colorBodyBg, 10%);
diff --git a/src/styles-new/_controls.scss b/src/styles-new/_controls.scss
index f61efc6fc9..b6dc3208bd 100644
--- a/src/styles-new/_controls.scss
+++ b/src/styles-new/_controls.scss
@@ -557,8 +557,6 @@ select {
/********* Button Sets */
.c-button-set {
- // When one set is adjacent to another, provides a divider between
-
display: inline-flex;
flex: 0 0 auto;
@@ -567,21 +565,25 @@ select {
flex: 0 0 auto;
}
- + .c-button-set {
- &:before {
- @include cToolbarSeparator();
- content: '';
- }
- }
-
&[class*='--strip'] {
// Buttons are smashed together with minimal margin
- // c-buttons don't have border-radius between buttons, creates a tool-button-strip look
+ // c-buttons don't have border-radius between buttons, creates a horizontal tool-button-strip look
// c-click-icons get grouped more closely together
+
[class^="c-button"] {
// Only apply the following to buttons that have background, eg. c-button
border-radius: 0;
+ }
+ }
+ &[class*='--strip-h'] {
+ // Horizontal strip
+
+ + .c-button-set {
+ margin-left: $interiorMargin;
+ }
+
+ [class^="c-button"] {
+ * {
margin-left: 1px;
}
@@ -653,6 +655,46 @@ input[type="range"] {
}
}
+/***************************************************** LOCAL CONTROLS */
+.h-local-controls {
+ // Holder for local controls
+ &--horz {
+ // Horizontal layout be
+ display: inline-flex;
+ align-items: center;
+ }
+
+ &--overlay-content {
+ > .c-button {
+ background: $colorLocalControlOvrBg;
+ border-radius: $controlCr;
+ box-shadow: $colorLocalControlOvrBg 0 0 0 2px;
+ }
+ }
+}
+
+.c-local-controls {
+ // Controls that are in close proximity to an element they effect
+ &--show-on-hover {
+ // Hidden by default; requires a hover 1 - 3 levels above to display
+ transition: $transOut;
+ opacity: 0;
+ pointer-events: none;
+ }
+}
+
+.has-local-controls:hover {
+ > .c-local-controls--show-on-hover,
+ > * > .c-local-controls--show-on-hover,
+ > * > * > .c-local-controls--show-on-hover,
+ > * > * > * > .c-local-controls--show-on-hover
+ {
+ transition: $transIn;
+ opacity: 1;
+ pointer-events: inherit;
+ }
+}
+
/***************************************************** DRAG AND DROP */
.c-drop-hint {
// Used in Tabs View, Flexible Grid Layouts
@@ -707,19 +749,3 @@ input[type="range"] {
display: flex;
align-items: center;
}
-
-.h-local-controls {
- &-overlay-content {
- box-shadow: $colorBodyBg 0 0 0 2px;
- display: inline-block;
- position: absolute;
- right: $interiorMargin; top: $interiorMargin;
- z-index: 2;
- }
-
- &-trans {
- // Has a translucent background plate
- background: rgba($colorBodyBg, 0.8);
- border-radius: $controlCr;
- }
-}
diff --git a/src/styles-new/_global.scss b/src/styles-new/_global.scss
index 84a8621d78..d7abc0fafe 100644
--- a/src/styles-new/_global.scss
+++ b/src/styles-new/_global.scss
@@ -233,6 +233,7 @@ mct-container {
padding: 1em;
}
+*[disabled],
.disabled,
a.disabled {
opacity: $controlDisabledOpacity;
diff --git a/src/styles-new/_legacy-plots.scss b/src/styles-new/_legacy-plots.scss
new file mode 100644
index 0000000000..8621afddb1
--- /dev/null
+++ b/src/styles-new/_legacy-plots.scss
@@ -0,0 +1,550 @@
+/*****************************************************************************
+ * 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.
+ *****************************************************************************/
+/********************************************************************* PLOTS */
+mct-plot {
+ display: contents;
+}
+
+/*********************** STACKED PLOT LAYOUT */
+.t-plot-stacked {
+ .l-view-section {
+ // Make this a flex container
+ display: flex;
+ flex-flow: column nowrap;
+ .gl-plot.child-frame {
+ mct-plot {
+ display: flex;
+ flex: 1 1 auto;
+ height: 100%;
+ position: relative;
+ }
+ flex: 1 1 auto;
+ &:not(:first-child) {
+ margin-top: $interiorMargin;
+ }
+ }
+ }
+
+ .s-status-timeconductor-unsynced .holder-plot {
+ .t-object-alert.t-alert-unsynced {
+ display: block;
+ }
+ }
+}
+
+.gl-plot {
+ color: $colorPlotFg;
+ display: flex;
+ //font-size: 0.7rem;
+ position: relative;
+ width: 100%;
+ height: 100%;
+ min-height: $plotMinH;
+
+ /*********************** AXIS AND DISPLAY AREA */
+ .plot-wrapper-axis-and-display-area {
+ margin-top: $interiorMargin; // Keep the top tick label from getting clipped
+ position: relative;
+ flex: 1 1 auto;
+ .t-object-alert {
+ position: absolute;
+ display: block;
+ font-size: 1.5em;
+ top: $interiorMarginSm;
+ left: $interiorMarginSm;
+ z-index: 2;
+ }
+ }
+
+ .gl-plot-wrapper-display-area-and-x-axis {
+ // Holds the plot area and the X-axis only
+ position: absolute;
+ top: nth($plotDisplayArea, 1);
+ right:0;
+ bottom: 0;
+ left: nth($plotDisplayArea, 4);
+
+ .gl-plot-display-area {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: nth($plotDisplayArea, 3);
+ left: 0;
+ }
+
+ .gl-plot-axis-area.gl-plot-x {
+ top: auto;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ height: $plotXBarH;
+ width: auto;
+ overflow: hidden;
+ }
+ }
+
+ .gl-plot-axis-area {
+ position: absolute;
+ &.gl-plot-y {
+ top: nth($plotDisplayArea, 1);
+ right: auto;
+ bottom: nth($plotDisplayArea, 3);
+ left: 0;
+ width: $plotYBarW;
+ }
+ }
+
+ .gl-plot-coords {
+ box-sizing: border-box;
+ border-radius: $controlCr;
+ background: black;
+ color: lighten($colorBodyFg, 30%);
+ padding: 2px 5px;
+ position: absolute;
+ top: nth($plotDisplayArea,1) + $interiorMarginLg;
+ right: auto;
+ bottom: auto;
+ left: nth($plotDisplayArea,4) + $interiorMarginLg;
+ z-index: 10;
+ &:empty {
+ display: none;
+ }
+ }
+
+ .gl-plot-label,
+ .l-plot-label {
+ color: $colorPlotLabelFg;
+ position: absolute;
+ text-align: center;
+
+ &.gl-plot-x-label,
+ &.l-plot-x-label {
+ top: auto;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ height: auto;
+ }
+
+ &.gl-plot-y-label,
+ &.l-plot-y-label {
+ $x: -50%;
+ $r: -90deg;
+ transform-origin: 50% 0;
+ transform: translateX($x) rotate($r);
+ display: inline-block;
+ margin-left: $interiorMargin; // Kick off the left edge
+ left: 0;
+ top: 50%;
+ white-space: nowrap;
+ }
+ }
+
+ .gl-plot-x-options,
+ .gl-plot-y-options {
+ $h: 24px;
+ position: absolute;
+ height: $h;
+ min-height: $h;
+ z-index: 2;
+ }
+
+ .gl-plot-x-options {
+ transform: translateX(-50%);
+ bottom: 0;
+ left: 50%;
+ }
+
+ .gl-plot-y-options {
+ transform: translateY(-50%);
+ min-width: 150px; // Need this due to enclosure of .select
+ top: 50%;
+ left: $plotYLabelW + $interiorMargin * 2;
+ }
+
+ .t-plot-display-controls {
+ position: absolute;
+ top: $interiorMargin;
+ right: $interiorMargin;
+ }
+
+ .gl-plot-hash {
+ position: absolute;
+ opacity: $opacityPlotHash;
+ &.hash-v {
+ border-right: 1px $colorPlotHash $stylePlotHash;
+ height: 100%;
+ }
+ &.hash-h {
+ border-bottom: 1px $colorPlotHash $stylePlotHash;
+ width: 100%;
+ }
+ }
+
+ &__local-controls {
+ // Plot local controls
+ $m: $interiorMargin;
+ display: flex;
+ align-items: center;
+ position: absolute;
+ top: $m;
+ right: $m;
+ z-index: 9;
+
+ &__reset {
+ transition: right 100ms;
+ top: $m;
+ right: $m;
+ }
+
+ &__zoom-and-guides {
+ top: $m;
+ right: $m;
+ }
+ }
+}
+
+.gl-plot-display-area,
+.plot-display-area {
+ @if $colorPlotBg != none {
+ background-color: $colorPlotBg;
+ }
+ cursor: crosshair;
+ border: 1px solid $colorPlotAreaBorder;
+}
+
+.tick {
+ position: absolute;
+ border: 0 $colorPlotHash solid;
+ &.tick-x {
+ border-right-width: 1px;
+ height: 100%; // Assumption is that the tick will be in a holder that will set it's height;
+ }
+}
+
+.gl-plot-tick,
+.tick-label {
+ @include reverseEllipsis();
+ font-size: 0.7rem;
+ position: absolute;
+ &.gl-plot-x-tick-label,
+ &.tick-label-x {
+ right: auto;
+ bottom: auto;
+ left: auto;
+ height: auto;
+ width: 20%;
+ margin-left: -10%;
+ text-align: center;
+ }
+ &.gl-plot-y-tick-label,
+ &.tick-label-y {
+ top: auto;
+ height: 1em;
+ width: auto;
+ margin-bottom: -0.5em;
+ text-align: right;
+ }
+}
+
+.gl-plot-tick {
+ &.gl-plot-x-tick-label {
+ top: $interiorMargin;
+ }
+ &.gl-plot-y-tick-label {
+ right: $interiorMargin;
+ left: $interiorMargin;
+ }
+}
+
+.tick-label {
+ &.tick-label-x {
+ top: 0;
+ }
+ &.tick-label-y {
+ right: 0;
+ left: 0;
+ }
+}
+
+.export-plot {
+ $bg: white;
+ $fg: black;
+ $gry: #999;
+
+ background: $bg !important;
+ z-index: -10;
+
+ .l-view-section {
+ $m: $interiorMargin;
+ top: $m !important;
+ right: $m;
+ bottom: $m;
+ left: $m;
+
+ .s-status-timeconductor-unsynced .holder-plot {
+ .t-object-alert.t-alert-unsynced {
+ display: none;
+ }
+ }
+ }
+
+ .gl-plot-display-area {
+ background: none !important;
+ border-color: $gry !important;
+
+ .gl-plot-local-controls,
+ .h-local-controls {
+ opacity: 0;
+ }
+ }
+
+ .gl-plot {
+ color: $fg;
+
+ .gl-plot-hash {
+ opacity: 0.1;
+ border-color: $fg;
+ }
+ }
+
+ table {
+ thead {
+ border-bottom: none;
+
+ th {
+ background: #eee;
+ border-left-color: $bg;
+ color: #666;
+ }
+
+ tr {
+ border: none;
+ }
+ }
+ tbody {
+ tr {
+ border-top: 1px solid #ccc;
+ }
+
+ td {
+ color: $fg;
+ }
+ }
+ }
+}
+
+/****************** _LEGEND.SCSS */
+.gl-plot-legend {
+ display: flex;
+ align-items: flex-start;
+
+ &__view-control {
+ padding-top: 2px;
+ margin-right: $interiorMarginSm;
+ }
+
+ table {
+ table-layout: fixed;
+ th,
+ td {
+ @include ellipsize(); // Note: this won't work if table-layout uses anything other than fixed.
+ padding: 1px 3px; // Tighter than standard tabular padding
+ }
+ }
+
+ &.hover-on-plot {
+ // User is hovering over the plot to get a value at a point
+ .hover-value-enabled {
+ background-color: $legendHoverValueBg;
+ border-radius: $smallCr;
+ padding: 0 $interiorMarginSm;
+
+ &.value-to-display-min:before {
+ content: 'MIN ';
+ }
+ &.value-to-display-max:before {
+ content: 'MAX ';
+ }
+ }
+ }
+}
+
+/***************** GENERAL STYLES, ALL STATES */
+.plot-legend-item {
+ // General styles for legend items, both expanded and collapsed legend states
+ .plot-series-color-swatch {
+ border-radius: $smallCr;
+ border: 1px solid $colorBodyBg;
+ display: inline-block;
+ height: $plotSwatchD;
+ width: $plotSwatchD;
+ }
+ .plot-series-name {
+ display: inline;
+ }
+
+ .plot-series-value {
+ @include ellipsize();
+ }
+}
+
+.plot-wrapper-expanded-legend {
+ flex: 1 1 auto;
+}
+
+.gl-plot {
+ &.plot-legend-collapsed .plot-wrapper-expanded-legend { display: none; }
+ &.plot-legend-expanded .plot-wrapper-collapsed-legend { display: none; }
+
+ /***************** GENERAL STYLES, COLLAPSED */
+ &.plot-legend-collapsed {
+ // .plot-legend-item is a span of spans.
+ &.plot-legend-top .gl-plot-legend { margin-bottom: $interiorMargin; }
+ &.plot-legend-bottom .gl-plot-legend { margin-top: $interiorMargin; }
+ &.plot-legend-right .gl-plot-legend { margin-left: $interiorMargin; }
+ &.plot-legend-left .gl-plot-legend { margin-right: $interiorMargin; }
+
+ .plot-legend-item {
+ display: flex;
+ align-items: center;
+ justify-content: stretch;
+ &:not(:first-child) {
+ margin-left: $interiorMarginLg;
+ }
+ .plot-series-swatch-and-name,
+ .plot-series-value {
+ @include ellipsize();
+ flex: 1 1 auto;
+ }
+
+ .plot-series-swatch-and-name {
+ margin-right: $interiorMarginSm;
+ }
+
+ .plot-series-value {
+ text-align: left;
+ }
+ }
+ }
+
+ /***************** GENERAL STYLES, EXPANDED */
+ &.plot-legend-expanded {
+ .gl-plot-legend {
+ max-height: 70%;
+ }
+
+ .plot-wrapper-expanded-legend {
+ overflow-y: auto;
+ }
+ }
+
+ /***************** TOP OR BOTTOM */
+ &.plot-legend-top,
+ &.plot-legend-bottom {
+ // General styles when legend is on the top or bottom
+ flex-direction: column;
+
+ &.plot-legend-collapsed {
+ // COLLAPSED ON TOP OR BOTTOM
+ .plot-wrapper-collapsed-legend {
+ display: flex;
+ flex: 1 1 auto;
+ overflow: hidden;
+ }
+ }
+ }
+
+ /***************** EITHER SIDE */
+ &.plot-legend-left,
+ &.plot-legend-right {
+ // If the legend is expanded, use flex-col instead so that the legend gets the width it needs.
+ &.plot-legend-expanded {
+ // EXPANDED, ON EITHER SIDE
+ flex-direction: column;
+ }
+
+ &.plot-legend-collapsed {
+ // COLLAPSED, ON EITHER SIDE
+ .gl-plot-legend {
+ max-height: inherit;
+ width: 25%;
+ }
+ .plot-wrapper-collapsed-legend {
+ display: flex;
+ flex-flow: column nowrap;
+ min-width: 0;
+ flex: 1 1 auto;
+ overflow-y: auto;
+ }
+ .plot-legend-item {
+ margin-bottom: 1px;
+ margin-left: 0;
+ flex-wrap: wrap;
+ .plot-series-swatch-and-name {
+ flex: 0 1 auto;
+ min-width: 20%;
+ }
+ .plot-series-value {
+ flex: 0 1 auto;
+ width: auto;
+ }
+ }
+ }
+ }
+
+ /***************** ON BOTTOM OR RIGHT */
+ &.plot-legend-right:not(.plot-legend-expanded),
+ &.plot-legend-bottom {
+ .gl-plot-legend {
+ order: 2;
+ }
+ .plot-wrapper-axis-and-display-area {
+ order: 1;
+ }
+ }
+}
+
+/***************** CURSOR GUIDES */
+[class*='c-cursor-guide'] {
+ box-shadow: $shdwCursorGuide;
+ background-color: $colorCursorGuide;
+ display: none; // Displayed when an element with has-cursor-guides gets a hover; see below
+ pointer-events: none;
+ position: absolute;
+}
+
+.has-cursor-guides:hover [class*='c-cursor-guide'] {
+ display: block;
+}
+
+.c-cursor-guide {
+ &--h {
+ height: 1px;
+ left: 0; right: 0;
+ }
+
+ &--v {
+ width: 1px;
+ top: 0; bottom: 0;
+ }
+}
diff --git a/src/styles-new/_legacy.scss b/src/styles-new/_legacy.scss
index 0fde6e8f90..f3e8b5c1be 100644
--- a/src/styles-new/_legacy.scss
+++ b/src/styles-new/_legacy.scss
@@ -19,491 +19,6 @@
* this source code distribution or the Licensing information page available
* at runtime from the About dialog for additional information.
*****************************************************************************/
-
-/********************************************************************* PLOTS */
-mct-plot {
- display: contents;
-}
-
-/*********************** STACKED PLOT LAYOUT */
-.t-plot-stacked {
- .l-view-section {
- // Make this a flex container
- display: flex;
- flex-flow: column nowrap;
- .gl-plot.child-frame {
- mct-plot {
- display: flex;
- flex: 1 1 auto;
- height: 100%;
- position: relative;
- }
- flex: 1 1 auto;
- &:not(:first-child) {
- margin-top: $interiorMargin;
- }
- }
- }
-
- .s-status-timeconductor-unsynced .holder-plot {
- .t-object-alert.t-alert-unsynced {
- display: block;
- }
- }
-}
-
-.gl-plot {
- color: $colorPlotFg;
- display: flex;
- font-size: 0.7rem;
- position: relative;
- width: 100%;
- height: 100%;
- min-height: $plotMinH;
-
- /*********************** AXIS AND DISPLAY AREA */
- .plot-wrapper-axis-and-display-area {
- margin-top: $interiorMargin; // Keep the top tick label from getting clipped
- position: relative;
- flex: 1 1 auto;
- .t-object-alert {
- position: absolute;
- display: block;
- font-size: 1.5em;
- top: $interiorMarginSm;
- left: $interiorMarginSm;
- z-index: 2;
- }
- }
-
- .gl-plot-wrapper-display-area-and-x-axis {
- // Holds the plot area and the X-axis only
- position: absolute;
- top: nth($plotDisplayArea, 1);
- right:0;
- bottom: 0;
- left: nth($plotDisplayArea, 4);
-
- .gl-plot-display-area {
- position: absolute;
- top: 0;
- right: 0;
- bottom: nth($plotDisplayArea, 3);
- left: 0;
- }
-
- .gl-plot-axis-area.gl-plot-x {
- top: auto;
- right: 0;
- bottom: 0;
- left: 0;
- height: $plotXBarH;
- width: auto;
- overflow: hidden;
- }
- }
-
- .gl-plot-axis-area {
- position: absolute;
- &.gl-plot-y {
- top: nth($plotDisplayArea, 1);
- right: auto;
- bottom: nth($plotDisplayArea, 3);
- left: 0;
- width: $plotYBarW;
- }
- }
-
- .gl-plot-coords {
- box-sizing: border-box;
- border-radius: $controlCr;
- background: black;
- color: lighten($colorBodyFg, 30%);
- padding: 2px 5px;
- position: absolute;
- top: nth($plotDisplayArea,1) + $interiorMarginLg;
- right: auto;
- bottom: auto;
- left: nth($plotDisplayArea,4) + $interiorMarginLg;
- z-index: 10;
- &:empty {
- display: none;
- }
- }
-
- .gl-plot-label,
- .l-plot-label {
- color: $colorPlotLabelFg;
- position: absolute;
- text-align: center;
-
- &.gl-plot-x-label,
- &.l-plot-x-label {
- top: auto;
- right: 0;
- bottom: 0;
- left: 0;
- height: auto;
- }
-
- &.gl-plot-y-label,
- &.l-plot-y-label {
- $x: -50%;
- $r: -90deg;
- transform-origin: 50% 0;
- transform: translateX($x) rotate($r);
- display: inline-block;
- margin-left: $interiorMargin; // Kick off the left edge
- left: 0;
- top: 50%;
- white-space: nowrap;
- }
- }
-
- .gl-plot-x-options,
- .gl-plot-y-options {
- $h: 24px;
- position: absolute;
- height: $h;
- min-height: $h;
- z-index: 2;
- }
-
- .gl-plot-x-options {
- transform: translateX(-50%);
- bottom: 0;
- left: 50%;
- }
-
- .gl-plot-y-options {
- transform: translateY(-50%);
- min-width: 150px; // Need this due to enclosure of .select
- top: 50%;
- left: $plotYLabelW + $interiorMargin * 2;
- }
-
- .t-plot-display-controls {
- position: absolute;
- top: $interiorMargin;
- right: $interiorMargin;
- }
-
- .gl-plot-hash {
- position: absolute;
- opacity: $opacityPlotHash;
- &.hash-v {
- border-right: 1px $colorPlotHash $stylePlotHash;
- height: 100%;
- }
- &.hash-h {
- border-bottom: 1px $colorPlotHash $stylePlotHash;
- width: 100%;
- }
- }
-}
-
-.gl-plot-display-area,
-.plot-display-area {
- @if $colorPlotBg != none {
- background-color: $colorPlotBg;
- }
- cursor: crosshair;
- border: 1px solid $colorPlotAreaBorder;
-}
-
-.tick {
- position: absolute;
- border: 0 $colorPlotHash solid;
- &.tick-x {
- border-right-width: 1px;
- height: 100%; // Assumption is that the tick will be in a holder that will set it's height;
- }
-}
-
-.gl-plot-tick,
-.tick-label {
- @include reverseEllipsis();
- font-size: 0.7rem;
- position: absolute;
- &.gl-plot-x-tick-label,
- &.tick-label-x {
- right: auto;
- bottom: auto;
- left: auto;
- height: auto;
- width: 20%;
- margin-left: -10%;
- text-align: center;
- }
- &.gl-plot-y-tick-label,
- &.tick-label-y {
- top: auto;
- height: 1em;
- width: auto;
- margin-bottom: -0.5em;
- text-align: right;
- }
-}
-
-.gl-plot-tick {
- &.gl-plot-x-tick-label {
- top: $interiorMargin;
- }
- &.gl-plot-y-tick-label {
- right: $interiorMargin;
- left: $interiorMargin;
- }
-}
-
-.tick-label {
- &.tick-label-x {
- top: 0;
- }
- &.tick-label-y {
- right: 0;
- left: 0;
- }
-}
-
-.export-plot {
- $bg: white;
- $fg: black;
- $gry: #999;
-
- background: $bg !important;
- z-index: -10;
-
- .l-view-section {
- $m: $interiorMargin;
- top: $m !important;
- right: $m;
- bottom: $m;
- left: $m;
-
- .s-status-timeconductor-unsynced .holder-plot {
- .t-object-alert.t-alert-unsynced {
- display: none;
- }
- }
- }
-
- .gl-plot-display-area {
- background: none !important;
- border-color: $gry !important;
-
- .gl-plot-local-controls,
- .h-local-controls {
- opacity: 0;
- }
- }
-
- .gl-plot {
- color: $fg;
-
- .gl-plot-hash {
- opacity: 0.1;
- border-color: $fg;
- }
- }
-
- table {
- thead {
- border-bottom: none;
-
- th {
- background: #eee;
- border-left-color: $bg;
- color: #666;
- }
-
- tr {
- border: none;
- }
- }
- tbody {
- tr {
- border-top: 1px solid #ccc;
- }
-
- td {
- color: $fg;
- }
- }
- }
-}
-
-/****************** _LEGEND.SCSS */
-.gl-plot-legend {
- display: flex;
- align-items: flex-start;
-
- &__view-control {
- padding-top: 2px;
- margin-right: $interiorMarginSm;
- }
-
- table {
- table-layout: fixed;
- th,
- td {
- @include ellipsize(); // Note: this won't work if table-layout uses anything other than fixed.
- padding: 1px 3px; // Tighter than standard tabular padding
- //width: 1%;
- }
- }
-
- &.hover-on-plot {
- // User is hovering over the plot to get a value at a point
- .hover-value-enabled {
- background-color: $legendHoverValueBg;
- border-radius: $smallCr;
- padding: 0 $interiorMarginSm;
-
- &.value-to-display-min:before {
- content: 'MIN ';
- }
- &.value-to-display-max:before {
- content: 'MAX ';
- }
- }
- }
-}
-
-/***************** GENERAL STYLES, ALL STATES */
-.plot-legend-item {
- // General styles for legend items, both expanded and collapsed legend states
- .plot-series-color-swatch {
- border-radius: $smallCr;
- border: 1px solid $colorBodyBg;
- display: inline-block;
- height: $plotSwatchD;
- width: $plotSwatchD;
- }
- .plot-series-name {
- display: inline;
- }
-
- .plot-series-value {
- @include ellipsize();
- }
-}
-
-.plot-wrapper-expanded-legend {
- flex: 1 1 auto;
-}
-
-.gl-plot {
- &.plot-legend-collapsed .plot-wrapper-expanded-legend { display: none; }
- &.plot-legend-expanded .plot-wrapper-collapsed-legend { display: none; }
-
- /***************** GENERAL STYLES, COLLAPSED */
- &.plot-legend-collapsed {
- // .plot-legend-item is a span of spans.
- &.plot-legend-top .gl-plot-legend { margin-bottom: $interiorMargin; }
- &.plot-legend-bottom .gl-plot-legend { margin-top: $interiorMargin; }
- &.plot-legend-right .gl-plot-legend { margin-left: $interiorMargin; }
- &.plot-legend-left .gl-plot-legend { margin-right: $interiorMargin; }
-
- .plot-legend-item {
- display: flex;
- align-items: center;
- justify-content: stretch;
- &:not(:first-child) {
- margin-left: $interiorMarginLg;
- }
- .plot-series-swatch-and-name,
- .plot-series-value {
- @include ellipsize();
- flex: 1 1 auto;
- }
-
- .plot-series-swatch-and-name {
- margin-right: $interiorMarginSm;
- }
-
- .plot-series-value {
- text-align: left;
- }
- }
- }
-
- /***************** GENERAL STYLES, EXPANDED */
- &.plot-legend-expanded {
- .gl-plot-legend {
- max-height: 70%;
- }
-
- .plot-wrapper-expanded-legend {
- overflow-y: auto;
- }
- }
-
- /***************** TOP OR BOTTOM */
- &.plot-legend-top,
- &.plot-legend-bottom {
- // General styles when legend is on the top or bottom
- flex-direction: column;
-
- &.plot-legend-collapsed {
- // COLLAPSED ON TOP OR BOTTOM
- .plot-wrapper-collapsed-legend {
- display: flex;
- flex: 1 1 auto;
- overflow: hidden;
- }
- }
- }
-
- /***************** EITHER SIDE */
- &.plot-legend-left,
- &.plot-legend-right {
- // If the legend is expanded, use flex-col instead so that the legend gets the width it needs.
- &.plot-legend-expanded {
- // EXPANDED, ON EITHER SIDE
- flex-direction: column;
- }
-
- &.plot-legend-collapsed {
- // COLLAPSED, ON EITHER SIDE
- .gl-plot-legend {
- max-height: inherit;
- width: 25%;
- }
- .plot-wrapper-collapsed-legend {
- display: flex;
- flex-flow: column nowrap;
- min-width: 0;
- flex: 1 1 auto;
- overflow-y: auto;
- }
- .plot-legend-item {
- margin-bottom: 1px;
- margin-left: 0;
- flex-wrap: wrap;
- .plot-series-swatch-and-name {
- flex: 0 1 auto;
- min-width: 20%;
- }
- .plot-series-value {
- flex: 0 1 auto;
- width: auto;
- }
- }
- }
- }
-
- /***************** ON BOTTOM OR RIGHT */
- &.plot-legend-right:not(.plot-legend-expanded),
- &.plot-legend-bottom {
- .gl-plot-legend {
- order: 2;
- }
- .plot-wrapper-axis-and-display-area {
- order: 1;
- }
- }
-}
-
/******************************************************************* VIEWS */
// From _views.scss
// Legacy overlay and stacked plots depend on this for now
@@ -582,7 +97,6 @@ mct-plot {
}
.l-image-main-controlbar {
- font-size: 0.8em;
line-height: inherit;
.l-datetime-w, .l-controls-w {
direction: rtl;
@@ -624,7 +138,6 @@ mct-plot {
}
/*************************************** THUMBS */
-
.l-image-thumbs-wrapper {
overflow-x: hidden;
overflow-y: auto;
@@ -639,7 +152,6 @@ mct-plot {
direction: ltr;
display: inline-block;
float: left;
- font-size: 0.8em;
padding: 1px;
margin-left: $interiorMarginSm;
position: relative;
@@ -679,9 +191,14 @@ mct-plot {
}
/*************************************** LOCAL CONTROLS */
-.t-imagery {
+.c-imagery {
display: contents;
- .h-local-controls.h-local-controls-overlay-content {
+ .h-local-controls--overlay-content {
+ position: absolute;
+ right: $interiorMargin; top: $interiorMargin;
+ z-index: 2;
+ background: $colorLocalControlOvrBg;
+ border-radius: $basicCr;
max-width: 200px;
min-width: 100px;
width: 35%;
@@ -699,8 +216,10 @@ mct-plot {
margin-right: $interiorMarginSm;
}
}
+ }
- .t-reset-btn-holder {
+ &__lc {
+ &__reset-btn {
$bc: $scrollbarTrackColorBg;
&:before,
&:after {
@@ -730,8 +249,8 @@ mct-plot {
.l-image-main-wrapper {
bottom: 0 !important;
height: 100% !important;
- .l-image-main-controlbar {
- font-size: 0.7em;
+ .l-image-main-controlbar .c-button {
+ //font-size: 0.7em;
}
}
.l-image-thumbs-wrapper,
@@ -1723,6 +1242,10 @@ body.desktop {
display: none;
}
}
+
+ &.c-loading--overlay {
+ @include abs();
+ }
}
/******************************************************************* FLEX STYLES */
diff --git a/src/styles-new/_mixins.scss b/src/styles-new/_mixins.scss
index 25e1461d24..6a162d49a6 100644
--- a/src/styles-new/_mixins.scss
+++ b/src/styles-new/_mixins.scss
@@ -391,7 +391,8 @@
color: $colorBtnFgHov;
}
- &[class*="--major"] {
+ &[class*="--major"],
+ &[class*='is-active']{
background: $colorBtnMajorBg;
color: $colorBtnMajorFg;
diff --git a/src/styles-new/core.scss b/src/styles-new/core.scss
index 4dfbfa107f..f3c4f5ab43 100644
--- a/src/styles-new/core.scss
+++ b/src/styles-new/core.scss
@@ -31,3 +31,4 @@
@import "forms";
@import "table";
@import "legacy";
+@import "legacy-plots";
diff --git a/src/ui/components/ObjectFrame.vue b/src/ui/components/ObjectFrame.vue
index f312b88dfe..2816e1bb80 100644
--- a/src/ui/components/ObjectFrame.vue
+++ b/src/ui/components/ObjectFrame.vue
@@ -113,6 +113,12 @@
}
}
}
+
+ .c-click-icon,
+ .c-button {
+ // Shrink buttons a bit when they appear in a frame
+ font-size: 0.8em;
+ }
}