Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
teutonic-css/includes/_vars-space-scale.scss
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
83 lines (64 sloc)
3.55 KB
This file contains 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
// Scale Spacings | |
// Otherwise 2: | |
// Mention on website that MS Edge is not supported (yet) | |
// Switch: | |
// if true: the browser will calculate sizes using (lot's of) calc | |
// if false: SCSS will calculate the sizes! | |
$space-calc : "css" !default; | |
// Space base settings | |
$space-base : .26rem !default; | |
$space-ratio : $major-tenth !default; // 2.5 (see modular scale presets) | |
:root { | |
// CSS Vars definition | |
// Space scale | |
// for paddings & margins, for boxes and page layout | |
// Modular scale — all your BASE (and RATIO) are belong to us! | |
--space-base : #{$space-base}; | |
--space-ratio : #{$space-ratio}; | |
// EXTRA: Hairline borders | |
--space-px : 2px; | |
// Do the calc in the browser, calc of calc encapsulated in CSS Vars | |
@if $space-calc == "css" { | |
--space-xs : var(--space-base); // bigger ⤵ | |
--space-s : calc(var(--space-ratio) * var(--space-xs)); | |
--space-m : calc(var(--space-ratio) * var(--space-s)); | |
--space-l : calc(var(--space-ratio) * var(--space-m)); | |
--space-xl : calc(var(--space-ratio) * var(--space-l)); | |
--space-xxl : calc(var(--space-ratio) * var(--space-xl)); | |
// Do the calc in the browser, but not encapsulated | |
} @else if $space-calc == "css-detailed" { | |
// This does the same as above, | |
// but you can better the calc of the calc | |
// It's an attempt to solve issues with MS Edge | |
// Idea by Manuel Lehmann | |
// Nicely written | |
--space-xs : var(--space-base); | |
--space-s : calc( var(--space-ratio) * var(--space-base) ); | |
--space-m : calc( var(--space-ratio) * ( var(--space-ratio) * var(--space-base) )); | |
--space-l : calc( var(--space-ratio) * ( var(--space-ratio) * ( var(--space-ratio) * var(--space-base) ))); | |
--space-xl : calc( var(--space-ratio) * ( var(--space-ratio) * ( var(--space-ratio) * ( var(--space-ratio) * var(--space-base) )))); | |
--space-xxl : calc( var(--space-ratio) * ( var(--space-ratio) * ( var(--space-ratio) * ( var(--space-ratio) * ( var(--space-ratio) * var(--space-base) ))))); | |
// Do the calc in the browser, but not encapsulated and DENSE | |
} @else if $space-calc == "css-detailed-dense" { | |
// No spaces version (punctation bug in MS Edge?) | |
--space-xs : var(--space-base); | |
--space-s : calc(var(--space-ratio)*var(--space-base)); | |
--space-m : calc(var(--space-ratio)*(var(--space-ratio)*var(--space-base))); | |
--space-l : calc(var(--space-ratio)*(var(--space-ratio)*(var(--space-ratio)*var(--space-base)))); | |
--space-xl : calc(var(--space-ratio)*(var(--space-ratio)*(var(--space-ratio)*(var(--space-ratio)*var(--space-base))))); | |
--space-xxl : calc(var(--space-ratio)*(var(--space-ratio)*(var(--space-ratio)*(var(--space-ratio)*(var(--space-ratio)*var(--space-base)))))); | |
// Do the calc in SCSS > hardcoded CSS Vars | |
} @else { | |
$space-s : $space-ratio * $space-base; | |
$space-m : $space-ratio * $space-s; | |
$space-l : $space-ratio * $space-m; | |
$space-xl : $space-ratio * $space-l; | |
$space-xxl : $space-ratio * $space-xl; | |
--space-xs : #{$space-base}; | |
--space-s : #{$space-s}; | |
--space-m : #{$space-m}; | |
--space-l : #{$space-l}; | |
--space-xl : #{$space-xl}; | |
--space-xxl : #{$space-xxl}; | |
} | |
} |