mirror of
https://github.com/scratchfoundation/scratchx.git
synced 2024-12-11 16:51:13 -05:00
51 lines
1.5 KiB
SCSS
51 lines
1.5 KiB
SCSS
|
@charset "UTF-8";
|
||
|
|
||
|
/// Translates an element horizontally by a number of columns. Positive arguments shift the element to the active layout direction, while negative ones shift it to the opposite direction.
|
||
|
///
|
||
|
/// @param {Number (unitless)} $n-columns [1]
|
||
|
/// Number of columns by which the element shifts.
|
||
|
///
|
||
|
/// @example scss - Usage
|
||
|
/// .element {
|
||
|
/// @include shift(-3);
|
||
|
/// }
|
||
|
///
|
||
|
/// @example css - CSS output
|
||
|
/// .element {
|
||
|
/// margin-left: -25.58941%;
|
||
|
/// }
|
||
|
|
||
|
@mixin shift($n-columns: 1) {
|
||
|
@include shift-in-context($n-columns);
|
||
|
}
|
||
|
|
||
|
/// Translates an element horizontally by a number of columns, in a specific nesting context.
|
||
|
///
|
||
|
/// @param {List} $shift
|
||
|
/// A list containing the number of columns to shift (`$columns`) and the number of columns of the parent element (`$container-columns`).
|
||
|
///
|
||
|
/// The two values can be separated with any string such as `of`, `/`, etc.
|
||
|
///
|
||
|
/// @example scss - Usage
|
||
|
/// .element {
|
||
|
/// @include shift(-3 of 6);
|
||
|
/// }
|
||
|
///
|
||
|
/// @example css - CSS output
|
||
|
/// .element {
|
||
|
/// margin-left: -52.41458%;
|
||
|
/// }
|
||
|
|
||
|
@mixin shift-in-context($shift: $columns of $container-columns) {
|
||
|
$n-columns: nth($shift, 1);
|
||
|
$parent-columns: container-shift($shift) !global;
|
||
|
|
||
|
$direction: get-direction($layout-direction, $default-layout-direction);
|
||
|
$opposite-direction: get-opposite-direction($direction);
|
||
|
|
||
|
margin-#{$opposite-direction}: $n-columns * flex-grid(1, $parent-columns) + $n-columns * flex-gutter($parent-columns);
|
||
|
|
||
|
// Reset nesting context
|
||
|
$parent-columns: $grid-columns !global;
|
||
|
}
|