site-sdf/sass/bourbon/bourbon/library/_position.scss

63 lines
1.3 KiB
SCSS
Raw Normal View History

2022-03-29 11:33:15 +00:00
@charset "UTF-8";
/// Provides a concise, one-line method for setting an elements positioning
/// properties: `position`, `top`, `right`, `bottom` and `left`. Use a `null`
/// value to “skip” an edge of the box.
///
/// @argument {string} $position
/// A CSS position value.
///
/// @argument {list} $box-edge-values
/// List of lengths; accepts CSS shorthand.
///
/// @example scss
/// .element {
/// @include position(relative, 0 null null 10em);
/// }
///
/// // CSS Output
/// .element {
/// left: 10em;
/// position: relative;
/// top: 0;
/// }
///
/// @example scss
/// .element {
/// @include position(absolute, 0);
/// }
///
/// // CSS Output
/// .element {
/// position: absolute;
/// top: 0;
/// right: 0;
/// bottom: 0;
/// left: 0;
/// }
///
/// @require {function} _is-length
///
/// @require {function} _unpack-shorthand
@mixin position(
$position,
$box-edge-values
) {
$box-edge-values: _unpack-shorthand($box-edge-values);
$offsets: (
"top": nth($box-edge-values, 1),
"right": nth($box-edge-values, 2),
"bottom": nth($box-edge-values, 3),
"left": nth($box-edge-values, 4),
);
position: $position;
@each $offset, $value in $offsets {
@if _is-length($value) {
#{$offset}: $value;
}
}
}