@transferwise/neptune-css 0.0.0-experimental-1181467

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 (180) hide show
  1. package/LICENSE.md +13 -0
  2. package/README.md +45 -0
  3. package/dist/css/accordion.css +1 -0
  4. package/dist/css/alerts.css +1 -0
  5. package/dist/css/background.css +1 -0
  6. package/dist/css/badge.css +1 -0
  7. package/dist/css/border-radius.css +1 -0
  8. package/dist/css/breadcrumbs.css +1 -0
  9. package/dist/css/button-groups.css +1 -0
  10. package/dist/css/buttons.css +1 -0
  11. package/dist/css/chevron.css +1 -0
  12. package/dist/css/circles.css +1 -0
  13. package/dist/css/close.css +1 -0
  14. package/dist/css/column-layout.css +1 -0
  15. package/dist/css/currency-flags.css +1 -0
  16. package/dist/css/decision.css +1 -0
  17. package/dist/css/dropdowns.css +1 -0
  18. package/dist/css/droppable.css +1 -0
  19. package/dist/css/flex.css +1 -0
  20. package/dist/css/footer.css +1 -0
  21. package/dist/css/grid.css +1 -0
  22. package/dist/css/input-groups.css +1 -0
  23. package/dist/css/link-callout.css +1 -0
  24. package/dist/css/list-group.css +1 -0
  25. package/dist/css/loaders.css +1 -0
  26. package/dist/css/media.css +1 -0
  27. package/dist/css/modals.css +1 -0
  28. package/dist/css/navbar-base.css +1 -0
  29. package/dist/css/navbar.css +1 -0
  30. package/dist/css/navs.css +1 -0
  31. package/dist/css/neptune-addons.css +1 -0
  32. package/dist/css/neptune-core.css +1 -0
  33. package/dist/css/neptune-social-media.css +1 -0
  34. package/dist/css/neptune.css +1 -0
  35. package/dist/css/panels.css +1 -0
  36. package/dist/css/popovers.css +1 -0
  37. package/dist/css/process.css +1 -0
  38. package/dist/css/progress-bars.css +1 -0
  39. package/dist/css/ring.css +1 -0
  40. package/dist/css/select.css +1 -0
  41. package/dist/css/sequences.css +1 -0
  42. package/dist/css/table.css +1 -0
  43. package/dist/css/tick.css +1 -0
  44. package/dist/css/tooltip.css +1 -0
  45. package/dist/css/utilities.css +1 -0
  46. package/dist/css/wells.css +1 -0
  47. package/dist/fonts/TW-Averta-Bold.woff +0 -0
  48. package/dist/fonts/TW-Averta-Bold.woff2 +0 -0
  49. package/dist/fonts/TW-Averta-Regular.woff +0 -0
  50. package/dist/fonts/TW-Averta-Regular.woff2 +0 -0
  51. package/dist/fonts/TW-Averta-Semibold.woff +0 -0
  52. package/dist/fonts/TW-Averta-Semibold.woff2 +0 -0
  53. package/dist/fonts/TransferWise-IconFont.svg +81 -0
  54. package/dist/fonts/TransferWise-IconFont.woff +0 -0
  55. package/dist/fonts/WorldwiseSans-Heavy.woff2 +0 -0
  56. package/dist/fonts/inter-cyrillic-ext-variable-wghtOnly-normal.woff2 +0 -0
  57. package/dist/fonts/inter-cyrillic-variable-wghtOnly-normal.woff2 +0 -0
  58. package/dist/fonts/inter-greek-ext-variable-wghtOnly-normal.woff2 +0 -0
  59. package/dist/fonts/inter-greek-variable-wghtOnly-normal.woff2 +0 -0
  60. package/dist/fonts/inter-latin-ext-variable-wghtOnly-normal.woff2 +0 -0
  61. package/dist/fonts/inter-latin-variable-wghtOnly-normal.woff2 +0 -0
  62. package/dist/fonts/inter-vietnamese-variable-wghtOnly-normal.woff2 +0 -0
  63. package/dist/img/bg-dark.svg +31 -0
  64. package/dist/img/bg-light.svg +26 -0
  65. package/dist/less/legacy-variables.less +1299 -0
  66. package/dist/less/neptune-tokens.less +272 -0
  67. package/dist/less/zindex.less +17 -0
  68. package/dist/props/custom-media.css +9 -0
  69. package/dist/props/legacy-custom-props.css +69 -0
  70. package/dist/props/neptune-tokens.css +150 -0
  71. package/package.json +59 -0
  72. package/scripts/neptune-css-upgrader.js +106 -0
  73. package/src/fonts/TW-Averta-Bold.woff +0 -0
  74. package/src/fonts/TW-Averta-Bold.woff2 +0 -0
  75. package/src/fonts/TW-Averta-Regular.woff +0 -0
  76. package/src/fonts/TW-Averta-Regular.woff2 +0 -0
  77. package/src/fonts/TW-Averta-Semibold.woff +0 -0
  78. package/src/fonts/TW-Averta-Semibold.woff2 +0 -0
  79. package/src/fonts/TransferWise-IconFont.svg +81 -0
  80. package/src/fonts/TransferWise-IconFont.woff +0 -0
  81. package/src/fonts/WorldwiseSans-Heavy.woff2 +0 -0
  82. package/src/fonts/inter-cyrillic-ext-variable-wghtOnly-normal.woff2 +0 -0
  83. package/src/fonts/inter-cyrillic-variable-wghtOnly-normal.woff2 +0 -0
  84. package/src/fonts/inter-greek-ext-variable-wghtOnly-normal.woff2 +0 -0
  85. package/src/fonts/inter-greek-variable-wghtOnly-normal.woff2 +0 -0
  86. package/src/fonts/inter-latin-ext-variable-wghtOnly-normal.woff2 +0 -0
  87. package/src/fonts/inter-latin-variable-wghtOnly-normal.woff2 +0 -0
  88. package/src/fonts/inter-vietnamese-variable-wghtOnly-normal.woff2 +0 -0
  89. package/src/img/bg-dark.svg +31 -0
  90. package/src/img/bg-light.svg +26 -0
  91. package/src/less/accordion.less +15 -0
  92. package/src/less/addons/_background-utilities.less +82 -0
  93. package/src/less/addons/_border.less +3 -0
  94. package/src/less/addons/_display-utilities.less +159 -0
  95. package/src/less/addons/_spacing-utilities.less +49 -0
  96. package/src/less/addons/_utilities.less +147 -0
  97. package/src/less/alerts.less +253 -0
  98. package/src/less/background.less +24 -0
  99. package/src/less/badge.less +85 -0
  100. package/src/less/border-radius.less +3 -0
  101. package/src/less/breadcrumbs.less +27 -0
  102. package/src/less/button-groups.less +424 -0
  103. package/src/less/buttons.less +714 -0
  104. package/src/less/chevron.less +39 -0
  105. package/src/less/circles.less +223 -0
  106. package/src/less/close.less +48 -0
  107. package/src/less/column-layout.less +167 -0
  108. package/src/less/components/_component-animations.less +43 -0
  109. package/src/less/core/_fonts.less +97 -0
  110. package/src/less/core/_scaffolding.less +473 -0
  111. package/src/less/core/_typography-utilities.less +269 -0
  112. package/src/less/core/_typography.less +794 -0
  113. package/src/less/currency-flags.less +41 -0
  114. package/src/less/decision.less +98 -0
  115. package/src/less/dropdowns.less +374 -0
  116. package/src/less/droppable.less +280 -0
  117. package/src/less/flex.less +113 -0
  118. package/src/less/footer.less +113 -0
  119. package/src/less/forms/bootstrap-forms.less +1227 -0
  120. package/src/less/forms/checkbox-radio.less +303 -0
  121. package/src/less/grid.less +187 -0
  122. package/src/less/input-groups.less +299 -0
  123. package/src/less/link-callout.less +17 -0
  124. package/src/less/list-group.less +260 -0
  125. package/src/less/loaders.less +91 -0
  126. package/src/less/media.less +61 -0
  127. package/src/less/mixins/_alerts.less +35 -0
  128. package/src/less/mixins/_arrows.less +52 -0
  129. package/src/less/mixins/_border-radius.less +11 -0
  130. package/src/less/mixins/_buttons.less +82 -0
  131. package/src/less/mixins/_center-block.less +7 -0
  132. package/src/less/mixins/_circle.less +11 -0
  133. package/src/less/mixins/_clearfix.less +23 -0
  134. package/src/less/mixins/_flex.less +105 -0
  135. package/src/less/mixins/_forms.less +128 -0
  136. package/src/less/mixins/_grid-framework.less +104 -0
  137. package/src/less/mixins/_grid.less +158 -0
  138. package/src/less/mixins/_hide-text.less +20 -0
  139. package/src/less/mixins/_links.less +7 -0
  140. package/src/less/mixins/_list-group.less +23 -0
  141. package/src/less/mixins/_logical-properties-IE-friendly.less +381 -0
  142. package/src/less/mixins/_logical-properties-modern-browsers.less +226 -0
  143. package/src/less/mixins/_logical-properties.less +5 -0
  144. package/src/less/mixins/_nav-vertical-align.less +10 -0
  145. package/src/less/mixins/_panels.less +23 -0
  146. package/src/less/mixins/_physical-properties.less +110 -0
  147. package/src/less/mixins/_reset-text.less +22 -0
  148. package/src/less/mixins/_sequence.less +203 -0
  149. package/src/less/mixins/_spacing.less +122 -0
  150. package/src/less/mixins/_tab-focus.less +5 -0
  151. package/src/less/mixins/_table-row.less +47 -0
  152. package/src/less/mixins/_text-emphasis.less +39 -0
  153. package/src/less/mixins/_theming.less +7 -0
  154. package/src/less/modals.less +239 -0
  155. package/src/less/navbar-base.less +1333 -0
  156. package/src/less/navbar.less +106 -0
  157. package/src/less/navs.less +341 -0
  158. package/src/less/neptune-addons.less +4 -0
  159. package/src/less/neptune-core.less +4 -0
  160. package/src/less/neptune-social-media.less +57 -0
  161. package/src/less/neptune.bundle.less +44 -0
  162. package/src/less/panels.less +410 -0
  163. package/src/less/popovers.less +381 -0
  164. package/src/less/process.less +395 -0
  165. package/src/less/progress-bars.less +70 -0
  166. package/src/less/ring.less +51 -0
  167. package/src/less/select.less +88 -0
  168. package/src/less/sequences.less +515 -0
  169. package/src/less/table.less +385 -0
  170. package/src/less/tick.less +37 -0
  171. package/src/less/tooltip.less +132 -0
  172. package/src/less/utilities.less +153 -0
  173. package/src/less/wells.less +37 -0
  174. package/src/props/custom-media.css +9 -0
  175. package/src/props/legacy-custom-props.css +69 -0
  176. package/src/props/neptune-tokens.css +11 -0
  177. package/src/variables/legacy-variables.less +1299 -0
  178. package/src/variables/neptune-tokens.less +12 -0
  179. package/src/variables/zindex.less +17 -0
  180. package/upgrades/scripts/2021-11-v11-v12.js +61 -0
@@ -0,0 +1,395 @@
1
+ @import (reference) "../variables/legacy-variables.less";
2
+ @import (reference) "./mixins/_logical-properties.less";
3
+
4
+ @process-xl-radius: 64px;
5
+ @process-xl-stroke: 3px;
6
+ @process-xl-circumference: (pi() * (2 * (@process-xl-radius - 1)));
7
+ @process-xl-icon-size: 64px;
8
+ @process-xl-icon-stroke: 8px;
9
+
10
+ /*
11
+ // Keep these sizes in case we want to add these back in.
12
+ @process-lg-radius: 48px;
13
+ @process-lg-stroke: 2.7px;
14
+ @process-lg-circumference: (pi() * (2 * (@process-lg-radius - 1)));
15
+ @process-lg-icon-size: 48px;
16
+ @process-lg-icon-stroke: 6px;
17
+
18
+ @process-md-radius: 36px;
19
+ @process-md-circumference: (pi() * (2 * (@process-md-radius - 1)));
20
+ @process-md-stroke: 2.5px;
21
+ @process-md-icon-size: 36px;
22
+ @process-md-icon-stroke: 4px;
23
+ */
24
+ @process-sm-radius: 24px;
25
+ @process-sm-circumference: (pi() * (2 * (@process-sm-radius - 1)));
26
+ @process-sm-stroke: 2.4px;
27
+ @process-sm-icon-size: 24px;
28
+ @process-sm-icon-stroke: 3px;
29
+
30
+ @process-xs-radius: 12px;
31
+ @process-xs-circumference: (pi() * (2 * (@process-xs-radius - 1)));
32
+ @process-xs-stroke: 2px;
33
+ @process-xs-icon-size: 12px;
34
+ @process-xs-icon-stroke: 2px;
35
+
36
+ .process {
37
+ position: relative;
38
+ margin: auto;
39
+ display: block;
40
+
41
+ svg {
42
+ width: 100%;
43
+ height: 100%;
44
+ }
45
+ }
46
+
47
+ .process-circle {
48
+ transform-origin: center center;
49
+ transition: stroke 1s 0.2s linear;
50
+ stroke: var(--color-content-accent);
51
+ stroke-opacity: 1;
52
+ stroke-linecap: round;
53
+ animation-duration: 1.5s;
54
+ animation-timing-function: ease-out;
55
+ animation-iteration-count: infinite;
56
+
57
+ .np-theme-personal & {
58
+ stroke: var(--color-content-primary);
59
+ }
60
+
61
+ .np-theme-personal--forest-green &,
62
+ .np-theme-personal--bright-green &,
63
+ .np-theme-personal--dark & {
64
+ stroke: var(--color-interactive-primary);
65
+ }
66
+ }
67
+
68
+ .process-inverse .process-circle {
69
+ stroke: var(--color-background-screen);
70
+ }
71
+
72
+ .process-icon-container {
73
+ position: absolute;
74
+ display: inline-block;
75
+ transform: rotate(45deg);
76
+ height: 50%;
77
+ width: 50%;
78
+ left: 25%;
79
+ top: 25%;
80
+ }
81
+
82
+ .process-icon-horizontal,
83
+ .process-icon-vertical {
84
+ position: absolute;
85
+ display: block;
86
+ width: 0;
87
+ height: 0;
88
+ }
89
+
90
+ .process-success {
91
+ .process-icon-horizontal {
92
+ background-color: var(--color-content-positive);
93
+ bottom: 0;
94
+ left: 0;
95
+
96
+ .np-theme-personal & {
97
+ background-color: var(--color-sentiment-positive);
98
+ }
99
+ }
100
+
101
+ .process-icon-vertical {
102
+ background-color: var(--color-content-positive);
103
+ top: 100%;
104
+ right: 0;
105
+
106
+ .np-theme-personal & {
107
+ background-color: var(--color-sentiment-positive);
108
+ }
109
+ }
110
+
111
+ .process-circle {
112
+ stroke: var(--color-content-positive);
113
+
114
+ .np-theme-personal & {
115
+ stroke: var(--color-sentiment-positive);
116
+ }
117
+ }
118
+ }
119
+
120
+ .process-danger {
121
+ .process-icon-horizontal {
122
+ background-color: var(--color-content-negative);
123
+ left: 0;
124
+
125
+ .np-theme-personal & {
126
+ background-color: var(--color-sentiment-negative);
127
+ }
128
+ }
129
+
130
+ .process-icon-vertical {
131
+ background-color: var(--color-content-negative);
132
+ top: 0;
133
+
134
+ .np-theme-personal & {
135
+ background-color: var(--color-sentiment-negative);
136
+ }
137
+ }
138
+
139
+ .process-circle {
140
+ stroke: var(--color-content-negative);
141
+
142
+ .np-theme-personal & {
143
+ stroke: var(--color-sentiment-negative);
144
+ }
145
+ }
146
+ }
147
+
148
+ .process-success,
149
+ .process-danger {
150
+ .process-circle {
151
+ animation-duration: 1.5s;
152
+ animation-delay: 1ms; // 1 ms delay prevents small glitch on webkit
153
+ animation-timing-function: ease-out;
154
+ animation-fill-mode: forwards;
155
+ animation-iteration-count: 1;
156
+ }
157
+
158
+ .process-icon-horizontal {
159
+ /* Animation over transition, to run once on load */
160
+ animation: process-width 0.3s 1.2s ease forwards;
161
+ }
162
+
163
+ .process-icon-vertical {
164
+ /* Animation over transition, to run once on load */
165
+ animation: process-height 0.3s 1.5s ease forwards;
166
+ }
167
+ }
168
+
169
+ .process-stopped {
170
+ .process-circle {
171
+ animation: none;
172
+ }
173
+
174
+ .process-icon-container {
175
+ display: none;
176
+ }
177
+ }
178
+
179
+ .process-size(@size, @circle-radius, @cirlce-circumference, @circle-stroke, @icon-size, @icon-stroke) {
180
+ .process-@{size} {
181
+ width: (@circle-radius * 2);
182
+ height: (@circle-radius * 2);
183
+
184
+ .process-circle {
185
+ /* Hide before animation to prevent glitching */
186
+ stroke-dashoffset: @cirlce-circumference;
187
+ stroke-dasharray: @cirlce-circumference;
188
+ stroke-width: @circle-stroke;
189
+ }
190
+
191
+ &.process-danger {
192
+ .process-icon-horizontal {
193
+ top: ((@icon-size - @icon-stroke) / 2);
194
+ height: @icon-stroke;
195
+ }
196
+
197
+ .process-icon-vertical {
198
+ left: ((@icon-size - @icon-stroke) / 2);
199
+ width: @icon-stroke;
200
+ }
201
+ }
202
+
203
+ .process-icon-horizontal,
204
+ .process-icon-vertical {
205
+ border-radius: (@icon-stroke / 2);
206
+ }
207
+
208
+ &.process-success {
209
+ .process-icon-container {
210
+ // TODO change to percentages so we don't need to redefine for different widths
211
+ width: ((@icon-size - @icon-stroke) / 2); // 20%
212
+ height: (@icon-size - @icon-stroke); // 42%
213
+ left: (3 * (@icon-size / 4)); // 40%
214
+ }
215
+
216
+ .process-icon-horizontal {
217
+ height: @icon-stroke;
218
+ }
219
+
220
+ .process-icon-vertical {
221
+ width: @icon-stroke;
222
+ }
223
+ }
224
+ }
225
+ }
226
+ .process-size(
227
+ xs, @process-xs-radius, @process-xs-circumference, @process-xs-stroke, @process-xs-icon-size, @process-xs-icon-stroke
228
+ );
229
+ .process-size(
230
+ sm, @process-sm-radius, @process-sm-circumference, @process-sm-stroke, @process-sm-icon-size, @process-sm-icon-stroke
231
+ );
232
+ .process-size(
233
+ xl, @process-xl-radius, @process-xl-circumference, @process-xl-stroke, @process-xl-icon-size, @process-xl-icon-stroke
234
+ );
235
+
236
+ .process-xs {
237
+ .process-circle {
238
+ animation-name: process-chase-circle-xs;
239
+ }
240
+
241
+ &.process-success,
242
+ &.process-danger {
243
+ .process-circle {
244
+ animation-name: process-success-circle-xs;
245
+ }
246
+ }
247
+ }
248
+
249
+ .process-sm {
250
+ .process-circle {
251
+ animation-name: process-chase-circle-sm;
252
+ }
253
+
254
+ &.process-success,
255
+ &.process-danger {
256
+ .process-circle {
257
+ animation-name: process-success-circle-sm;
258
+ }
259
+ }
260
+ }
261
+
262
+ .process-xl {
263
+ .process-circle {
264
+ animation-name: process-chase-circle-xl;
265
+ }
266
+
267
+ &.process-success,
268
+ &.process-danger {
269
+ .process-circle {
270
+ animation-name: process-success-circle-xl;
271
+ }
272
+ }
273
+ }
274
+
275
+ .complete-circle(@process-circumference) {
276
+ 0% {
277
+ transform: rotate(0deg);
278
+ stroke-dashoffset: (@process-circumference - 1);
279
+ stroke-dasharray: @process-circumference;
280
+ }
281
+
282
+ 100% {
283
+ transform: rotate(360deg);
284
+ stroke-dashoffset: 0;
285
+ stroke-dasharray: @process-circumference;
286
+ }
287
+ }
288
+
289
+ .chase-circle(@process-circumference) {
290
+ 0% {
291
+ transform: rotate(0deg);
292
+ stroke-dashoffset: ((3 * @process-circumference) - 1);
293
+ stroke-dasharray: @process-circumference;
294
+ }
295
+
296
+ 25% {
297
+ stroke-dashoffset: (@process-circumference - 1);
298
+ stroke-dasharray: (@process-circumference * 0.5);
299
+ }
300
+
301
+ 75% {
302
+ stroke-dashoffset: (@process-circumference - 1);
303
+ stroke-dasharray: (@process-circumference * 0.75);
304
+ }
305
+
306
+ 100% {
307
+ transform: rotate(360deg);
308
+ stroke-dashoffset: (@process-circumference - 1);
309
+ stroke-dasharray: @process-circumference;
310
+ }
311
+ }
312
+
313
+ @keyframes process-chase-circle-xs {
314
+ .chase-circle(@process-xs-circumference);
315
+ }
316
+
317
+ @keyframes process-success-circle-xs {
318
+ .complete-circle(@process-xs-circumference);
319
+ }
320
+
321
+ @keyframes process-chase-circle-sm {
322
+ .chase-circle(@process-sm-circumference);
323
+ }
324
+
325
+ @keyframes process-success-circle-sm {
326
+ .complete-circle(@process-sm-circumference);
327
+ }
328
+
329
+ @keyframes process-chase-circle-xl {
330
+ .chase-circle(@process-xl-circumference);
331
+ }
332
+
333
+ @keyframes process-success-circle-xl {
334
+ .complete-circle(@process-xl-circumference);
335
+ }
336
+
337
+ @keyframes process-width {
338
+ to {
339
+ width: 100%;
340
+ }
341
+ }
342
+
343
+ @keyframes process-height {
344
+ to {
345
+ top: 0;
346
+ height: 100%;
347
+ }
348
+ }
349
+
350
+ .btn .process:first-child {
351
+ .margin(left, -12px);
352
+
353
+ .margin(right, 12px);
354
+
355
+ .float(left);
356
+ }
357
+
358
+ .btn-block .process:first-child {
359
+ position: absolute;
360
+ }
361
+
362
+ .btn .process-circle {
363
+ transition: stroke 0.5s 0s linear;
364
+ }
365
+
366
+ .btn-primary,
367
+ .btn-success {
368
+ .process-circle {
369
+ stroke: #fff;
370
+ }
371
+
372
+ .process-icon-horizontal,
373
+ .process-icon-vertical {
374
+ background-color: #fff;
375
+ }
376
+ }
377
+
378
+ .btn:hover,
379
+ .btn:focus {
380
+ .process-circle {
381
+ stroke: #fff;
382
+ }
383
+
384
+ .process-icon-horizontal,
385
+ .process-icon-vertical {
386
+ background-color: #fff;
387
+ }
388
+ }
389
+
390
+ .btn[disabled] {
391
+ .process-icon-horizontal,
392
+ .process-icon-vertical {
393
+ background-color: #fff;
394
+ }
395
+ }
@@ -0,0 +1,70 @@
1
+ @import (reference) "../variables/neptune-tokens.less";
2
+ @import (reference) "./mixins/_logical-properties.less";
3
+
4
+ @progress-height: 2px;
5
+ @progress-pip-size: 8px;
6
+
7
+ .progress {
8
+ height: @progress-height;
9
+ margin-top: calc((var(--size-24) - @progress-height) / 2);
10
+ margin-bottom: calc((var(--size-24) - @progress-height) / 2);
11
+ background-color: var(--color-background-neutral);
12
+ border-radius: calc(@progress-height / 2);
13
+ }
14
+
15
+ .progress-bar {
16
+ .float(left);
17
+
18
+ width: 0%;
19
+ height: 100%;
20
+ font-size: var(--font-size-16);
21
+ font-weight: var(--font-weight-bold);
22
+ color: #fff;
23
+ .text-align(right);
24
+
25
+ background-color: var(--color-content-accent);
26
+ transition: width 0.6s ease;
27
+
28
+ &::after {
29
+ content: "";
30
+ .float(right);
31
+
32
+ margin-top: @progress-pip-size / 2 + 1;
33
+ .margin(right, @progress-pip-size / 2);
34
+
35
+ width: @progress-pip-size;
36
+ height: @progress-pip-size;
37
+ background-color: inherit;
38
+ border-radius: @progress-pip-size / 2;
39
+ }
40
+
41
+ &:first-child {
42
+ border-top-left-radius: @progress-height / 2;
43
+ border-bottom-left-radius: @progress-height / 2;
44
+ }
45
+
46
+ &:last-child {
47
+ border-top-right-radius: @progress-height / 2;
48
+ border-bottom-right-radius: @progress-height / 2;
49
+ }
50
+ }
51
+
52
+ .progress-bar-primary {
53
+ background-color: var(--color-content-primary);
54
+ }
55
+
56
+ .progress-bar-success {
57
+ background-color: var(--color-content-positive);
58
+ }
59
+
60
+ .progress-bar-info {
61
+ background-color: var(--color-content-accent);
62
+ }
63
+
64
+ .progress-bar-warning {
65
+ background-color: var(--color-content-warning);
66
+ }
67
+
68
+ .progress-bar-danger {
69
+ background-color: var(--color-content-negative);
70
+ }
@@ -0,0 +1,51 @@
1
+ :root {
2
+ --ring-outline-width: 2px;
3
+ --ring-outline-offset: 2px;
4
+ --ring-outline-color: var(--color-content-primary);
5
+
6
+ &.np-theme-personal,
7
+ & .np-theme-personal {
8
+ --ring-outline-color: var(--color-interactive-primary);
9
+ }
10
+ }
11
+
12
+ .ring() {
13
+ outline: var(--ring-outline-color) solid var(--ring-outline-width);
14
+ outline-offset: var(--ring-outline-offset);
15
+ }
16
+
17
+ .focus-ring {
18
+ &:focus {
19
+ outline: none;
20
+ }
21
+
22
+ &:focus-visible {
23
+ .ring();
24
+ }
25
+ }
26
+
27
+ details,
28
+ summary,
29
+ a,
30
+ button,
31
+ input,
32
+ option,
33
+ dialog,
34
+ input,
35
+ select,
36
+ textarea {
37
+ .focus-ring();
38
+ }
39
+
40
+ .ring-offset-0 {
41
+ --ring-outline-offset: 0;
42
+ }
43
+
44
+ .ring-inset {
45
+ --ring-outline-width: 3px;
46
+ --ring-outline-offset: calc(-1 * var(--ring-outline-width));
47
+ }
48
+
49
+ .ring-negative {
50
+ --ring-outline-color: var(--color-sentiment-negative);
51
+ }
@@ -0,0 +1,88 @@
1
+ @import (reference) "../variables/neptune-tokens.less";
2
+ @import (reference) "./mixins/_logical-properties.less";
3
+
4
+ // Used only by Angular tw-select component
5
+ // http://transferwise.github.io/styleguide-components/index.html#select
6
+ // React Select uses Select.less (`.np-select`) in components package
7
+ .tw-select {
8
+ .tw-icon {
9
+ display: inline-block;
10
+ .margin(right, var(--size-8));
11
+
12
+ margin-top: -2px;
13
+ vertical-align: middle;
14
+ }
15
+
16
+ .tw-dropdown-item {
17
+ &--clickable {
18
+ cursor: pointer;
19
+ }
20
+
21
+ &--divider {
22
+ border-bottom-style: solid;
23
+ border-bottom-width: 1px;
24
+ /* stylelint-disable-next-line declaration-block-no-redundant-longhand-properties */
25
+ border-bottom-color: var(--color-border-neutral);
26
+ }
27
+
28
+ &--focused {
29
+ background-color: var(--color-background-neutral);
30
+ }
31
+
32
+ .currency-flag {
33
+ .margin(right, var(--size-8));
34
+ }
35
+
36
+ > a {
37
+ white-space: normal;
38
+ }
39
+ }
40
+
41
+ .dropdown-toggle.btn-input {
42
+ &.btn-sm {
43
+ .padding(right, var(--size-32));
44
+ }
45
+
46
+ &.btn-md {
47
+ .padding(right, var(--size-40));
48
+ }
49
+
50
+ &.btn-lg {
51
+ .padding(right, var(--size-48));
52
+ }
53
+ }
54
+
55
+ // tw-chevron-down-icon - Angular component
56
+ .dropdown-toggle tw-chevron-down-icon > span { // stylelint-disable-line selector-type-no-unknown
57
+ .margin-shorthand(0);
58
+ }
59
+
60
+ // tw-icon - Angular component
61
+ .dropdown-toggle tw-icon span.tw-icon { // stylelint-disable-line selector-type-no-unknown
62
+ position: static;
63
+ display: inline-block;
64
+ }
65
+
66
+ .circle .tw-icon {
67
+ vertical-align: middle;
68
+ }
69
+ }
70
+
71
+ // open options in custom bottom sheet on mobile screens
72
+ @media (--screen-xs-max) {
73
+ .tw-select.dropdown-menu.dropdown-menu--open {
74
+ max-height: 50vh;
75
+ max-height: 50svh;
76
+ max-width: 100%;
77
+ opacity: 1;
78
+ overflow: auto;
79
+ position: static;
80
+ transform: none;
81
+ visibility: visible;
82
+ width: 100% !important;
83
+ }
84
+ }
85
+
86
+ .tw-select-filter {
87
+ border: 0;
88
+ }