/
_direction.scss
71 lines (58 loc) · 1.42 KB
/
_direction.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
64
65
66
67
68
69
70
71
$direction: ltr !default;
$direction-values: (
ltr: rtl,
rtl: ltr,
left: right,
right: left
) !default;
@function direction($value) {
@if $direction == rtl and map-has-key($direction-values, $value) {
@return map-get($direction-values, $value);
}
@return $value;
}
@function direction-sides($values) {
@if $direction == rtl and length($values) == 4 {
@return nth($values, 1) nth($values, 4) nth($values, 3) nth($values, 2);
}
@return $values;
}
@function direction-corners($values) {
@if $direction == rtl and length($values) > 1 {
@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);
}
}
@return $values;
}
@function direction-if($condition, $if, $else: null) {
@return if($direction == $condition, $if, $else);
}
@function direction-ltr($if, $else: null) {
@return direction-if(ltr, $if, $else);
}
@function direction-rtl($if, $else: null) {
@return direction-if(rtl, $if, $else);
}
@mixin direction {
direction: $direction;
}
@mixin direction-if($condition) {
@if $direction == $condition {
@content;
}
}
@mixin direction-ltr {
@include direction-if(ltr) {
@content;
}
}
@mixin direction-rtl {
@include direction-if(rtl) {
@content;
}
}