Last active
March 2, 2019 17:16
-
-
Save overtrue/56561fd4b124b9ffe5048ef06752d4bf to your computer and use it in GitHub Desktop.
scss utils.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Mobile project scss utils. | |
| // https://gist.github.com/overtrue/56561fd4b124b9ffe5048ef06752d4bf | |
| // Space | |
| // | |
| $spacer: 12px !default; | |
| @each $prop, $abbrev in (margin: m, padding: p) { | |
| @for $size from 0 to 10 { | |
| $value: #{$size * $spacer}; | |
| .#{$abbrev}-#{$size} { #{$prop}: $value $value !important; } | |
| .#{$abbrev}t-#{$size} { #{$prop}-top: $value !important; } | |
| .#{$abbrev}r-#{$size} { #{$prop}-right: $value !important; } | |
| .#{$abbrev}b-#{$size} { #{$prop}-bottom: $value !important; } | |
| .#{$abbrev}l-#{$size} { #{$prop}-left: $value !important; } | |
| .#{$abbrev}x-#{$size} { | |
| #{$prop}-right: $value !important; | |
| #{$prop}-left: $value !important; | |
| } | |
| .#{$abbrev}y-#{$size} { | |
| #{$prop}-top: $value !important; | |
| #{$prop}-bottom: $value !important; | |
| } | |
| } | |
| } | |
| // Float | |
| // | |
| .float-left,.pull-left { float:left; } | |
| .float-right,.pull-right { float:right; } | |
| // Position | |
| // | |
| .position-relative { position: relative; } | |
| .position-static { position: static; } | |
| .position-absolute { position: absolute; } | |
| .position-sticky { position: sticky; } | |
| // Alignment | |
| // | |
| .align-baseline { vertical-align: baseline !important; } // Browser default | |
| .align-top { vertical-align: top !important; } | |
| .align-middle { vertical-align: middle !important; } | |
| .align-bottom { vertical-align: bottom !important; } | |
| .align-text-bottom { vertical-align: text-bottom !important; } | |
| .align-text-top { vertical-align: text-top !important; } | |
| // Text | |
| // | |
| .text-center { text-align: center !important; } | |
| .text-right { text-align: right !important; } | |
| .text-thin { font-weight: 300; } | |
| .text-truncate { display: block; overflow:hidden; text-overflow: ellipsis; white-space: nowrap; } | |
| .text-mini { font-size: 0.8em; } | |
| // Display size | |
| $display1-size: 6rem !default; | |
| $display2-size: 5.5rem !default; | |
| $display3-size: 4.5rem !default; | |
| $display4-size: 3.5rem !default; | |
| $display1-weight: 300 !default; | |
| $display2-weight: 300 !default; | |
| $display3-weight: 300 !default; | |
| $display4-weight: 300 !default; | |
| $display-line-height: 1.2 !default; | |
| // Type display classes | |
| .display-1 {font-size: $display1-size;font-weight: $display1-weight;line-height: $display-line-height; } | |
| .display-2 {font-size: $display2-size;font-weight: $display2-weight;line-height: $display-line-height; } | |
| .display-3 {font-size: $display3-size;font-weight: $display3-weight;line-height: $display-line-height; } | |
| .display-4 {font-size: $display4-size;font-weight: $display4-weight;line-height: $display-line-height; } | |
| // Image | |
| // | |
| .img-fluid { max-width: 100%; } | |
| // | |
| // Border | |
| // | |
| $border-color: hsl(210 23%, 95%) !default; | |
| .border { border: 1px solid $border-color; } | |
| .border-0 { border: 0 !important; } | |
| .border-top-0 { border-top: 0 !important; } | |
| .border-right-0 { border-right: 0 !important; } | |
| .border-bottom-0 { border-bottom: 0 !important; } | |
| .border-left-0 { border-left: 0 !important; } | |
| .border-left { border-left: 1px solid $border-color; } | |
| .border-right { border-right: 1px solid $border-color; } | |
| .border-top { border-top: 1px solid $border-color; } | |
| .border-bottom { border-bottom: 1px solid $border-color; } | |
| // | |
| // Border-radius | |
| // | |
| $border-radius: 3px !default; | |
| .rounded { | |
| border-radius: $border-radius; | |
| } | |
| .rounded-top { | |
| border-top-radius: $border-radius; | |
| } | |
| .rounded-right { | |
| border-right-radius: $border-radius; | |
| } | |
| .rounded-bottom { | |
| border-bottom-radius: $border-radius; | |
| } | |
| .rounded-left { | |
| border-left-radius: $border-radius; | |
| } | |
| .rounded-circle { | |
| border-radius: 50%; | |
| } | |
| .rounded-0 { | |
| border-radius: 0; | |
| } | |
| // Display | |
| // | |
| @each $display in (none, inline, inline-block, block, table, table-cell, flex, inline-flex) { | |
| .d-#{$display} { display: $display !important; } | |
| } | |
| // Margin | |
| // | |
| .ml-auto { | |
| margin-left: auto!important; | |
| } | |
| .mr-auto { | |
| margin-right: auto!important; | |
| } | |
| // Positioning | |
| // | |
| $zindex-fixed: 99 !default; | |
| .fixed-top { | |
| position: fixed; | |
| top: 0; | |
| right: 0; | |
| left: 0; | |
| z-index: $zindex-fixed; | |
| } | |
| .fixed-bottom { | |
| position: fixed; | |
| right: 0; | |
| bottom: 0; | |
| left: 0; | |
| z-index: $zindex-fixed; | |
| } | |
| $zindex-sticky: 98 !default; | |
| .sticky-top { | |
| position: sticky; | |
| top: 0; | |
| z-index: $zindex-sticky; | |
| } | |
| // Flex | |
| // | |
| .order-first { order: -1; } | |
| .order-last { order: 1; } | |
| .order-0 { order: 0; } | |
| .flex-row { flex-direction: row !important; } | |
| .flex-column { flex-direction: column !important; } | |
| .flex-row-reverse { flex-direction: row-reverse !important; } | |
| .flex-column-reverse { flex-direction: column-reverse !important; } | |
| .flex-wrap { flex-wrap: wrap !important; } | |
| .flex-nowrap { flex-wrap: nowrap !important; } | |
| .flex-wrap-reverse { flex-wrap: wrap-reverse !important; } | |
| .flex-wrap { flex-wrap: wrap !important; } | |
| .flex-nowrap { flex-wrap: nowrap !important; } | |
| .flex-wrap-reverse { flex-wrap: wrap-reverse !important; } | |
| .flex-fill { flex: 1 1 auto !important; } | |
| .flex-grow-0 { flex-grow: 0 !important; } | |
| .flex-grow-1 { flex-grow: 1 !important; } | |
| .flex-shrink-0 { flex-shrink: 0 !important; } | |
| .flex-shrink-1 { flex-shrink: 1 !important; } | |
| .justify-content-start { justify-content: flex-start !important; } | |
| .justify-content-end { justify-content: flex-end !important; } | |
| .justify-content-center { justify-content: center !important; } | |
| .justify-content-between { justify-content: space-between !important; } | |
| .justify-content-around { justify-content: space-around !important; } | |
| .align-items-start { align-items: flex-start !important; } | |
| .align-items-end { align-items: flex-end !important; } | |
| .align-items-center { align-items: center !important; } | |
| .align-items-baseline { align-items: baseline !important; } | |
| .align-items-stretch { align-items: stretch !important; } | |
| .align-content-start { align-content: flex-start !important; } | |
| .align-content-end { align-content: flex-end !important; } | |
| .align-content-center { align-content: center !important; } | |
| .align-content-between { align-content: space-between !important; } | |
| .align-content-around { align-content: space-around !important; } | |
| .align-content-stretch { align-content: stretch !important; } | |
| .align-self-auto { align-self: auto !important; } | |
| .align-self-start { align-self: flex-start !important; } | |
| .align-self-end { align-self: flex-end !important; } | |
| .align-self-center { align-self: center !important; } | |
| .align-self-baseline { align-self: baseline !important; } | |
| .align-self-stretch { align-self: stretch !important; } | |
| // Width & height | |
| $sizes: () !default; | |
| $sizes: map-merge( | |
| ( | |
| 25: 25%, | |
| 30: 30%, | |
| 35: 35%, | |
| 40: 40%, | |
| 45: 45%, | |
| 50: 50%, | |
| 60: 60%, | |
| 65: 65%, | |
| 70: 70%, | |
| 75: 75%, | |
| 80: 80%, | |
| 85: 85%, | |
| 100: 100%, | |
| auto: auto | |
| ), | |
| $sizes | |
| ); | |
| @each $prop, $abbrev in (width: w, height: h) { | |
| @each $size, $length in $sizes { | |
| .#{$abbrev}-#{$size} { #{$prop}: $length !important; } | |
| } | |
| } | |
| .mw-100 { max-width: 100% !important; } | |
| .mh-100 { max-height: 100% !important; } | |
| // Viewport additional helpers | |
| .min-vw-100 { min-width: 100vw !important; } | |
| .min-vh-100 { min-height: 100vh !important; } | |
| .vw-100 { width: 100vw !important; } | |
| .vh-100 { height: 100vh !important; } | |
| // Colors | |
| // | |
| $gray-100: #f8f9fa !default; | |
| $gray-200: #e9ecef !default; | |
| $gray-300: #dee2e6 !default; | |
| $gray-400: #ced4da !default; | |
| $gray-500: #adb5bd !default; | |
| $gray-600: #6c757d !default; | |
| $gray-700: #495057 !default; | |
| $gray-800: #343a40 !default; | |
| $gray-900: #212529 !default; | |
| $black: #000 !default; | |
| $white: #fff !default; | |
| $light: $gray-400 !default; | |
| $lightest: $gray-200 !default; | |
| $muted: $gray-600 !default; | |
| $dark: $gray-900 !default; | |
| $gray: $gray-600 !default; | |
| $gray-dark: $gray-800 !default; | |
| $blue: #007bff !default; | |
| $indigo: #6610f2 !default; | |
| $purple: #6f42c1 !default; | |
| $pink: #e83e8c !default; | |
| $red: #dc3545 !default; | |
| $orange: #fd7e14 !default; | |
| $yellow: #ffc107 !default; | |
| $green: #28a745 !default; | |
| $teal: #20c997 !default; | |
| $cyan: #17a2b8 !default; | |
| $transparent: transparent !important; | |
| $grays: () !default; | |
| // stylelint-disable-next-line scss/dollar-variable-default | |
| $grays: map-merge( | |
| ( | |
| "100": $gray-100, | |
| "200": $gray-200, | |
| "300": $gray-300, | |
| "400": $gray-400, | |
| "500": $gray-500, | |
| "600": $gray-600, | |
| "700": $gray-700, | |
| "800": $gray-800, | |
| "900": $gray-900 | |
| ), | |
| $grays | |
| ); | |
| $colors: () !default; | |
| // stylelint-disable-next-line scss/dollar-variable-default | |
| $colors: map-merge( | |
| ( | |
| "black": $black, | |
| "white": $white, | |
| "light": $light, | |
| "lightest": $lightest, | |
| "muted": $muted, | |
| "dark": $dark, | |
| "gray": $gray, | |
| "gray-dark": $gray-dark, | |
| "blue": $blue, | |
| "indigo": $indigo, | |
| "purple": $purple, | |
| "pink": $pink, | |
| "red": $red, | |
| "orange": $orange, | |
| "yellow": $yellow, | |
| "green": $green, | |
| "teal": $teal, | |
| "cyan": $cyan, | |
| "transparent": $transparent | |
| ), | |
| $colors | |
| ); | |
| $primary: $blue !default; | |
| $secondary: $gray-200 !default; | |
| $success: $green !default; | |
| $info: $cyan !default; | |
| $warning: $yellow !default; | |
| $danger: $red !default; | |
| $theme-colors: () !default; | |
| // stylelint-disable-next-line scss/dollar-variable-default | |
| $theme-colors: map-merge( | |
| ( | |
| "primary": $primary, | |
| "secondary": $secondary, | |
| "success": $success, | |
| "info": $info, | |
| "warning": $warning, | |
| "danger": $danger, | |
| ), | |
| $theme-colors | |
| ); | |
| @each $color, $value in map-merge($colors, $theme-colors) { | |
| .bg-#{$color} { background-color: $value; } | |
| .text-#{$color} { color: $value;} | |
| } | |
| // Shadows | |
| // | |
| $shadow-0: none !default; | |
| $shadow-1: 0 1px 3px hsla(0,0,0,.12), 0 1px 2px hsla(0,0,0,.24) !default; | |
| $shadow-2: 0 3px 6px hsla(0,0,0,.15), 0 2px 4px hsla(0,0,0,.12) !default; | |
| $shadow-3: 0 10px 20px hsla(0,0,0,.15), 0 3px 6px hsla(0,0,0,.10) !default; | |
| $shadow-4: 0 15px 25px hsla(0,0,0,.15), 0 5px 10px hsla(0,0,0,.5) !default; | |
| $shadow-5: 0 20px 40px hsla(0,0,0,.2) !default; | |
| $shadows: () !default; | |
| $shadows: map-merge( | |
| ( | |
| "0": $shadow-0, | |
| "1": $shadow-1, | |
| "2": $shadow-2, | |
| "3": $shadow-3, | |
| "4": $shadow-4, | |
| "5": $shadow-5, | |
| ), $shadows | |
| ); | |
| @each $depth, $shadow in $shadows { | |
| .shadow-#{$depth} { box-shadow: $shadow; } | |
| } | |
| // Z indexes | |
| // | |
| z-1 { z-index: 1; } | |
| z-2 { z-index: 1; } | |
| z-3 { z-index: 1;} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment