mirror of
https://github.com/locomotivemtl/locomotive-boilerplate.git
synced 2026-01-15 00:55:08 +08:00
Merge scss functions / Fix strip-unit
This commit is contained in:
@@ -1,3 +1,3 @@
|
|||||||
{
|
{
|
||||||
"version": 1684741656772
|
"version": 1686214653663
|
||||||
}
|
}
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
--container-width: calc(100% - 2 * var(--grid-margin));
|
--container-width: calc(100% - 2 * var(--grid-margin));
|
||||||
|
|
||||||
// Font sizes
|
// Font sizes
|
||||||
--font-size-h1: #{rem(36px)};
|
--font-size-h1: #{responsive-type(36px, 72px, 1400px)};
|
||||||
--font-size-h2: #{rem(28px)};
|
--font-size-h2: #{rem(28px)};
|
||||||
--font-size-h3: #{rem(24px)};
|
--font-size-h3: #{rem(24px)};
|
||||||
--font-size-h4: #{rem(20px)};
|
--font-size-h4: #{rem(20px)};
|
||||||
|
|||||||
@@ -140,6 +140,73 @@
|
|||||||
|
|
||||||
$context: 'frontend' !default;
|
$context: 'frontend' !default;
|
||||||
|
|
||||||
|
// Returns calculation of a percentage of the grid cell width
|
||||||
|
// with optional inset of grid gutter.
|
||||||
|
//
|
||||||
|
// ```scss
|
||||||
|
// .c-box {
|
||||||
|
// width: grid-space(6/12);
|
||||||
|
// margin-left: grid-space(1/12, 1);
|
||||||
|
// }
|
||||||
|
// ```
|
||||||
|
//
|
||||||
|
// @param {number} $number - The percentage spacer
|
||||||
|
// @param {number} $inset - The grid gutter inset
|
||||||
|
// @return {function<number>}
|
||||||
|
@function grid-space($percentage, $inset: 0) {
|
||||||
|
@return calc(#{$percentage} * (100vw - 2 * var(--grid-margin, 0px)) - (1 - #{$percentage}) * var(--grid-gutter, 0px) + #{$inset} * var(--grid-gutter, 0px));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns calculation of a percentage of the viewport height.
|
||||||
|
//
|
||||||
|
// ```scss
|
||||||
|
// .c-box {
|
||||||
|
// height: vh(100);
|
||||||
|
// }
|
||||||
|
// ```
|
||||||
|
//
|
||||||
|
// @param {number} $number - The percentage number
|
||||||
|
// @return {function<number>} in vh
|
||||||
|
@function vh($number) {
|
||||||
|
@return calc(#{$number} * var(--vh, 1vh));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns calculation of a percentage of the viewport width.
|
||||||
|
//
|
||||||
|
// ```scss
|
||||||
|
// .c-box {
|
||||||
|
// width: vw(100);
|
||||||
|
// }
|
||||||
|
// ```
|
||||||
|
//
|
||||||
|
// @param {number} $number - The percentage number
|
||||||
|
// @return {function<number>} in vw
|
||||||
|
|
||||||
|
@function vw($number) {
|
||||||
|
@return calc(#{$number} * var(--vw, 1vw));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns clamp of calculated preferred responsive font size
|
||||||
|
// within a font size and breakpoint range.
|
||||||
|
//
|
||||||
|
// ```scss
|
||||||
|
// .c-heading.-h1 {
|
||||||
|
// font-size: responsive-type(30px, 60px, 1800);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// .c-heading.-h2 {
|
||||||
|
// font-size: responsive-type(20px, 40px, $from-big);
|
||||||
|
// }
|
||||||
|
// ```
|
||||||
|
//
|
||||||
|
// @param {number} $min-size - Minimum font size in pixels.
|
||||||
|
// @param {number} $max-size - Maximum font size in pixels.
|
||||||
|
// @param {number} $breakpoint - Maximum breakpoint.
|
||||||
|
// @return {function<number, function<number>, number>}
|
||||||
|
@function responsive-type($min-size, $max-size, $breakpoint) {
|
||||||
|
$delta: math.div($max-size, $breakpoint);
|
||||||
|
@return clamp($min-size, calc(#{strip-unit($delta)} * #{vw(100)}), $max-size);
|
||||||
|
}
|
||||||
|
|
||||||
// Returns color code.
|
// Returns color code.
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -2,13 +2,18 @@
|
|||||||
// Tools / Maths
|
// Tools / Maths
|
||||||
// ==========================================================================
|
// ==========================================================================
|
||||||
|
|
||||||
// Removes the unit from the given number.
|
// Remove the unit of a length
|
||||||
//
|
//
|
||||||
// @param {number} $number The number to strip.
|
// @param {Number} $number Number to remove unit from
|
||||||
// @return {number}
|
// @return {function<number>}
|
||||||
|
@function strip-unit($value) {
|
||||||
|
@if type-of($value) != "number" {
|
||||||
|
@error "Invalid `#{type-of($value)}` type. Choose a number type instead.";
|
||||||
|
} @else if type-of($value) == "number" and not is-unitless($value) {
|
||||||
|
@return math.div($value, $value * 0 + 1);
|
||||||
|
}
|
||||||
|
|
||||||
@function strip-units($number) {
|
@return $value;
|
||||||
@return math.div($number, ($number * 0 + 1));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the square root of the given number.
|
// Returns the square root of the given number.
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user