@transferwise/neptune-css 10.0.5 → 10.0.6-beta.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/css/accordion.css +1 -1
  2. package/dist/css/alerts.css +1 -1
  3. package/dist/css/background.css +1 -1
  4. package/dist/css/badge.css +1 -1
  5. package/dist/css/breadcrumbs.css +1 -1
  6. package/dist/css/button-groups.css +1 -1
  7. package/dist/css/buttons.css +1 -1
  8. package/dist/css/chevron.css +1 -1
  9. package/dist/css/circles.css +1 -1
  10. package/dist/css/close.css +1 -1
  11. package/dist/css/column-layout.css +1 -1
  12. package/dist/css/currency-flags.css +1 -1
  13. package/dist/css/decision.css +1 -1
  14. package/dist/css/dropdowns.css +1 -0
  15. package/dist/css/droppable.css +1 -1
  16. package/dist/css/flex.css +1 -1
  17. package/dist/css/footer.css +1 -1
  18. package/dist/css/forms.css +1 -1
  19. package/dist/css/grid.css +1 -1
  20. package/dist/css/input-groups.css +1 -1
  21. package/dist/css/link-callout.css +1 -1
  22. package/dist/css/list-group.css +1 -1
  23. package/dist/css/media.css +1 -1
  24. package/dist/css/modals.css +1 -1
  25. package/dist/css/navbar-base.css +1 -0
  26. package/dist/css/navbar.css +1 -1
  27. package/dist/css/navs.css +1 -1
  28. package/dist/css/neptune-addons.css +1 -1
  29. package/dist/css/neptune-core.css +1 -1
  30. package/dist/css/neptune-social-media.css +1 -1
  31. package/dist/css/neptune.css +1 -1
  32. package/dist/css/panels.css +1 -1
  33. package/dist/css/popovers.css +1 -1
  34. package/dist/css/process.css +1 -1
  35. package/dist/css/progress-bars.css +1 -1
  36. package/dist/css/select.css +1 -1
  37. package/dist/css/sequences.css +1 -1
  38. package/dist/css/table.css +1 -1
  39. package/dist/css/tick.css +1 -1
  40. package/dist/css/tooltip.css +1 -1
  41. package/dist/css/utilities.css +1 -1
  42. package/dist/css/wells.css +1 -1
  43. package/dist/less/neptune-tokens.less +85 -78
  44. package/dist/props/neptune-tokens.css +89 -41
  45. package/package.json +3 -3
  46. package/src/less/addons/_background-utilities.less +31 -6
  47. package/src/less/addons/_spacing-utilities.less +4 -4
  48. package/src/less/addons/_utilities.less +141 -0
  49. package/src/less/alerts.less +14 -14
  50. package/src/less/badge.less +65 -4
  51. package/src/less/breadcrumbs.less +25 -4
  52. package/src/less/button-groups.less +45 -38
  53. package/src/less/buttons.less +90 -107
  54. package/src/less/chevron.less +1 -1
  55. package/src/less/circles.less +206 -19
  56. package/src/less/close.less +38 -6
  57. package/src/less/column-layout.less +160 -3
  58. package/src/less/core/_scaffolding.less +36 -27
  59. package/src/less/core/_typography-utilities.less +59 -45
  60. package/src/less/core/_typography.less +126 -111
  61. package/src/less/currency-flags.less +4 -4
  62. package/src/less/decision.less +4 -9
  63. package/src/less/dropdowns.less +362 -0
  64. package/src/less/droppable.less +202 -3
  65. package/src/less/flex.less +17 -16
  66. package/src/less/footer.less +18 -19
  67. package/src/less/forms/bootstrap-forms.less +105 -95
  68. package/src/less/forms/checkbox-radio.less +51 -52
  69. package/src/less/grid.less +23 -22
  70. package/src/less/input-groups.less +47 -48
  71. package/src/less/link-callout.less +4 -1
  72. package/src/less/list-group.less +281 -4
  73. package/src/less/media.less +8 -5
  74. package/src/less/mixins/_alerts.less +15 -7
  75. package/src/less/mixins/_arrows.less +13 -7
  76. package/src/less/mixins/_border-radius.less +1 -8
  77. package/src/less/mixins/_buttons.less +5 -5
  78. package/src/less/mixins/_center-block.less +7 -0
  79. package/src/less/mixins/_circle.less +11 -0
  80. package/src/less/mixins/_forms.less +16 -12
  81. package/src/less/mixins/_grid-framework.less +11 -8
  82. package/src/less/mixins/_grid.less +52 -36
  83. package/src/less/mixins/_hide-text.less +20 -0
  84. package/src/less/mixins/_list-group.less +23 -0
  85. package/src/less/mixins/_logical-properties-IE-friendly.less +329 -0
  86. package/src/less/mixins/_logical-properties-modern-browsers.less +226 -0
  87. package/src/less/mixins/_logical-properties.less +5 -0
  88. package/src/less/mixins/_panels.less +23 -0
  89. package/src/less/mixins/_physical-properties.less +111 -0
  90. package/src/less/mixins/_reset-text.less +22 -0
  91. package/src/less/mixins/_sequence.less +197 -0
  92. package/src/less/mixins/_spacing.less +20 -10
  93. package/src/less/mixins/_table-row.less +1 -1
  94. package/src/less/mixins/_text-emphasis.less +7 -1
  95. package/src/less/modals.less +53 -23
  96. package/src/less/navbar-base.less +1382 -0
  97. package/src/less/navbar.less +16 -20
  98. package/src/less/navs.less +348 -3
  99. package/src/less/neptune-social-media.less +11 -6
  100. package/src/less/neptune.bundle.less +2 -1
  101. package/src/less/panels.less +409 -4
  102. package/src/less/popovers.less +368 -5
  103. package/src/less/process.less +358 -3
  104. package/src/less/progress-bars.less +14 -9
  105. package/src/less/select.less +8 -6
  106. package/src/less/sequences.less +504 -8
  107. package/src/less/table.less +40 -54
  108. package/src/less/tick.less +14 -1
  109. package/src/less/tooltip.less +123 -4
  110. package/src/less/utilities.less +134 -4
  111. package/src/less/variables/_typography.less +2 -0
  112. package/src/props/neptune-tokens.css +2 -1
  113. package/src/variables/neptune-tokens.less +1 -3
@@ -4,64 +4,74 @@
4
4
 
5
5
  // Centered container element
6
6
  .container-fixed(@gutter: @grid-gutter-width) {
7
- margin-right: auto;
8
- margin-left: auto;
9
- padding-left: (@gutter / 2);
10
- padding-right: (@gutter / 2);
7
+ .margin(right, auto);
8
+
9
+ .margin(left, auto);
10
+
11
+ .padding(left, (@gutter / 2));
12
+
13
+ .padding(right, (@gutter / 2));
14
+
11
15
  &:extend(.clearfix all);
12
16
  }
13
17
 
14
18
  // Creates a wrapper for a series of columns
15
19
  .make-row(@gutter: @grid-gutter-width) {
16
- margin-left: ceil((@gutter / -2));
17
- margin-right: floor((@gutter / -2));
20
+ .margin(left, ceil((@gutter / -2)));
21
+
22
+ .margin(right, floor((@gutter / -2)));
23
+
18
24
  &:extend(.clearfix all);
19
25
  }
20
26
 
21
27
  // Generate the extra small columns
22
28
  .make-xs-column(@columns; @gutter: @grid-gutter-width) {
23
29
  position: relative;
24
- float: left;
30
+ .float(left);
31
+
25
32
  width: percentage((@columns / @grid-columns));
26
33
  min-height: 1px;
27
- padding-left: (@gutter / 2);
28
- padding-right: (@gutter / 2);
34
+ .padding(left, (@gutter / 2));
35
+
36
+ .padding(right, (@gutter / 2));
29
37
  }
30
38
  .make-xs-column-offset(@columns) {
31
- margin-left: percentage((@columns / @grid-columns));
39
+ .margin(left, percentage((@columns / @grid-columns)));
32
40
  }
33
41
  .make-xs-column-push(@columns) {
34
- left: percentage((@columns / @grid-columns));
42
+ .left(percentage((@columns / @grid-columns)));
35
43
  }
36
44
  .make-xs-column-pull(@columns) {
37
- right: percentage((@columns / @grid-columns));
45
+ .right(percentage((@columns / @grid-columns)));
38
46
  }
39
47
 
40
48
  // Generate the small columns
41
49
  .make-sm-column(@columns; @gutter: @grid-gutter-width) {
42
50
  position: relative;
43
51
  min-height: 1px;
44
- padding-left: (@gutter / 2);
45
- padding-right: (@gutter / 2);
52
+ .padding(left, (@gutter / 2));
53
+
54
+ .padding(right, (@gutter / 2));
46
55
 
47
56
  @media (min-width: @screen-sm-min) {
48
- float: left;
57
+ .float(left);
58
+
49
59
  width: percentage((@columns / @grid-columns));
50
60
  }
51
61
  }
52
62
  .make-sm-column-offset(@columns) {
53
63
  @media (min-width: @screen-sm-min) {
54
- margin-left: percentage((@columns / @grid-columns));
64
+ .margin(left, percentage((@columns / @grid-columns)));
55
65
  }
56
66
  }
57
67
  .make-sm-column-push(@columns) {
58
68
  @media (min-width: @screen-sm-min) {
59
- left: percentage((@columns / @grid-columns));
69
+ .left(percentage((@columns / @grid-columns)));
60
70
  }
61
71
  }
62
72
  .make-sm-column-pull(@columns) {
63
73
  @media (min-width: @screen-sm-min) {
64
- right: percentage((@columns / @grid-columns));
74
+ .right(percentage((@columns / @grid-columns)));
65
75
  }
66
76
  }
67
77
 
@@ -69,27 +79,29 @@
69
79
  .make-md-column(@columns; @gutter: @grid-gutter-width) {
70
80
  position: relative;
71
81
  min-height: 1px;
72
- padding-left: (@gutter / 2);
73
- padding-right: (@gutter / 2);
82
+ .padding(left, (@gutter / 2));
83
+
84
+ .padding(right, (@gutter / 2));
74
85
 
75
86
  @media (min-width: @screen-md-min) {
76
- float: left;
87
+ .float(left);
88
+
77
89
  width: percentage((@columns / @grid-columns));
78
90
  }
79
91
  }
80
92
  .make-md-column-offset(@columns) {
81
93
  @media (min-width: @screen-md-min) {
82
- margin-left: percentage((@columns / @grid-columns));
94
+ .margin(left, percentage((@columns / @grid-columns)));
83
95
  }
84
96
  }
85
97
  .make-md-column-push(@columns) {
86
98
  @media (min-width: @screen-md-min) {
87
- left: percentage((@columns / @grid-columns));
99
+ .left(percentage((@columns / @grid-columns)));
88
100
  }
89
101
  }
90
102
  .make-md-column-pull(@columns) {
91
103
  @media (min-width: @screen-md-min) {
92
- right: percentage((@columns / @grid-columns));
104
+ .right(percentage((@columns / @grid-columns)));
93
105
  }
94
106
  }
95
107
 
@@ -97,27 +109,29 @@
97
109
  .make-lg-column(@columns; @gutter: @grid-gutter-width) {
98
110
  position: relative;
99
111
  min-height: 1px;
100
- padding-left: (@gutter / 2);
101
- padding-right: (@gutter / 2);
112
+ .padding(left, (@gutter / 2));
113
+
114
+ .padding(right, (@gutter / 2));
102
115
 
103
116
  @media (min-width: @screen-lg-min) {
104
- float: left;
117
+ .float(left);
118
+
105
119
  width: percentage((@columns / @grid-columns));
106
120
  }
107
121
  }
108
122
  .make-lg-column-offset(@columns) {
109
123
  @media (min-width: @screen-lg-min) {
110
- margin-left: percentage((@columns / @grid-columns));
124
+ .margin(left, percentage((@columns / @grid-columns)));
111
125
  }
112
126
  }
113
127
  .make-lg-column-push(@columns) {
114
128
  @media (min-width: @screen-lg-min) {
115
- left: percentage((@columns / @grid-columns));
129
+ .left(percentage((@columns / @grid-columns)));
116
130
  }
117
131
  }
118
132
  .make-lg-column-pull(@columns) {
119
133
  @media (min-width: @screen-lg-min) {
120
- right: percentage((@columns / @grid-columns));
134
+ .right(percentage((@columns / @grid-columns)));
121
135
  }
122
136
  }
123
137
 
@@ -125,26 +139,28 @@
125
139
  .make-xl-column(@columns; @gutter: @grid-gutter-width) {
126
140
  position: relative;
127
141
  min-height: 1px;
128
- padding-left: (@gutter / 2);
129
- padding-right: (@gutter / 2);
142
+ .padding(left, (@gutter / 2));
143
+
144
+ .padding(right, (@gutter / 2));
130
145
 
131
146
  @media (min-width: @screen-xl-min) {
132
- float: left;
147
+ .float(left);
148
+
133
149
  width: percentage((@columns / @grid-columns));
134
150
  }
135
151
  }
136
152
  .make-xl-column-offset(@columns) {
137
153
  @media (min-width: @screen-xl-min) {
138
- margin-left: percentage((@columns / @grid-columns));
154
+ .margin(left, percentage((@columns / @grid-columns)));
139
155
  }
140
156
  }
141
157
  .make-xl-column-push(@columns) {
142
158
  @media (min-width: @screen-xl-min) {
143
- left: percentage((@columns / @grid-columns));
159
+ .left(percentage((@columns / @grid-columns)));
144
160
  }
145
161
  }
146
162
  .make-xl-column-pull(@columns) {
147
163
  @media (min-width: @screen-xl-min) {
148
- right: percentage((@columns / @grid-columns));
164
+ .right(percentage((@columns / @grid-columns)));
149
165
  }
150
166
  }
@@ -0,0 +1,20 @@
1
+ // CSS image replacement
2
+ //
3
+ // Heads up! v3 launched with with only `.hide-text()`, but per our pattern for
4
+ // mixins being reused as classes with the same name, this doesn't hold up. As
5
+ // of v3.0.1 we have added `.text-hide()` and deprecated `.hide-text()`.
6
+ //
7
+ // Source: https://github.com/h5bp/html5-boilerplate/commit/aa0396eae757
8
+
9
+ // Deprecated as of v3.0.1 (will be removed in v4)
10
+ .hide-text() {
11
+ color: transparent;
12
+ text-shadow: none;
13
+ background-color: transparent;
14
+ border: 0;
15
+ }
16
+
17
+ // New mixin to use as of v3.0.1
18
+ .text-hide() {
19
+ .hide-text();
20
+ }
@@ -0,0 +1,23 @@
1
+ @import (reference) '_logical-properties.less';
2
+
3
+ .list-group-item-variant(@state; @background; @color) {
4
+ .list-group-item-@{state} {
5
+ .border(left, 3px, solid, @color);
6
+
7
+ .list-group-item& {
8
+ background-color: @brand-white;
9
+ }
10
+
11
+ .list-group-item-text {
12
+ color: @color;
13
+ }
14
+
15
+ a& {
16
+ color: @color;
17
+
18
+ &:hover {
19
+ color: @color;
20
+ }
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,329 @@
1
+ // Mixin to support Logical properties/values for IE
2
+
3
+ // CSS property: float: Flow-relative values inline-start and inline-end: https://caniuse.com/mdn-css_properties_float_flow_relative_values
4
+
5
+ .float(@direction) {
6
+ & when (@direction = left) {
7
+ [dir="rtl"] & {
8
+ float: right;
9
+ }
10
+
11
+ float: @direction;
12
+ }
13
+
14
+ & when (@direction = right) {
15
+ [dir="rtl"] & {
16
+ float: left;
17
+ }
18
+
19
+ float: @direction;
20
+ }
21
+ }
22
+
23
+ // CSS property: clear: Flow-relative values inline-start and inline-end: https://caniuse.com/mdn-css_properties_clear_flow_relative_values
24
+
25
+ .clear(@direction) {
26
+ & when (@direction = left) {
27
+ [dir="rtl"] & {
28
+ clear: right;
29
+ }
30
+
31
+ clear: @direction;
32
+ }
33
+
34
+ & when (@direction = right) {
35
+ [dir="rtl"] & {
36
+ clear: left;
37
+ }
38
+
39
+ clear: @direction;
40
+ }
41
+ }
42
+
43
+ // CSS property: text-align: Flow-relative values start and end: https://caniuse.com/mdn-css_properties_text-align_flow_relative_values_start_and_end
44
+
45
+ .text-align(@direction) {
46
+ & when (@direction = left) {
47
+ [dir="rtl"] & {
48
+ text-align: right;
49
+ }
50
+
51
+ text-align: left;
52
+ }
53
+
54
+ & when (@direction = right) {
55
+ [dir="rtl"] & {
56
+ text-align: left;
57
+ }
58
+
59
+ text-align: right;
60
+ }
61
+ }
62
+
63
+ // CSS Logical Properties: https://caniuse.com/css-logical-props
64
+
65
+ .padding(@direction, @value) {
66
+ & when (@direction = left) {
67
+ [dir="rtl"] & {
68
+ padding-right: @value;
69
+ }
70
+
71
+ html:not([dir="rtl"]) & {
72
+ padding-@{direction}: @value;
73
+ }
74
+ }
75
+
76
+ & when (@direction = right) {
77
+ [dir="rtl"] & {
78
+ padding-left: @value;
79
+ }
80
+
81
+ html:not([dir="rtl"]) & {
82
+ padding-@{direction}: @value;
83
+ }
84
+ }
85
+ }
86
+
87
+ // Use only if the right and left values are different or you have to step up specificity of the padding.
88
+ // Use for single value shorthand 'padding: var(--foo);' -> '.padding-shorthand(var(--foo))'
89
+ // Use for multiple value shorthand 'padding: var(--foo1) var(--foo2) var(--foo3) var(--foo4);' -> '.padding-shorthand(var(--foo1), var(--foo2), var(--foo3), var(--foo4))'
90
+
91
+ .padding-shorthand(@value1, @value2: ~'', @value3: ~'', @value4: ~'') {
92
+ [dir="rtl"] & {
93
+ padding: @value1 @value4 @value3 @value2;
94
+ }
95
+
96
+ html:not([dir="rtl"]) & {
97
+ padding: @value1 @value2 @value3 @value4;
98
+ }
99
+ }
100
+
101
+ // CSS Logical Properties: https://caniuse.com/css-logical-props
102
+
103
+ .margin(@direction, @value) {
104
+ & when (@direction = left) {
105
+ [dir="rtl"] & {
106
+ margin-right: @value;
107
+ }
108
+
109
+ html:not([dir="rtl"]) & {
110
+ margin-@{direction}: @value;
111
+ }
112
+ }
113
+
114
+ & when (@direction = right) {
115
+ [dir="rtl"] & {
116
+ margin-left: @value;
117
+ }
118
+
119
+ html:not([dir="rtl"]) & {
120
+ margin-@{direction}: @value;
121
+ }
122
+ }
123
+ }
124
+
125
+ // Use only if the right and left values are different or you have to step up specificity of the margin.
126
+ // Use for single value shorthand 'margin: var(--foo);' -> '.margin-shorthand(var(--foo))'
127
+ // Use for multiple value shorthand 'margin: var(--foo1) var(--foo2) var(--foo3) var(--foo4);' -> '.margin-shorthand(var(--foo1), var(--foo2), var(--foo3), var(--foo4))'
128
+
129
+ .margin-shorthand(@value1, @value2: ~'', @value3: ~'', @value4: ~'') {
130
+ [dir="rtl"] & {
131
+ margin: @value1 @value4 @value3 @value2;
132
+ }
133
+
134
+ html:not([dir="rtl"]) & {
135
+ margin: @value1 @value2 @value3 @value4;
136
+ }
137
+ }
138
+
139
+ // CSS property: inset-inline (positions): https://caniuse.com/mdn-css_properties_inset-inline
140
+
141
+ .left(@value) {
142
+ [dir="rtl"] & {
143
+ right: @value;
144
+ }
145
+
146
+ html:not([dir="rtl"]) & {
147
+ left: @value;
148
+ }
149
+ }
150
+
151
+ .right(@value) {
152
+ [dir="rtl"] & {
153
+ left: @value;
154
+ }
155
+
156
+ html:not([dir="rtl"]) & {
157
+ right: @value;
158
+ }
159
+ }
160
+
161
+ // CSS property: border-inline-start https://caniuse.com/mdn-css_properties_border-inline-start
162
+
163
+ .border(@direction, @size, @style: ~'', @color: ~'') {
164
+ & when (@direction = left) {
165
+ [dir="rtl"] & {
166
+ border-right: @size @style @color;
167
+ }
168
+
169
+ html:not([dir="rtl"]) & {
170
+ border-@{direction}: @size @style @color;
171
+ }
172
+ }
173
+ & when (@direction = right) {
174
+ [dir="rtl"] & {
175
+ border-left: @size @style @color;
176
+ }
177
+
178
+ html:not([dir="rtl"]) & {
179
+ border-@{direction}: @size @style @color;
180
+ }
181
+ }
182
+ }
183
+
184
+ .border-width(@direction, @size) {
185
+ & when (@direction = left) {
186
+ [dir="rtl"] & {
187
+ border-right-width: @size;
188
+ }
189
+
190
+ html:not([dir="rtl"]) & {
191
+ border-@{direction}-width: @size;
192
+ }
193
+ }
194
+
195
+ & when (@direction = right) {
196
+ [dir="rtl"] & {
197
+ border-left-width: @size;
198
+ }
199
+
200
+ html:not([dir="rtl"]) & {
201
+ border-@{direction}-width: @size;
202
+ }
203
+ }
204
+ }
205
+
206
+ // CSS property: border-start-start-radius: https://caniuse.com/mdn-css_properties_border-start-start-radius
207
+
208
+ // | top-left | top-right |
209
+ // | bottom-left | bottom-right |
210
+
211
+ .border-radius(@direction, @radius) {
212
+ & when (@direction = left) {
213
+ [dir="rtl"] & {
214
+ border-bottom-right-radius: @radius;
215
+ border-top-right-radius: @radius;
216
+ }
217
+
218
+ html:not([dir="rtl"]) & {
219
+ border-bottom-@{direction}-radius: @radius;
220
+ border-top-@{direction}-radius: @radius;
221
+ }
222
+ }
223
+
224
+ & when (@direction = right) {
225
+ [dir="rtl"] & {
226
+ border-bottom-left-radius: @radius;
227
+ border-top-left-radius: @radius;
228
+ }
229
+
230
+ html:not([dir="rtl"]) & {
231
+ border-bottom-@{direction}-radius: @radius;
232
+ border-top-@{direction}-radius: @radius;
233
+ }
234
+ }
235
+ }
236
+
237
+ .border-top-dir-radius(@direction, @radius) {
238
+ & when (@direction = left) {
239
+ [dir="rtl"] & {
240
+ border-top-right-radius: @radius;
241
+ }
242
+
243
+ html:not([dir="rtl"]) & {
244
+ border-top-@{direction}-radius: @radius;
245
+ }
246
+ }
247
+
248
+ & when (@direction = right) {
249
+ [dir="rtl"] & {
250
+ border-top-left-radius: @radius;
251
+ }
252
+
253
+ html:not([dir="rtl"]) & {
254
+ border-top-@{direction}-radius: @radius;
255
+ }
256
+ }
257
+ }
258
+
259
+ .border-bottom-dir-radius(@direction, @radius) {
260
+ & when (@direction = left) {
261
+ [dir="rtl"] & {
262
+ border-bottom-right-radius: @radius;
263
+ }
264
+
265
+ html:not([dir="rtl"]) & {
266
+ border-bottom-@{direction}-radius: @radius;
267
+ }
268
+ }
269
+
270
+ & when (@direction = right) {
271
+ [dir="rtl"] & {
272
+ border-bottom-left-radius: @radius;
273
+ }
274
+
275
+ html:not([dir="rtl"]) & {
276
+ border-bottom-@{direction}-radius: @radius;
277
+ }
278
+ }
279
+ }
280
+
281
+ // Background position
282
+
283
+ .background-position(@direction, @vertical-direction: ~'') {
284
+ & when (@direction = left) {
285
+ [dir="rtl"] & {
286
+ background-position: right @vertical-direction;
287
+ }
288
+
289
+ background-position: left @vertical-direction;
290
+ }
291
+
292
+ & when (@direction = right) {
293
+ [dir="rtl"] & {
294
+ background-position: left @vertical-direction;
295
+ }
296
+
297
+ background-position: right @vertical-direction;
298
+ }
299
+ }
300
+
301
+ // Horizontal linear gradient
302
+
303
+ .background-linear-gradient(@direction, @color1, @color2) {
304
+ & when (@direction = left) {
305
+ [dir="rtl"] & {
306
+ background: linear-gradient(to right, @color1, @color2);
307
+ }
308
+
309
+ background: linear-gradient(to left, @color1, @color2);
310
+ }
311
+
312
+ & when (@direction = right) {
313
+ [dir="rtl"] & {
314
+ background: linear-gradient(to left, @color1, @color2);
315
+ }
316
+
317
+ background: linear-gradient(to right, @color1, @color2);
318
+ }
319
+ }
320
+
321
+ // Horizontal translations
322
+
323
+ .translateX(@value, @transform2: ~'', @transform3: ~'') {
324
+ [dir="rtl"] & {
325
+ transform: translateX(@value * -1) @transform2 @transform3;
326
+ }
327
+
328
+ transform: translateX(@value) @transform2 @transform3;
329
+ }