467 lines
8.6 KiB
SCSS
467 lines
8.6 KiB
SCSS
// studio - elements - UI controls
|
|
// ====================
|
|
|
|
// Table of Contents
|
|
// * +General Action - Extend
|
|
// * +General Type and Size - Extend
|
|
// * +Primary Button - Extends
|
|
// * +Secondary Button - Extends
|
|
// * +Button
|
|
// * +UI Dropdown Button - Extend
|
|
// * +UI Nav Dropdown Button - Extend
|
|
// * +UI Actions List - Extend
|
|
// * +UI Expand/Collapse - Extend
|
|
// * +Drag and Drop
|
|
|
|
|
|
|
|
// +General Action - Extend
|
|
// ====================
|
|
%action {
|
|
@extend %ui-fake-link;
|
|
|
|
&.is-disabled {
|
|
@extend %ui-disabled;
|
|
-webkit-filter: grayscale(65%);
|
|
opacity: 0.65;
|
|
}
|
|
}
|
|
|
|
// +General Type and Size - Extend
|
|
// ====================
|
|
%sizing {
|
|
@extend %t-action4;
|
|
padding: ($baseline/4) ($baseline/2) ($baseline/3) ($baseline/2);
|
|
}
|
|
|
|
|
|
// +Primary Button - Extends
|
|
// ====================
|
|
// gray primary button
|
|
%btn-primary-gray {
|
|
@extend %ui-btn-primary;
|
|
background: $gray-l1;
|
|
border-color: $gray-l2;
|
|
color: $white;
|
|
|
|
&:hover, &:active {
|
|
border-color: $gray-l1;
|
|
background: $gray;
|
|
}
|
|
|
|
&.current, &.active {
|
|
background: $gray-d1;
|
|
color: $gray-l1;
|
|
|
|
&:hover, &:active {
|
|
background: $gray-d1;
|
|
}
|
|
}
|
|
}
|
|
|
|
// blue primary button
|
|
%btn-primary-blue {
|
|
@extend %ui-btn-primary;
|
|
background: $blue;
|
|
border-color: $blue-s1;
|
|
color: $white;
|
|
|
|
&:hover, &:active {
|
|
background: $blue-l1;
|
|
border-color: $blue-l1;
|
|
}
|
|
|
|
&.current, &.active {
|
|
background: $blue-d1;
|
|
color: $blue-l4;
|
|
border-color: $blue-d2;
|
|
|
|
&:hover, &:active {
|
|
background: $blue-d1;
|
|
}
|
|
}
|
|
}
|
|
|
|
// green primary button
|
|
%btn-primary-green {
|
|
@extend %ui-btn-primary;
|
|
background: $green;
|
|
border-color: $green;
|
|
color: $white;
|
|
|
|
&:hover, &:active {
|
|
background: $green-s1;
|
|
border-color: $green-s1;
|
|
}
|
|
|
|
&.current, &.active {
|
|
background: $green-d1;
|
|
color: $green-l4;
|
|
border-color: $green-d2;
|
|
|
|
&:hover, &:active {
|
|
background: $green-d1;
|
|
}
|
|
}
|
|
}
|
|
|
|
// +Secondary Button - Extends
|
|
// ====================
|
|
// gray secondary button
|
|
%btn-secondary-gray {
|
|
@extend %ui-btn-secondary;
|
|
border-color: $gray-l3;
|
|
color: $gray-l1;
|
|
|
|
&:hover, &:active {
|
|
background: $gray-l3;
|
|
color: $gray-d2;
|
|
}
|
|
|
|
&.current, &.active {
|
|
background: $gray-d2;
|
|
color: $gray-l5;
|
|
|
|
&:hover, &:active {
|
|
background: $gray-d2;
|
|
}
|
|
}
|
|
}
|
|
|
|
// blue secondary button
|
|
%btn-secondary-blue {
|
|
@extend %ui-btn-secondary;
|
|
border-color: $blue-l3;
|
|
color: $blue;
|
|
|
|
&:hover, &:active {
|
|
background: $blue-l4;
|
|
color: $blue-s2;
|
|
}
|
|
|
|
&.current, &.active {
|
|
border-color: $blue-l3;
|
|
background: $blue-l3;
|
|
color: $blue-d1;
|
|
|
|
&:hover, &:active {
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
// white secondary button
|
|
%btn-secondary-white {
|
|
@extend %ui-btn-secondary;
|
|
border-color: $white-t2;
|
|
color: $white-t3;
|
|
|
|
&:hover, &:active {
|
|
border-color: $white;
|
|
color: $white;
|
|
}
|
|
|
|
&.current, &.active {
|
|
background: $gray-d2;
|
|
color: $gray-l5;
|
|
|
|
&:hover, &:active {
|
|
background: $gray-d2;
|
|
}
|
|
}
|
|
}
|
|
|
|
// green secondary button
|
|
%btn-secondary-green {
|
|
@extend %ui-btn-secondary;
|
|
border-color: $green-l4;
|
|
color: $green-l2;
|
|
|
|
&:hover, &:active {
|
|
background: $green-l4;
|
|
color: $green-s1;
|
|
}
|
|
|
|
&.current, &.active {
|
|
background: $green-s1;
|
|
color: $green-l4;
|
|
|
|
&:hover, &:active {
|
|
background: $green-s1;
|
|
}
|
|
}
|
|
}
|
|
|
|
// +Button Element
|
|
// ====================
|
|
.button {
|
|
|
|
.icon {
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
margin-right: ($baseline/4);
|
|
}
|
|
}
|
|
|
|
// +UI Dropdown Button - Extend
|
|
// ====================
|
|
%ui-btn-dd {
|
|
@extend %ui-btn;
|
|
@extend %ui-btn-pill;
|
|
padding:($baseline/4) ($baseline/2);
|
|
border-width: 1px;
|
|
border-style: solid;
|
|
border-color: transparent;
|
|
text-align: center;
|
|
|
|
&:hover, &:active {
|
|
@extend %ui-fake-link;
|
|
border-color: $gray-l3;
|
|
}
|
|
|
|
&.current, &.active, &.is-selected {
|
|
box-shadow: inset 0 1px 2px 1px $shadow-l1;
|
|
border-color: $gray-l3;
|
|
}
|
|
}
|
|
|
|
// +UI Nav Dropdown Button - Extend
|
|
// ====================
|
|
%ui-btn-dd-nav-primary {
|
|
@extend %ui-btn-dd;
|
|
background: $white;
|
|
border-color: $white;
|
|
color: $gray-d1;
|
|
|
|
&:hover, &:active {
|
|
background: $white;
|
|
color: $blue-s1;
|
|
}
|
|
|
|
&.current, &.active {
|
|
background: $white;
|
|
color: $gray-d4;
|
|
|
|
&:hover, &:active {
|
|
color: $blue-s1;
|
|
}
|
|
}
|
|
}
|
|
|
|
// +UI Actions List - Extend
|
|
// ====================
|
|
%actions-list {
|
|
display: inline-block;
|
|
margin-bottom: 0;
|
|
|
|
.action-item {
|
|
position: relative;
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
margin: ($baseline/10) 0 ($baseline/10) ($baseline/10);
|
|
|
|
.action-button {
|
|
@include transition(all $tmg-f3 linear 0s);
|
|
display: block;
|
|
border-radius: 3px;
|
|
padding: 3px ($baseline/2);
|
|
color: $gray-l1;
|
|
|
|
&:hover {
|
|
background-color: $blue;
|
|
color: $gray-l6;
|
|
}
|
|
|
|
.action-button-text {
|
|
padding-left: 1px;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
&.delete-button:hover {
|
|
background-color: $gray-l1;
|
|
}
|
|
|
|
.icon {
|
|
font-style: normal;
|
|
}
|
|
}
|
|
|
|
.drag-handle {
|
|
display: block;
|
|
float: none;
|
|
height: ($baseline*1.2);
|
|
width: ($baseline);
|
|
margin: 0;
|
|
|
|
// CASE: right to left layout
|
|
@include rtl {
|
|
background: transparent url("#{$static-path}/images/drag-handles.png") no-repeat left center;
|
|
}
|
|
|
|
// CASE: left to right layout
|
|
@include ltr {
|
|
background: transparent url("#{$static-path}/images/drag-handles.png") no-repeat right center;
|
|
}
|
|
}
|
|
|
|
&.toggle-action {
|
|
// TODO: generalize and move checkbox styling in from static-pages and assets sass
|
|
}
|
|
}
|
|
}
|
|
|
|
// +UI Expand/Collapse - Extend
|
|
// ====================
|
|
// TODO: this should be transitioned away from in favor of %ui-expand-collapse
|
|
%expand-collapse {
|
|
@include transition(all $tmg-f2 linear 0s);
|
|
display: inline-block;
|
|
color: $gray-l2;
|
|
vertical-align: top;
|
|
|
|
&:hover {
|
|
color: $blue;
|
|
}
|
|
|
|
.ui-toggle-expansion {
|
|
@include transition(all $tmg-f2 ease-in-out 0s);
|
|
@extend %t-action1;
|
|
display: inline-block;
|
|
margin-right: ($baseline/4);
|
|
color: $gray-l3;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
&.expand .ui-toggle-expansion {
|
|
@include transform(rotate(-90deg));
|
|
@include transform-origin(50% 50%);
|
|
}
|
|
}
|
|
|
|
// +UI Expand/Collapse - Extend
|
|
// ====================
|
|
// will replace %expand-collapse
|
|
%ui-expand-collapse {
|
|
@include transition(all $tmg-f2 linear 0s);
|
|
|
|
|
|
// CASE: default (is expanded)
|
|
.ui-toggle-expansion {
|
|
@include transition(all $tmg-f2 ease-in-out 0s);
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
|
|
.icon {
|
|
@include transition(all $tmg-f2 ease-in-out 0s);
|
|
}
|
|
|
|
// STATE: hover/active
|
|
&:hover, &:active {
|
|
@extend %ui-fake-link;
|
|
color: $ui-link-color-focus;
|
|
}
|
|
}
|
|
|
|
// CASE: is collapsed
|
|
&.is-collapsed {
|
|
|
|
.ui-toggle-expansion {
|
|
|
|
.icon {
|
|
@include transform(rotate(-90deg));
|
|
@include transform-origin(50% 50%);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// +Drag and Drop Styling
|
|
// ====================
|
|
|
|
// UI: drag handle
|
|
.drag-handle {
|
|
|
|
&:hover, &:focus {
|
|
cursor: move;
|
|
}
|
|
}
|
|
|
|
// UI: is draggable
|
|
.is-draggable {
|
|
@include transition(border-color $tmg-f2 ease-in-out 0, box-shadow $tmg-f2 ease-in-out 0, margin $tmg-f2 ease-in-out 0);
|
|
position: relative;
|
|
|
|
.draggable-drop-indicator {
|
|
@extend %ui-depth3;
|
|
@include transition(opacity $tmg-f2 linear 0s);
|
|
@include size(100%, auto);
|
|
position: absolute;
|
|
border-top: 1px solid $blue-l1;
|
|
opacity: 0.0;
|
|
|
|
.fa-caret-right {
|
|
@extend %t-icon5;
|
|
position: absolute;
|
|
top: -12px;
|
|
left: -($baseline/4);
|
|
color: $blue-s1;
|
|
}
|
|
}
|
|
|
|
.draggable-drop-indicator-before {
|
|
top: -($baseline/2);
|
|
}
|
|
|
|
.draggable-drop-indicator-after {
|
|
bottom: -($baseline/2);
|
|
}
|
|
}
|
|
|
|
// UI: is dragging - drag state
|
|
.is-dragging {
|
|
@extend %ui-depth4;
|
|
left: -($baseline/4);
|
|
box-shadow: 0 1px 2px 0 $shadow-d1;
|
|
cursor: move;
|
|
opacity: 0.65;
|
|
border: 1px solid $gray-d3;
|
|
|
|
// UI: condition - valid drop
|
|
&.valid-drop {
|
|
border-color: $ui-action-primary-color-focus;
|
|
box-shadow: 0 1px 2px 0 rgba($ui-action-primary-color-focus, 0.50);
|
|
}
|
|
}
|
|
|
|
// UI: drag state - was dragging
|
|
.was-dragging {
|
|
@include transition(transform $tmg-f2 ease-in-out 0);
|
|
}
|
|
|
|
// UI: drag target
|
|
.drop-target {
|
|
|
|
&.drop-target-before {
|
|
margin-top: ($baseline*1.5);
|
|
|
|
> .draggable-drop-indicator-before {
|
|
opacity: 1.0;
|
|
}
|
|
}
|
|
|
|
&.drop-target-after {
|
|
margin-bottom: ($baseline*1.5);
|
|
|
|
> .draggable-drop-indicator-after {
|
|
opacity: 1.0;
|
|
}
|
|
}
|
|
}
|
|
|
|
// UI: drop state - was dropped
|
|
.was-dropped {
|
|
@include animation(was-dropped $tmg-avg ease-in-out 1);
|
|
border-color: $ui-action-primary-color-focus;
|
|
box-shadow: 0 1px 2px 0 rgba($ui-action-primary-color-focus, 0.50);
|
|
}
|