mirror of
https://github.com/nasa/openmct.git
synced 2025-05-21 01:37:38 +00:00
* Misc UI 10 - Add .c-input--sm CSS class for VISTA auto-clear input; * Misc UI 10 - WIP! - Add new glyohs: suitcase and clear data; - Change icon-database to icon-suitcase; - Need to unit test! * Misc UI 10 - Refinements to shell__head Indicators layout; - Refinements to collapse-buttons; - Better color for Snow theme caution; * Misc UI 10 - Better Open MCT logo for Snow theme; - Renamed logo-app.svg to logo-openmct.svg; - Removed unused image files; * Misc UI 10 - Remove title attr from Angular indicator, interferes with hover element; * Misc UI 10 - Fix favicons, updated art; - Removed favicon.ico; * Misc UI 10 - Rebuild of Icomoon JSON file, which appeared to have gotten damaged, probably due to merging; - Font files updated, added .svg font back to repo; - Font metrics modified to now use 20% baseline height; * Misc UI 10 - Fix class in plot for control-bar element; - Fix CSS in ObjectFrame.vue; * Misc UI 10 - Rename folder styles-new to styles; * Misc UI 10 - Remove unused src/fonts folder; * Misc UI 10 - Symbols font now using baseline of 20%;
375 lines
9.1 KiB
SCSS
375 lines
9.1 KiB
SCSS
/*****************************************************************************
|
|
* 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.
|
|
*****************************************************************************/
|
|
.c-form {
|
|
display: flex;
|
|
flex-direction: column;
|
|
|
|
&__section {
|
|
display: inherit;
|
|
flex-direction: column;
|
|
}
|
|
|
|
&__row {
|
|
display: flex;
|
|
}
|
|
|
|
&__header {
|
|
border-radius: $basicCr;
|
|
background: $colorFormSectionHeaderBg;
|
|
color: $colorFormSectionHeaderFg;
|
|
font-size: inherit;
|
|
font-weight: normal;
|
|
margin: $interiorMargin 0;
|
|
padding: $formTBPad $formLRPad;
|
|
text-transform: uppercase;
|
|
}
|
|
}
|
|
|
|
/***************************************************** LEGACY */
|
|
.section-header {
|
|
border-radius: $basicCr;
|
|
color: lighten($colorBodyFg, 20%);
|
|
font-size: inherit;
|
|
margin: $interiorMargin 0;
|
|
padding: $formTBPad $formLRPad;
|
|
text-transform: uppercase;
|
|
.view-control {
|
|
display: inline-block;
|
|
margin-right: $interiorMargin;
|
|
width: 1em;
|
|
height: 1em;
|
|
}
|
|
}
|
|
|
|
.form {
|
|
color: $colorFormText;
|
|
height: 100%;
|
|
width: 100%;
|
|
|
|
.l-form-section {
|
|
margin-bottom: $interiorMarginLg * 2;
|
|
position: relative;
|
|
&.grows {
|
|
.l-section-body,
|
|
.form-row {
|
|
flex: 1 1 auto;
|
|
.wrapper {
|
|
height: 100%;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.form-row {
|
|
$m: $interiorMargin;
|
|
box-sizing: border-box;
|
|
border-top: 1px solid $colorFormLines;
|
|
padding: $formTBPad 0;
|
|
position: relative;
|
|
|
|
&.first {
|
|
border-top: none;
|
|
}
|
|
|
|
>.label,
|
|
>.controls {
|
|
box-sizing: border-box;
|
|
font-size: 0.8rem;
|
|
}
|
|
|
|
>.label {
|
|
// Only style this way for immediate children of .form-row; prevents problems when .label is used in .controls section of a form
|
|
min-width: 120px;
|
|
order: 1;
|
|
position: relative;
|
|
width: $formLabelW;
|
|
}
|
|
|
|
.value {
|
|
color: $colorInputFg;
|
|
}
|
|
|
|
.controls {
|
|
order: 2;
|
|
position: relative;
|
|
flex: 1 1 auto;
|
|
|
|
.l-composite-control {
|
|
&.l-checkbox {
|
|
display: inline-block;
|
|
line-height: $formRowCtrlsH;
|
|
margin-right: 5px;
|
|
}
|
|
}
|
|
|
|
.l-input-lg { // LEGACY FORM SUPPORT
|
|
input[type=text],
|
|
input[type=search],
|
|
input[type=number] {
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
select {
|
|
margin-right: $interiorMargin;
|
|
}
|
|
}
|
|
|
|
.hint, .field-hints { color: $colorFieldHint; }
|
|
}
|
|
}
|
|
|
|
.selector-list {
|
|
// Displays tree view in dialogs
|
|
@include nice-input();
|
|
padding: $interiorMargin;
|
|
position: relative;
|
|
min-height: 0; // Chrome 73 overflow bug fix
|
|
height: 100%;
|
|
>.wrapper {
|
|
$p: $interiorMargin;
|
|
box-sizing: border-box;
|
|
overflow: auto;
|
|
}
|
|
}
|
|
|
|
.l-controls-first .form .form-row,
|
|
.form .form-row.l-controls-first {
|
|
>.label,
|
|
>.controls {
|
|
line-height: inherit;
|
|
min-height: inherit;
|
|
}
|
|
>.label {
|
|
flex: 1 1 auto;
|
|
min-width: 0;
|
|
width: auto;
|
|
order: 2;
|
|
}
|
|
>.control,
|
|
>.controls {
|
|
flex: 0 0 auto;
|
|
margin-right: $interiorMargin;
|
|
order: 1;
|
|
}
|
|
}
|
|
|
|
.l-controls-under.l-flex-row {
|
|
// Change to use column layout
|
|
flex-direction: column;
|
|
.flex-elem {
|
|
margin-bottom: $interiorMarginLg;
|
|
}
|
|
}
|
|
|
|
.l-composite-control {
|
|
vertical-align: middle;
|
|
&:not(.l-inline) {
|
|
margin-bottom: $interiorMargin;
|
|
}
|
|
&.l-inline {
|
|
display: inline-block;
|
|
}
|
|
&.l-checkbox {
|
|
.composite-control-label {
|
|
line-height: 18px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.autocomplete {
|
|
input {
|
|
width: 226px;
|
|
padding: 5px 0px 5px 7px;
|
|
}
|
|
.icon-arrow-down {
|
|
position: absolute;
|
|
top: 8px;
|
|
left: 210px;
|
|
font-size: 10px;
|
|
cursor: pointer;
|
|
}
|
|
.autocompleteOptions {
|
|
border: 1px solid $colorFormLines;
|
|
border-radius: 5px;
|
|
width: 224px;
|
|
max-height: 170px;
|
|
overflow-y: auto;
|
|
overflow-x: hidden;
|
|
li {
|
|
border: 1px solid $colorFormLines;
|
|
padding: 8px 0px 8px 5px;
|
|
.optionText {
|
|
cursor: pointer;
|
|
}
|
|
}
|
|
.optionPreSelected {
|
|
background-color: $colorInspectorSectionHeaderBg;
|
|
color: $colorInspectorSectionHeaderFg;
|
|
}
|
|
}
|
|
}
|
|
|
|
/********* COMPACT FORM */
|
|
// ul > li > label, control
|
|
// Make a new UL for each form section
|
|
// Allow control-first, controls-below
|
|
// 3/8/19: Used by Summary Widgets edit UI
|
|
|
|
.l-compact-form .tree ul li,
|
|
.l-compact-form ul li {
|
|
padding: 2px 0;
|
|
}
|
|
|
|
|
|
.l-compact-form {
|
|
$h: $btnStdH;
|
|
$labelW: 40%;
|
|
$minW: $labelW;
|
|
ul {
|
|
li {
|
|
display: flex;
|
|
align-items: stretch;
|
|
padding: $interiorMargin 0;
|
|
|
|
label,
|
|
.control {
|
|
display: flex;
|
|
}
|
|
label {
|
|
line-height: $h;
|
|
width: $labelW;
|
|
}
|
|
.controls {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
align-items: flex-start;
|
|
flex-grow: 1;
|
|
margin-left: $interiorMargin;
|
|
min-height: $h;
|
|
line-height: $h;
|
|
input[type="text"],
|
|
input[type="search"],
|
|
input[type="number"],
|
|
button,
|
|
select {
|
|
min-height: $h;
|
|
}
|
|
|
|
> * + * {
|
|
margin-left: $interiorMarginSm;
|
|
}
|
|
}
|
|
|
|
&.connects-to-previous {
|
|
padding-top: 0;
|
|
}
|
|
|
|
&.section-header {
|
|
margin-top: $interiorMarginLg;
|
|
border-top: 1px solid $colorFormLines;
|
|
}
|
|
|
|
&.controls-first {
|
|
.control {
|
|
flex-grow: 0;
|
|
margin-right: $interiorMargin;
|
|
min-width: 0;
|
|
order: 1;
|
|
width: auto;
|
|
}
|
|
label {
|
|
flex-grow: 1;
|
|
order: 2;
|
|
width: auto;
|
|
}
|
|
}
|
|
&.controls-under {
|
|
display: block;
|
|
.control, label {
|
|
display: block;
|
|
width: auto;
|
|
}
|
|
|
|
ul li {
|
|
border-top: none !important;
|
|
padding: 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
/******** VALIDATION */
|
|
.form-error {
|
|
// Block element that visually flags an error and contains a message
|
|
background-color: $colorFormFieldErrorBg;
|
|
color: $colorFormFieldErrorFg;
|
|
border-radius: $basicCr;
|
|
display: block;
|
|
padding: 1px 6px;
|
|
&:before {
|
|
content: $glyph-icon-alert-triangle;
|
|
display: inline-block;
|
|
font-family: symbolsfont;
|
|
margin-right: $interiorMarginSm;
|
|
}
|
|
}
|
|
|
|
|
|
@mixin labelValidate($sym, $c) {
|
|
> .label {
|
|
@include glyphAfter($sym);
|
|
&:after {
|
|
color: $c;
|
|
margin-left: $interiorMargin;
|
|
}
|
|
}
|
|
}
|
|
|
|
mct-form.validates {
|
|
.form-row.validates {
|
|
> .label {
|
|
padding-right: 1em; // Keep room for validation element
|
|
&:after {
|
|
font-size: .8em;
|
|
}
|
|
}
|
|
&.invalid,
|
|
&.invalid.req { @include labelValidate($glyph-icon-x, $colorFormInvalid); }
|
|
|
|
&.valid,
|
|
&.valid.req { @include labelValidate($glyph-icon-check, $colorFormValid); }
|
|
|
|
&.req { @include labelValidate($glyph-icon-asterisk, $colorFormRequired); }
|
|
}
|
|
}
|
|
|
|
body.desktop .form-row.validates > .label {
|
|
&:after {
|
|
position: absolute;
|
|
right: $interiorMargin;
|
|
height: 100%;
|
|
line-height: 200%;
|
|
}
|
|
}
|