// directional-scss | Author: Tyson Matanich (http://matanich.com), 2013 | License: MIT // set $dir to ltr if $dir is not yet set // (note that rtl build has already set this to rtl) $dir: ltr !default; // Set $dir to ltr if not valid (this should never happen) @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; } } @mixin if-ltr { @if $dir != rtl { @content; } } @mixin if-rtl { @if $dir == rtl { @content; } }