openmct/src/styles-new/_controls.scss

485 lines
12 KiB
SCSS
Raw Normal View History

/*****************************************************************************
* 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.
*****************************************************************************/
/********* Buttons */
// Optionally can include icon in :before via markup
button {
@include htmlInputReset();
}
.c-button,
.c-button--menu {
@include cButton();
}
.c-button--menu {
$m: $interiorMargin;
&:before,
> * {
margin-right: $m;
}
&:after {
content: $glyph-icon-arrow-down;
font-family: symbolsfont;
opacity: 0.5;
}
}
/********* Icon Buttons */
.c-click-icon {
@include cClickIcon();
&--menu {
&:after {
content: $glyph-icon-arrow-down;
font-family: symbolsfont;
font-size: 0.6em;
margin-left: floor($interiorMarginSm * 0.8);
opacity: 0.5;
}
}
&--swatched {
// Color control, show swatch element
display: flex;
flex-flow: column nowrap;
align-items: center;
justify-content: center;
> [class*='swatch'] {
box-shadow: inset rgba(black, 0.2) 0 0 1px;
flex: 0 0 auto;
height: 4px;
width: 100%;
margin-top: 1px;
}
&:before {
// Reduce size of icon to make a bit of room
flex: 1 1 auto;
font-size: 1.1em;
}
}
}
/******************************************************** DISCLOSURE CONTROLS */
/********* Disclosure Button */
// Provides a downward arrow icon that when clicked displays a context menu
// Always placed AFTER an element
.c-disclosure-button {
@include cClickIcon();
margin-left: $interiorMarginSm;
&:before {
content: $glyph-icon-arrow-down;
font-family: symbolsfont;
font-size: 0.7em;
}
}
/********* Disclosure Triangle */
// Provides an arrow icon that when clicked expands an element to reveal its contents.
// Used in tree items. Always placed BEFORE an element.
.c-disclosure-triangle {
$d: 12px;
display: flex;
align-items: center;
justify-content: center;
flex: 0 0 auto;
width: $d;
position: relative;
&.is-enabled:before {
$s: .65;
content: $glyph-icon-arrow-right-equilateral;
display: block;
font-family: symbolsfont;
font-size: 1rem * $s;
position: absolute;
transform-origin: floor(($d / 2) * $s); // This is slightly better than 'center'
transition: transform 100ms ease-in-out;
}
&--expanded {
&:before {
transform: rotate(90deg);
}
}
}
/******************************************************** FORM ELEMENTS */
input, textarea {
font-family: inherit;
font-weight: inherit;
letter-spacing: inherit;
}
input[type=text],
input[type=search],
input[type=number] {
@include reactive-input();
padding: $inputTextP;
&.numeric {
text-align: right;
Reimplementation of Display Layout in Vue (#2185) * Saving work * Fix conflict * Position the panels by setting the style * Put the div back with height set to 100% in ObjectView. Add markup for drag handles. * Use default position and dimensions if the layout panel is missing those values. Set s-status-editing on the main div to get the drag handles appear for now. * Display Layout and frames major improvements - Moved Toolbar out of Layout.vue and into DisplayLayout.vue; - Styles for object view, Layout, Frame, etc. - Major refactor of markup for frame; - Added abs() mixin; - Styles for is-editing done; - Styles for - TODO: styles for selectable, moveable, etc. * Implement drill in gesture. * Hide the background grid when a frame is drilled in * Edit styling and toolbar WIP - c-search styles moved mostly into mixin; - New .c-labeled-input class; - Browser overrides for number-type input spinners in webkit; * Toolbar WIP - Custom wrapped number input added; - Toolbar buttons WIP; * New toolbar buttons WIP * Define a computed property for the css class object. * Frame edit handles markup and styling * Toolbar, editing and selection style refinements - Moved toolbar back into Layout.vue; - Hard-coded 'is-editing' onto __pane-main for now, removed from DisplayLayout.vue; - Styles for frame in LayoutFrame.vue: -- editing default (dotted border) -- editing .s-selected -- .s-drilled-in (renamed .is-drilled-in) * Refactoring button classes - Lots of stuff broken right now; - TODO: lots of renaming (c-menu-button, c-icon-button, etc.); - Removed import of _controls in search.vue; * Fixes for selection on nested selected elements * Fix conflict * Significant refactoring of button and click-icon classes - Markup and CSS updated; - Toolbar in good shape, prior to merge of vue-layout; * Fix issues with relative font-sizing * Add color palette markup and CSS - Also added Layers menu example; * Font, font-size glyphs and size menu, and more - Added art for font glyph and renamed from .icon-T; - Added new glyph for font-size; - Fixed font-sizing in controls; - Added font-size menu; - Re-org'd toolbar items; * Styling tweak for c-labeled-input - Code cleanup as well; * Fixes for toolbar toggleMenus and labeledNumberInput * Implement resize and move for frames. Added stub for drag 'n drop. * Add custom checkbox control. - Also, code cleanup. * Add toggleButton component - Code and examples * Custom checkbox code cleanups, sanding * - Persist new position/dimensions on the domain object when frames are moved/resized. - Bypass the selection of the layout when dragging a frame is finished to keep the frame selected. - Set the grid size to layoutGrid from domain object or use default if it's not specified. * Fix conflict * Implement resize and move for frames. Added stub for drag 'n drop. * Remove old layout view, was triggering View Switcher and massive confusion when viewing Layouts - TODO: add view provider for new Layout * Enable drag and drop * Changed example toggle-button - Now uses show/hide frame as toggle-button example; * Added pseudocode for handling drag/drop composition change * Add copyright notice * Layout frame and contained components styling - Hyperlinks, Hyperlink buttons, Summary Widgets now use `.u-links` which disables their pointer-events when editing; - Hyperlink buttons, Summary Widgets now expand to fill their containers in a Layout; - Markup and JS for Hyperlinks, Hyperlink buttons, Summary Widgets somewhat modded to use new classing, applied in legacy scss files; * Fix icon sizing error in BrowseBar * Edit and selecting styling for Layouts - WIP! * Edit and selecting styling for Layout frames - Color vars more standardized; - Hover and *-selected styles; * Getting vue-toolbar reverted back to latest - Merging this branch with vue-layout may cause conflicts; * - Implement drag ’n drop. - Set hasFrame to a default value if it’s not set on the configuration. - Emit an event to the parent wrapper component to update the ‘newDomainObject’ prop whenever the domain object is mutated in the display layout child component. * Revert emitting 'update:object' event to the parent. * New branch from topic-core-refactor to use as central point for common CSS work - Manually migrated changes from vue-toolbar, expect conflicts there and in vue-layout; * Manually update constants-snow from vue-toolbar branch * Update markup to use latest button classnames - c-menu-button > c-button--menu; - c-icon-button > c-click-icon; * Various from vue-conductor-style - Mods to input styling; - Input[] styles moved to _controls; - New/revised constants vals; * Resolve bizarre merge conflict when applying stash * Code cleanup * Alias and type-icon fixes - More robust approach to alias indicators; - Added alias indication to tree-item.vue; - TODO: wire up alias indication tree-item.vue; * Accessibility mods, convert elements to <button> - Better reset styles for htmlInputReset mixin to allow use of <button> without browser default styling; - Create button; - BrowseBar action buttons; - c-click-icons; - Removed Preview button from BrowseBar.vue; * Fix styles that were affected during resolving conflicts * Moved draggable into __label element rather than whole <li> * Change the priority to 100 to get the view working properly * Code cleanup * Remove angular layout * Display the object name in the frame header * Tweaks to __header in LayoutFrame - Name now does not overflow frame edge; - Layout strategy now in parity with similar elements in main view; * Remove test() * Add a type for display layout to make it appear in the Create menu. * Change the key type to 'layout' * Clean up code and hide toolbar * Enable toolbar, and revert changes in webpack config * Remove commented code * revert to the original code
2018-10-04 22:59:23 +00:00
}
}
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
margin-right: -5px !important;
margin-top: -1px !important;
}
.c-input {
&--datetime {
// Sized for values such as 2018-09-28 22:32:33.468Z
width: 160px;
}
Reimplementation of Display Layout in Vue (#2185) * Saving work * Fix conflict * Position the panels by setting the style * Put the div back with height set to 100% in ObjectView. Add markup for drag handles. * Use default position and dimensions if the layout panel is missing those values. Set s-status-editing on the main div to get the drag handles appear for now. * Display Layout and frames major improvements - Moved Toolbar out of Layout.vue and into DisplayLayout.vue; - Styles for object view, Layout, Frame, etc. - Major refactor of markup for frame; - Added abs() mixin; - Styles for is-editing done; - Styles for - TODO: styles for selectable, moveable, etc. * Implement drill in gesture. * Hide the background grid when a frame is drilled in * Edit styling and toolbar WIP - c-search styles moved mostly into mixin; - New .c-labeled-input class; - Browser overrides for number-type input spinners in webkit; * Toolbar WIP - Custom wrapped number input added; - Toolbar buttons WIP; * New toolbar buttons WIP * Define a computed property for the css class object. * Frame edit handles markup and styling * Toolbar, editing and selection style refinements - Moved toolbar back into Layout.vue; - Hard-coded 'is-editing' onto __pane-main for now, removed from DisplayLayout.vue; - Styles for frame in LayoutFrame.vue: -- editing default (dotted border) -- editing .s-selected -- .s-drilled-in (renamed .is-drilled-in) * Refactoring button classes - Lots of stuff broken right now; - TODO: lots of renaming (c-menu-button, c-icon-button, etc.); - Removed import of _controls in search.vue; * Fixes for selection on nested selected elements * Fix conflict * Significant refactoring of button and click-icon classes - Markup and CSS updated; - Toolbar in good shape, prior to merge of vue-layout; * Fix issues with relative font-sizing * Add color palette markup and CSS - Also added Layers menu example; * Font, font-size glyphs and size menu, and more - Added art for font glyph and renamed from .icon-T; - Added new glyph for font-size; - Fixed font-sizing in controls; - Added font-size menu; - Re-org'd toolbar items; * Styling tweak for c-labeled-input - Code cleanup as well; * Fixes for toolbar toggleMenus and labeledNumberInput * Implement resize and move for frames. Added stub for drag 'n drop. * Add custom checkbox control. - Also, code cleanup. * Add toggleButton component - Code and examples * Custom checkbox code cleanups, sanding * - Persist new position/dimensions on the domain object when frames are moved/resized. - Bypass the selection of the layout when dragging a frame is finished to keep the frame selected. - Set the grid size to layoutGrid from domain object or use default if it's not specified. * Fix conflict * Implement resize and move for frames. Added stub for drag 'n drop. * Remove old layout view, was triggering View Switcher and massive confusion when viewing Layouts - TODO: add view provider for new Layout * Enable drag and drop * Changed example toggle-button - Now uses show/hide frame as toggle-button example; * Added pseudocode for handling drag/drop composition change * Add copyright notice * Layout frame and contained components styling - Hyperlinks, Hyperlink buttons, Summary Widgets now use `.u-links` which disables their pointer-events when editing; - Hyperlink buttons, Summary Widgets now expand to fill their containers in a Layout; - Markup and JS for Hyperlinks, Hyperlink buttons, Summary Widgets somewhat modded to use new classing, applied in legacy scss files; * Fix icon sizing error in BrowseBar * Edit and selecting styling for Layouts - WIP! * Edit and selecting styling for Layout frames - Color vars more standardized; - Hover and *-selected styles; * Getting vue-toolbar reverted back to latest - Merging this branch with vue-layout may cause conflicts; * - Implement drag ’n drop. - Set hasFrame to a default value if it’s not set on the configuration. - Emit an event to the parent wrapper component to update the ‘newDomainObject’ prop whenever the domain object is mutated in the display layout child component. * Revert emitting 'update:object' event to the parent. * New branch from topic-core-refactor to use as central point for common CSS work - Manually migrated changes from vue-toolbar, expect conflicts there and in vue-layout; * Manually update constants-snow from vue-toolbar branch * Update markup to use latest button classnames - c-menu-button > c-button--menu; - c-icon-button > c-click-icon; * Various from vue-conductor-style - Mods to input styling; - Input[] styles moved to _controls; - New/revised constants vals; * Resolve bizarre merge conflict when applying stash * Code cleanup * Alias and type-icon fixes - More robust approach to alias indicators; - Added alias indication to tree-item.vue; - TODO: wire up alias indication tree-item.vue; * Accessibility mods, convert elements to <button> - Better reset styles for htmlInputReset mixin to allow use of <button> without browser default styling; - Create button; - BrowseBar action buttons; - c-click-icons; - Removed Preview button from BrowseBar.vue; * Fix styles that were affected during resolving conflicts * Moved draggable into __label element rather than whole <li> * Change the priority to 100 to get the view working properly * Code cleanup * Remove angular layout * Display the object name in the frame header * Tweaks to __header in LayoutFrame - Name now does not overflow frame edge; - Layout strategy now in parity with similar elements in main view; * Remove test() * Add a type for display layout to make it appear in the Create menu. * Change the key type to 'layout' * Clean up code and hide toolbar * Enable toolbar, and revert changes in webpack config * Remove commented code * revert to the original code
2018-10-04 22:59:23 +00:00
&--hrs-min-sec {
// Sized for values such as 00:25:00
width: 60px;
Reimplementation of Display Layout in Vue (#2185) * Saving work * Fix conflict * Position the panels by setting the style * Put the div back with height set to 100% in ObjectView. Add markup for drag handles. * Use default position and dimensions if the layout panel is missing those values. Set s-status-editing on the main div to get the drag handles appear for now. * Display Layout and frames major improvements - Moved Toolbar out of Layout.vue and into DisplayLayout.vue; - Styles for object view, Layout, Frame, etc. - Major refactor of markup for frame; - Added abs() mixin; - Styles for is-editing done; - Styles for - TODO: styles for selectable, moveable, etc. * Implement drill in gesture. * Hide the background grid when a frame is drilled in * Edit styling and toolbar WIP - c-search styles moved mostly into mixin; - New .c-labeled-input class; - Browser overrides for number-type input spinners in webkit; * Toolbar WIP - Custom wrapped number input added; - Toolbar buttons WIP; * New toolbar buttons WIP * Define a computed property for the css class object. * Frame edit handles markup and styling * Toolbar, editing and selection style refinements - Moved toolbar back into Layout.vue; - Hard-coded 'is-editing' onto __pane-main for now, removed from DisplayLayout.vue; - Styles for frame in LayoutFrame.vue: -- editing default (dotted border) -- editing .s-selected -- .s-drilled-in (renamed .is-drilled-in) * Refactoring button classes - Lots of stuff broken right now; - TODO: lots of renaming (c-menu-button, c-icon-button, etc.); - Removed import of _controls in search.vue; * Fixes for selection on nested selected elements * Fix conflict * Significant refactoring of button and click-icon classes - Markup and CSS updated; - Toolbar in good shape, prior to merge of vue-layout; * Fix issues with relative font-sizing * Add color palette markup and CSS - Also added Layers menu example; * Font, font-size glyphs and size menu, and more - Added art for font glyph and renamed from .icon-T; - Added new glyph for font-size; - Fixed font-sizing in controls; - Added font-size menu; - Re-org'd toolbar items; * Styling tweak for c-labeled-input - Code cleanup as well; * Fixes for toolbar toggleMenus and labeledNumberInput * Implement resize and move for frames. Added stub for drag 'n drop. * Add custom checkbox control. - Also, code cleanup. * Add toggleButton component - Code and examples * Custom checkbox code cleanups, sanding * - Persist new position/dimensions on the domain object when frames are moved/resized. - Bypass the selection of the layout when dragging a frame is finished to keep the frame selected. - Set the grid size to layoutGrid from domain object or use default if it's not specified. * Fix conflict * Implement resize and move for frames. Added stub for drag 'n drop. * Remove old layout view, was triggering View Switcher and massive confusion when viewing Layouts - TODO: add view provider for new Layout * Enable drag and drop * Changed example toggle-button - Now uses show/hide frame as toggle-button example; * Added pseudocode for handling drag/drop composition change * Add copyright notice * Layout frame and contained components styling - Hyperlinks, Hyperlink buttons, Summary Widgets now use `.u-links` which disables their pointer-events when editing; - Hyperlink buttons, Summary Widgets now expand to fill their containers in a Layout; - Markup and JS for Hyperlinks, Hyperlink buttons, Summary Widgets somewhat modded to use new classing, applied in legacy scss files; * Fix icon sizing error in BrowseBar * Edit and selecting styling for Layouts - WIP! * Edit and selecting styling for Layout frames - Color vars more standardized; - Hover and *-selected styles; * Getting vue-toolbar reverted back to latest - Merging this branch with vue-layout may cause conflicts; * - Implement drag ’n drop. - Set hasFrame to a default value if it’s not set on the configuration. - Emit an event to the parent wrapper component to update the ‘newDomainObject’ prop whenever the domain object is mutated in the display layout child component. * Revert emitting 'update:object' event to the parent. * New branch from topic-core-refactor to use as central point for common CSS work - Manually migrated changes from vue-toolbar, expect conflicts there and in vue-layout; * Manually update constants-snow from vue-toolbar branch * Update markup to use latest button classnames - c-menu-button > c-button--menu; - c-icon-button > c-click-icon; * Various from vue-conductor-style - Mods to input styling; - Input[] styles moved to _controls; - New/revised constants vals; * Resolve bizarre merge conflict when applying stash * Code cleanup * Alias and type-icon fixes - More robust approach to alias indicators; - Added alias indication to tree-item.vue; - TODO: wire up alias indication tree-item.vue; * Accessibility mods, convert elements to <button> - Better reset styles for htmlInputReset mixin to allow use of <button> without browser default styling; - Create button; - BrowseBar action buttons; - c-click-icons; - Removed Preview button from BrowseBar.vue; * Fix styles that were affected during resolving conflicts * Moved draggable into __label element rather than whole <li> * Change the priority to 100 to get the view working properly * Code cleanup * Remove angular layout * Display the object name in the frame header * Tweaks to __header in LayoutFrame - Name now does not overflow frame edge; - Layout strategy now in parity with similar elements in main view; * Remove test() * Add a type for display layout to make it appear in the Create menu. * Change the key type to 'layout' * Clean up code and hide toolbar * Enable toolbar, and revert changes in webpack config * Remove commented code * revert to the original code
2018-10-04 22:59:23 +00:00
}
&-inline,
&--inline {
// A text input or contenteditable element that indicates edit affordance on hover and looks like an input on focus
@include reactive-input($bg: transparent);
box-shadow: none;
display: block !important;
min-width: 0;
padding-left: 0;
padding-right: 0;
overflow: hidden;
transition: all 250ms ease;
white-space: nowrap;
&:not(:focus) {
text-overflow: ellipsis;
}
&:hover,
&:focus {
background: $colorInputBg;
padding-left: $inputTextPLeftRight;
padding-right: $inputTextPLeftRight;
}
}
&--labeled {
// TODO: replace .c-labeled-input with this
// An input used in the Toolbar
// Assumes label is before the input
@include cControl();
input {
margin-left: $interiorMarginSm;
}
Reimplementation of Display Layout in Vue (#2185) * Saving work * Fix conflict * Position the panels by setting the style * Put the div back with height set to 100% in ObjectView. Add markup for drag handles. * Use default position and dimensions if the layout panel is missing those values. Set s-status-editing on the main div to get the drag handles appear for now. * Display Layout and frames major improvements - Moved Toolbar out of Layout.vue and into DisplayLayout.vue; - Styles for object view, Layout, Frame, etc. - Major refactor of markup for frame; - Added abs() mixin; - Styles for is-editing done; - Styles for - TODO: styles for selectable, moveable, etc. * Implement drill in gesture. * Hide the background grid when a frame is drilled in * Edit styling and toolbar WIP - c-search styles moved mostly into mixin; - New .c-labeled-input class; - Browser overrides for number-type input spinners in webkit; * Toolbar WIP - Custom wrapped number input added; - Toolbar buttons WIP; * New toolbar buttons WIP * Define a computed property for the css class object. * Frame edit handles markup and styling * Toolbar, editing and selection style refinements - Moved toolbar back into Layout.vue; - Hard-coded 'is-editing' onto __pane-main for now, removed from DisplayLayout.vue; - Styles for frame in LayoutFrame.vue: -- editing default (dotted border) -- editing .s-selected -- .s-drilled-in (renamed .is-drilled-in) * Refactoring button classes - Lots of stuff broken right now; - TODO: lots of renaming (c-menu-button, c-icon-button, etc.); - Removed import of _controls in search.vue; * Fixes for selection on nested selected elements * Fix conflict * Significant refactoring of button and click-icon classes - Markup and CSS updated; - Toolbar in good shape, prior to merge of vue-layout; * Fix issues with relative font-sizing * Add color palette markup and CSS - Also added Layers menu example; * Font, font-size glyphs and size menu, and more - Added art for font glyph and renamed from .icon-T; - Added new glyph for font-size; - Fixed font-sizing in controls; - Added font-size menu; - Re-org'd toolbar items; * Styling tweak for c-labeled-input - Code cleanup as well; * Fixes for toolbar toggleMenus and labeledNumberInput * Implement resize and move for frames. Added stub for drag 'n drop. * Add custom checkbox control. - Also, code cleanup. * Add toggleButton component - Code and examples * Custom checkbox code cleanups, sanding * - Persist new position/dimensions on the domain object when frames are moved/resized. - Bypass the selection of the layout when dragging a frame is finished to keep the frame selected. - Set the grid size to layoutGrid from domain object or use default if it's not specified. * Fix conflict * Implement resize and move for frames. Added stub for drag 'n drop. * Remove old layout view, was triggering View Switcher and massive confusion when viewing Layouts - TODO: add view provider for new Layout * Enable drag and drop * Changed example toggle-button - Now uses show/hide frame as toggle-button example; * Added pseudocode for handling drag/drop composition change * Add copyright notice * Layout frame and contained components styling - Hyperlinks, Hyperlink buttons, Summary Widgets now use `.u-links` which disables their pointer-events when editing; - Hyperlink buttons, Summary Widgets now expand to fill their containers in a Layout; - Markup and JS for Hyperlinks, Hyperlink buttons, Summary Widgets somewhat modded to use new classing, applied in legacy scss files; * Fix icon sizing error in BrowseBar * Edit and selecting styling for Layouts - WIP! * Edit and selecting styling for Layout frames - Color vars more standardized; - Hover and *-selected styles; * Getting vue-toolbar reverted back to latest - Merging this branch with vue-layout may cause conflicts; * - Implement drag ’n drop. - Set hasFrame to a default value if it’s not set on the configuration. - Emit an event to the parent wrapper component to update the ‘newDomainObject’ prop whenever the domain object is mutated in the display layout child component. * Revert emitting 'update:object' event to the parent. * New branch from topic-core-refactor to use as central point for common CSS work - Manually migrated changes from vue-toolbar, expect conflicts there and in vue-layout; * Manually update constants-snow from vue-toolbar branch * Update markup to use latest button classnames - c-menu-button > c-button--menu; - c-icon-button > c-click-icon; * Various from vue-conductor-style - Mods to input styling; - Input[] styles moved to _controls; - New/revised constants vals; * Resolve bizarre merge conflict when applying stash * Code cleanup * Alias and type-icon fixes - More robust approach to alias indicators; - Added alias indication to tree-item.vue; - TODO: wire up alias indication tree-item.vue; * Accessibility mods, convert elements to <button> - Better reset styles for htmlInputReset mixin to allow use of <button> without browser default styling; - Create button; - BrowseBar action buttons; - c-click-icons; - Removed Preview button from BrowseBar.vue; * Fix styles that were affected during resolving conflicts * Moved draggable into __label element rather than whole <li> * Change the priority to 100 to get the view working properly * Code cleanup * Remove angular layout * Display the object name in the frame header * Tweaks to __header in LayoutFrame - Name now does not overflow frame edge; - Layout strategy now in parity with similar elements in main view; * Remove test() * Add a type for display layout to make it appear in the Create menu. * Change the key type to 'layout' * Clean up code and hide toolbar * Enable toolbar, and revert changes in webpack config * Remove commented code * revert to the original code
2018-10-04 22:59:23 +00:00
}
}
.c-labeled-input {
// An input used in the Toolbar
// Assumes label is before the input
@include cControl();
input {
margin-left: $interiorMarginSm;
}
}
/******************************************************** HYPERLINKS AND HYPERLINK BUTTONS */
.c-hyperlink {
&--link {
color: $colorKey;
}
&--button {
@include cButton();
}
}
/******************************************************** MENUS */
@mixin menuOuter() {
border-radius: $basicCr;
background: $colorMenuBg;
text-shadow: $shdwMenuText;
padding: $interiorMarginSm;
box-shadow: $shdwMenu;
display: block;
position: absolute;
z-index: 70;
}
@mixin menuInner() {
li {
@include cControl();
justify-content: start;
color: $colorMenuFg;
cursor: pointer;
display: flex;
padding: nth($menuItemPad, 1) nth($menuItemPad, 2);
transition: $transIn;
white-space: nowrap;
&:hover {
background: $colorMenuHovBg;
color: $colorMenuHovFg;
&:before {
color: $colorMenuHovIc;
}
}
&:before {
color: $colorMenuIc;
font-size: 1em;
margin-right: $interiorMargin;
}
}
}
.c-menu {
@include menuOuter();
@include menuInner();
}
.c-super-menu {
// Two column layout, menu items on left with detail of hover element on right
@include menuOuter();
display: flex;
padding: $interiorMarginLg;
flex-direction: row;
> [class*="__"] {
$m: $interiorMarginLg;
flex: 1 1 50%;
&:first-child {
margin-right: $m;
}
&:last-child {
border-left: 1px solid $colorInteriorBorder;
padding-left: $m;
}
}
&__menu {
@include menuInner();
overflow: auto;
ul {
margin-right: $interiorMarginSm; // Fend off scrollbar
}
li {
border-radius: $controlCr;
}
}
&__item-description {
display: flex;
flex-direction: column;
justify-content: stretch;
.l-item-description {
&__name,
&__description {
margin-top: $interiorMarginLg;
}
&__icon {
min-height: 20%;
margin: 10% 25%;
}
&__name {
color: $colorMenuFg;
flex: 0 0 auto;
font-size: 1.25em;
}
&__description {
font-size: $fontBaseSize;
}
}
}
}
/******************************************************** PALETTES */
.c-palette {
display: flex;
flex-flow: column nowrap;
&__items {
flex: 1 1 auto;
display: grid;
grid-template-columns: repeat(10, [col] auto );
grid-gap: 1px;
}
&__item {
$d: 16px;
border: 1px solid transparent;
cursor: pointer;
width: 16px; height: 16px;
transition: $transOut;
&:hover {
transition: $transIn;
$o: 0.7;
border-color: rgba($paletteItemBorderOuterColorSelected, $o);
box-shadow: inset rgba($paletteItemBorderInnerColorSelected, $o) 0 0 0 1px;
}
&.is-selected {
border-color: $paletteItemBorderOuterColorSelected !important;
border-width: 2px;
box-shadow: inset rgba($paletteItemBorderInnerColorSelected, 1) 0 0 0 1px;
}
}
&__item-none {
flex: 0 0 auto;
display: flex;
align-items: center;
margin-bottom: $interiorMarginSm;
.c-palette__item {
@include noColor();
border-color: $paletteItemBorderInnerColor;
margin-right: $interiorMarginSm;
}
}
}
/******************************************************** TOOLBAR */
.c-ctrl-wrapper {
@include cCtrlWrapper();
}
.c-toolbar,
.c-toolbar .c-ctrl-wrapper {
display: flex;
align-items: stretch;
}
.c-toolbar {
height: 24px; // Need to standardize the height
.c-click-icon {
@include cControl();
$pLR: $interiorMargin - 1;
$pTB: 2px;
color: $colorBodyFg;
padding: $pTB $pLR;
&--swatched {
padding-bottom: floor($pTB / 2);
width: 2em; // Standardize the width
}
&[class*='--caution'] {
&:before {
color: $colorBtnCautionBg;
}
&:hover {
background: rgba($colorBtnCautionBgHov, 0.2);
:before {
color: $colorBtnCautionBgHov;
}
}
}
}
.c-labeled-input {
font-size: 0.9em;
input[type='number'] {
width: 40px; // Number input sucks and must have size set using this method
}
+ .c-labeled-input {
margin-left: $interiorMargin;
}
}
}
/********* Button Sets */
.c-button-set {
// When one set is adjacent to another, provides a divider between
display: inline-flex;
flex: 0 0 auto;
> * {
// Assume buttons are immediate descendants
flex: 0 0 auto;
+ * {
// margin-left: $interiorMarginSm;
}
}
+ .c-button-set {
$m: $interiorMargin;
$b: 1px;
&:before {
content: '';
display: block;
width: $m + $b; // Allow for border
border-right: $b solid $colorInteriorBorder;
margin-right: $m;
}
}
&[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-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;
+ * {
margin-left: 1px;
}
&:first-child {
border-top-left-radius: $controlCr;
border-bottom-left-radius: $controlCr;
}
&:last-child {
border-top-right-radius: $controlCr;
border-bottom-right-radius: $controlCr;
}
}
}
}
/***************************************************** SLIDERS */
.c-slider {
@include cControl();
> * + * { margin-left: $interiorMargin; }
}