Files
edx-platform/common/static/sass/_mixins.scss
Awais Jibran 90776770dc Revert ".is-hidden" CSS hack and related hint fix (#25938)
Reverts two PRs:
* "Fix hiding of completion/bookmark indicators in legacy courseware (#25919)"
* "Fix hint show" (#25930)

TNL-7845
2020-12-23 11:35:25 -05:00

479 lines
9.0 KiB
SCSS

// common - utilities - mixins and extends
// ====================
// Table of Contents
// * +Font Sizing - Mixin
// * +Line Height - Mixin
// * +Sizing - Mixin
// * +Square - Mixin
// * +Placeholder Styling - Mixin
// * +Flex Support - Mixin
// * +Flex Polyfill - Extends
// * +UI - Wrapper - Extends
// * +UI - Window - Extend
// * +UI - Visual Link - Extend
// * +UI - Functional Disable - Extend
// * +UI - Visual Link - Extend
// * +UI - Depth Levels - Extends
// * +UI - Clear Children - Extends
// * +UI - Buttons - Extends
// * +UI - Well Archetype - Extends
// * +Content - No List - Extends
// * +Content - Hidden Image Text - Extend
// * +Content - Screenreader Text - Extend
// * +Content - Text Wrap - Extend
// * +Content - Text Truncate - Extend
// * +Icon - Font-Awesome - Extend
// * +Icon - SSO icon images
// +Font Sizing - Mixin
// ====================
@mixin font-size($sizeValue: 16) {
font-size: $sizeValue + px;
font-size: ($sizeValue/10) + rem;
}
// +Line Height - Mixin
// ====================
@mixin line-height($fontSize: auto) {
line-height: ($fontSize*1.48) + px;
line-height: (($fontSize/10)*1.48) + rem;
}
// +Sizing - Mixin
// ====================
@mixin size($width: $baseline, $height: $baseline) {
height: $height;
width: $width;
}
// +Square - Mixin
// ====================
@mixin square($size: $baseline) {
@include size($size);
}
// +Placeholder Styling - Mixin
// ====================
@mixin placeholder($color) {
:-moz-placeholder {
color: $color;
}
::-webkit-input-placeholder {
color: $color;
}
:-ms-input-placeholder {
color: $color;
}
}
// +Flex Support - Mixin
// ====================
@mixin ui-flexbox() {
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
}
// +Flex PolyFill - Extends
// ====================
// justify-content right for display:flex alignment in older browsers
%ui-justify-right-flex {
-webkit-box-pack: flex-end;
-moz-box-pack: flex-end;
-ms-flex-pack: flex-end;
-webkit-justify-content: flex-end;
justify-content: flex-end;
}
// justify-content left for display:flex alignment in older browsers
%ui-justify-left-flex {
-webkit-box-pack: flex-start;
-moz-box-pack: flex-start;
-ms-flex-pack: flex-start;
-webkit-justify-content: flex-start;
justify-content: flex-start;
}
// align items center for display:flex alignment in older browsers
%ui-align-center-flex {
-webkit-flex-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
align-items: center;
}
// +UI - Wrapper - Extends
// ====================
// used for page/view-level wrappers (for centering/grids)
%ui-wrapper {
@include clearfix();
box-sizing: border-box;
width: 100%;
}
// layout placeholders
.ui-col-wide {
width: flex-grid(9, 12);
@include margin-right(flex-gutter());
@include float(left);
}
.ui-col-narrow {
width: flex-grid(3, 12);
@include float(left);
}
// +UI - Window - Extends
// ====================
%ui-window {
@include clearfix();
border-radius: ($baseline/10);
box-shadow: 0 1px 1px $shadow-l2;
margin-bottom: $baseline;
border: 1px solid $gray-l2;
background: $white;
// STATE: hover/active
&:hover,
&:active {
box-shadow: 0 1px 1px $shadow;
}
}
// +UI - Visual Link - Extends
// ====================
%ui-fake-link {
cursor: pointer;
}
// +UI - Functional Disable - Extends
// ====================
%ui-disabled {
pointer-events: none;
outline: none;
cursor: default;
}
// +UI - Depth Levels - Extends
// ====================
%ui-depth0 { z-index: 0; }
%ui-depth1 { z-index: 10; }
%ui-depth2 { z-index: 100; }
%ui-depth3 { z-index: 1000; }
%ui-depth4 { z-index: 10000; }
%ui-depth5 { z-index: 100000; }
// +UI - Clear Children - Extends
// ====================
// extends - UI - utility - first child clearing
%wipe-first-child {
&:first-child {
margin-top: 0;
border-top: none;
padding-top: 0;
}
}
// extends - UI - utility - last child clearing
%wipe-last-child {
&:last-child {
margin-bottom: 0;
border-bottom: none;
padding-bottom: 0;
}
}
// +UI - Buttons - Extends
// ====================
%ui-btn {
box-sizing: border-box;
@include transition(color $tmg-f2 ease-in-out 0s, border-color $tmg-f2 ease-in-out 0s, background $tmg-f2 ease-in-out 0s, box-shadow $tmg-f2 ease-in-out 0s);
display: inline-block;
cursor: pointer;
&.disabled,
&[disabled],
&.is-disabled {
cursor: default;
pointer-events: none;
border: 1px solid $gray-l3;
background-color: $gray-l3;
color: $gray-l5;
}
.icon-inline {
display: inline-block;
vertical-align: middle;
margin-right: ($baseline/4);
}
}
// pill button
%ui-btn-pill {
border-radius: ($baseline/5);
}
%ui-btn-rounded {
border-radius: ($baseline/2);
}
// primary button
%ui-btn-primary {
@extend %ui-btn;
@extend %ui-btn-pill;
@extend %t-strong;
padding: ($baseline/2) $baseline;
border-width: 1px;
border-style: solid;
box-shadow: none;
line-height: 1.5em;
text-align: center;
&:hover,
&:active,
&:focus {
box-shadow: 0 2px 1px $shadow;
}
&.current,
&.active {
box-shadow: inset 1px 1px 2px $shadow-d1;
&:hover,
&:active,
&:focus {
box-shadow: inset 1px 1px 1px $shadow-d1;
}
}
}
// secondary button
%ui-btn-secondary {
@extend %ui-btn;
@extend %ui-btn-pill;
border-width: 1px;
border-style: solid;
padding: ($baseline/2) $baseline;
background: transparent;
line-height: 1.5em;
text-align: center;
}
%ui-btn-flat-outline {
@include transition(all 0.15s);
@extend %t-strong;
@extend %t-action4;
text-align: center;
border-radius: ($baseline/4);
border: 1px solid theme-color("primary");
padding: 1px ($baseline/2) 2px ($baseline/2);
background-color: theme-color("inverse");
color: theme-color("primary");
&:hover,
&:focus {
border: 1px solid $uxpl-blue-hover-active;
background-color: $uxpl-blue-hover-active;
color: theme-color("inverse");
}
&.is-disabled,
&[disabled="disabled"] {
border: 1px solid $gray-l2;
background-color: $gray-l4;
color: $gray-l2;
pointer-events: none;
}
}
// button with no button shell until hover for understated actions
%ui-btn-non {
@include transition(all 0.15s);
@extend %ui-btn-pill;
@include transition(all $tmg-f2 linear 0s);
display: inline-block;
vertical-align: middle;
border: none;
padding: 3px ($baseline/2);
background: none;
color: $gray-l1;
&:hover,
&:focus {
background-color: $gray-l1;
color: $white;
}
}
// button with no button shell until hover for understated actions
%ui-btn-non-blue {
@extend %ui-btn-non;
&:hover,
&:focus {
background-color: theme-color("primary");
color: theme-color("inverse");
}
}
// +UI - Well Archetype - Extends
// ====================
%ui-well {
box-shadow: inset 0 1px 2px 1px $shadow;
padding: ($baseline*0.75) $baseline;
}
%no-content {
@extend %ui-well;
padding: ($baseline*2);
background-color: $gray-l4;
text-align: center;
color: $gray;
.button,
.action {
@extend %btn-primary-green;
@extend %t-action3;
margin-left: $baseline;
.icon {
margin-right: ($baseline/2);
}
}
}
.ui-loading {
@include animation(fadeIn $tmg-f2 linear 1);
@extend %ui-well;
@extend %t-copy-base;
opacity: 0.6;
background-color: $white;
padding: ($baseline*1.5) $baseline;
text-align: center;
.spin {
@extend %anim-rotateCW;
display: inline-block;
}
.copy {
padding-left: ($baseline/4);
}
}
.is-hidden {
display: none;
}
// +Content - No List - Extends
// ====================
// removes list styling/spacing when using uls, ols for navigation and less content-centric cases
%cont-no-list {
list-style: none;
margin: 0;
padding: 0;
text-indent: 0;
li {
margin: 0;
padding: 0;
}
}
// +Content - Hidden Image Text - Extend
// ====================
// image-replacement hidden text
%cont-text-hide {
text-indent: 100%;
white-space: nowrap;
overflow: hidden;
}
// +Content - Screenreader Text - Extend
// ====================
%cont-text-sr {
// clip has been deprecated but is still supported
clip: rect(1px 1px 1px 1px);
clip: rect(1px, 1px, 1px, 1px);
position: absolute;
margin: -1px;
height: 1px;
width: 1px;
border: 0;
padding: 0;
overflow: hidden;
// ensure there are spaces in sr text
word-wrap: normal;
}
// +Content - Text Wrap - Extend
// ====================
%cont-text-wrap {
word-wrap: break-word;
}
// +Content - Text Truncate - Extend
// ====================
%cont-truncated {
box-sizing: border-box;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
// * +Icon - Font-Awesome - Extend
// ====================
%use-font-awesome {
display: inline-block;
font-family: FontAwesome;
-webkit-font-smoothing: antialiased;
speak: none;
}
%btn-no-style {
background: transparent;
border: 0;
padding: 0;
margin: 0;
}
// * +Icon - SSO icon images
// ====================
%sso-icon {
.icon-image {
width: auto;
height: auto;
max-height: 2em;
max-width: 2em;
margin-top: -2px;
}
}