Skip to content

Instantly share code, notes, and snippets.

@zizoclimbs
Created August 18, 2019 15:26
Show Gist options
  • Save zizoclimbs/f3437a5cf084b29a96f57880072fcf12 to your computer and use it in GitHub Desktop.
Save zizoclimbs/f3437a5cf084b29a96f57880072fcf12 to your computer and use it in GitHub Desktop.
// directional-scss
$dir: ltr !default;
// Default $dir if not valid
@if $dir != ltr and $dir != rtl {
$dir: ltr;
}
@function if-ltr($if, $else: null) {
@if $dir != rtl {
@return $if;
}
@else {
@return $else;
}
}
@function if-rtl($if, $else: null) {
@return if-ltr($else, $if);
}
$left: if-ltr(left, right);
$right: if-ltr(right, left);
@function side-values($values) {
@if $dir == rtl and length($values) >= 4 {
// Reorder right and left positions in list
@return nth($values, 1) nth($values, 4) nth($values, 3) nth($values, 2);
}
@else {
@return $values;
}
}
@function corner-values($values) {
@if $dir == rtl and length($values) > 1 {
// Reorder right and left positions in list
@if length($values) == 2 {
@return nth($values, 2) nth($values, 1);
}
@else if length($values) == 3 {
@return nth($values, 2) nth($values, 1) nth($values, 2) nth($values, 3);
}
@else {
@return nth($values, 2) nth($values, 1) nth($values, 4) nth($values, 3);
}
}
@else {
@return $values;
}
}
@function dir-values($values) {
@if $dir == rtl and length($values) == 4 {
// Reorder right and left positions in list
@return nth($values, 1) nth($values, 4) nth($values, 3) nth($values, 2);
}
@else {
@return $values;
}
}
@mixin if-ltr {
@if $dir != rtl {
@content;
}
}
@mixin if-rtl {
@if $dir == rtl {
@content;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment