-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathdirectional.scss
63 lines (55 loc) · 1.2 KB
/
directional.scss
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// directional-scss | Author: Tyson Matanich (http://matanich.com), 2013 | License: MIT
$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;
}
}
@mixin if-ltr {
@if $dir != rtl {
@content;
}
}
@mixin if-rtl {
@if $dir == rtl {
@content;
}
}