// studio - utilities - INHERITED mixins and extends // NOTE: these are older/poorly architected mixins that we want to move away from using or refactor in the future. // They are still referenced when styling current interface elements and as such need to be preserved for the time being. // talbs: we need to slowly ween ourselves off of these // ==================== // line-height (old way) @function lh($amount: 1) { @return $body-line-height * $amount; } // inherited - vertical and horizontal centering @mixin vertically-and-horizontally-centered ($height, $width) { left: 50%; margin-left: -$width / 2; min-height: $height; min-width: $width; position: absolute; top: 150px; } // ==================== // inherited - dividers .faded-hr-divider { @include background-image(linear-gradient(180deg, rgba(200,200,200, 0) 0%, rgba(200,200,200, 1) 50%, rgba(200,200,200, 0))); height: 1px; width: 100%; } .faded-hr-divider-medium { @include background-image(linear-gradient(180deg, rgba(240,240,240, 0) 0%, rgba(240,240,240, 1) 50%, rgba(240,240,240, 0))); height: 1px; width: 100%; } .faded-hr-divider-light { @include background-image(linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.8) 50%, rgba(255, 255, 255, 0))); height: 1px; width: 100%; } .faded-vertical-divider { @include background-image(linear-gradient(90deg, rgba(200,200,200, 0) 0%, rgba(200,200,200, 1) 50%, rgba(200,200,200, 0))); height: 100%; width: 1px; } .faded-vertical-divider-light { @include background-image(linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0))); height: 100%; width: 1px; } .vertical-divider { @extend .faded-vertical-divider; position: relative; &::after { @extend .faded-vertical-divider-light; content: ""; display: block; position: absolute; left: 1px; } } .horizontal-divider { border: none; @extend .faded-hr-divider; position: relative; &::after { @extend .faded-hr-divider-light; content: ""; display: block; position: absolute; top: 1px; } } .fade-right-hr-divider { @include background-image(linear-gradient(180deg, rgba(200,200,200, 0) 0%, rgba(200,200,200, 1))); border: none; } .fade-left-hr-divider { @include background-image(linear-gradient(180deg, rgba(200,200,200, 1) 0%, rgba(200,200,200, 0))); border: none; } // ==================== // inherited - ui .window { @include clearfix(); box-shadow: 0 1px 1px $shadow-l1; border-radius: 3px; margin-bottom: $baseline; border: 1px solid $gray-l2; background: $white; } // ==================== // mixins - grandfathered @mixin button { @include transition(background-color 0.15s, box-shadow 0.15s); @extend %t-action3; @extend %t-strong; box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3) inset, 0 0 0 $transparent; display: inline-block; padding: ($baseline/5) $baseline ($baseline/4); &.disabled, &.is-disabled { border: 1px solid $gray-l1 !important; border-radius: 3px !important; background: $gray-l1 !important; color: $gray-d1 !important; pointer-events: none; cursor: none; &:hover, &:focus { box-shadow: 0 0 0 0 !important; } } &:hover, &:focus, &:active { box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3) inset, 0 1px 1px rgba(0, 0, 0, 0.15); } } @mixin green-button { @include button; @include linear-gradient(top, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0)); box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3) inset; border: 1px solid $uxpl-green-base; border-radius: 3px; background-color: $uxpl-green-base; color: $white; &:hover, &:focus { background-color: $uxpl-green-hover-active; color: $white; } &.disabled, &.is-disabled { border: 1px solid $green-l3 !important; background: $green-l3 !important; color: $white !important; box-shadow: none; } } @mixin blue-button { @include button; @include linear-gradient(top, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0)); border: 1px solid theme-color("primary"); border-radius: 3px; background-color: theme-color("primary"); color: $white; &:hover, &:focus, &:active { background-color: $uxpl-blue-hover-active; color: $white; } &.disabled, &.is-disabled { box-shadow: none; border: 1px solid $blue-l3 !important; background: $blue-l3 !important; color: $white !important; } } @mixin red-button { @include button; @include linear-gradient(top, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0)); border: 1px solid $red-d1; border-radius: 3px; background-color: $red; color: $white; &:hover, &:focus, &:active { background-color: $red-s1; color: $white; } &.disabled, &.is-disabled { box-shadow: none; border: 1px solid $red-l3 !important; background: $red-l3 !important; color: $white !important; } } @mixin pink-button { @include button; @include linear-gradient(top, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0)); border: 1px solid $pink-d1; border-radius: 3px; background-color: $pink; color: $white; &:hover, &:focus, &:active { background-color: $pink-s1; color: $white; } &.disabled, &.is-disabled { box-shadow: none; border: 1px solid $pink-l3 !important; background: $pink-l3 !important; color: $white !important; } } @mixin orange-button { @include button; @include linear-gradient(top, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0) 60%); box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3) inset; border: 1px solid $orange-d1; border-radius: 3px; background-color: $orange; color: $gray-d2; &:hover, &:focus { background-color: $orange-s2; color: $gray-d2; } &.disabled, &.is-disabled { border: 1px solid $orange-l3 !important; background: $orange-l2 !important; color: $gray-l1 !important; box-shadow: none; } } @mixin white-button { @include button; @include linear-gradient(top, rgba(255, 255, 255, 0.6), rgba(255, 255, 255, 0)); box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3) inset; border: 1px solid $mediumGrey; border-radius: 3px; background-color: #dfe5eb; color: rgb(92, 103, 122); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); &:hover, &:focus { background-color: rgb(222, 236, 247); color: rgb(92, 103, 122); } } @mixin grey-button { @include button; @include linear-gradient(top, rgba(255, 255, 255, 0.3), rgba(255, 255, 255, 0)); box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3) inset; border: 1px solid $gray-d2; border-radius: 3px; background-color: #d1dae3; color: #6d788b; &:hover { background-color: #d9e3ee; color: #6d788b; } } .gray-button { @include button; @include linear-gradient(top, $white-t1, rgba(255, 255, 255, 0)); box-shadow: 0 1px 0 $white-t1 inset; border: 1px solid $gray-d1; border-radius: 3px; background-color: $gray-d2; color: $gray-l3; &:hover, &:focus { background-color: $gray-d3; color: $white; } } // only needed for course updates @mixin edit-box { box-shadow: 0 1px 0 rgba(255, 255, 255, 0.2) inset; padding: 15px 20px; border-radius: 3px; background-color: $lightBluishGrey2; color: #3c3c3c; label { color: $body-color; } input, textarea { border: 1px solid $darkGrey; } textarea { min-height: 80px; } h5 { @extend %t-strong; margin-bottom: 8px; color: $white; } .row { margin-bottom: ($baseline/2); padding: 0; border: none; } .save-button { @include blue-button; margin-top: 0; } .cancel-button { @include white-button; margin-top: 0; } } // ==================== // sunsetted mixins @mixin active { @include linear-gradient(top, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0)); box-shadow: 0 -1px 0 $shadow inset, 0 1px 0 $white inset; background-color: rgba(255, 255, 255, 0.3); text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); }