@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,714 @@
1
+ @import (reference) "../variables/neptune-tokens.less";
2
+ @import (reference) "../variables/legacy-variables.less";
3
+ @import "./mixins/_buttons.less";
4
+ @import "./mixins/_tab-focus.less";
5
+ @import "./mixins/_links.less";
6
+ @import (reference) "./mixins/_logical-properties.less";
7
+ @import (reference) "./core/_typography.less";
8
+ @import (reference) "./ring.less";
9
+
10
+ .btn {
11
+ .np-text-body-large-bold;
12
+
13
+ display: inline-block;
14
+ margin-bottom: 0;
15
+ text-align: center;
16
+ vertical-align: middle;
17
+ touch-action: manipulation;
18
+ cursor: pointer;
19
+ // @TODO Remove?
20
+ // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
21
+ background-image: none;
22
+ border: 1px solid transparent;
23
+ white-space: nowrap;
24
+ padding-bottom: 10px;
25
+ font-weight: var(--font-weight-semi-bold);
26
+
27
+ .button-size(
28
+ var(--btn-padding);
29
+ var(--font-size-16);
30
+ var(--line-height-24);
31
+ var(--btn-radius-base);
32
+ @btn-height
33
+ );
34
+
35
+ .np-theme-personal & {
36
+ font-size: @btn-font-size;
37
+ line-height: @btn-line-height;
38
+ }
39
+
40
+ user-select: none;
41
+
42
+ &:not(.disabled, :disabled, .np-dropdown-toggle):focus-visible,
43
+ &:not(.disabled, :disabled, .np-dropdown-toggle).focus {
44
+ &.btn-negative {
45
+ .np-theme-personal & {
46
+ outline-color: var(--color-sentiment-negative);
47
+ }
48
+
49
+ .np-theme-personal .critical-comms--cta & {
50
+ outline-color: var(--color-contrast);
51
+ }
52
+ }
53
+ }
54
+
55
+ &:not(.disabled, :disabled, .np-dropdown-toggle) {
56
+ &.btn-negative {
57
+ .np-theme-personal .critical-comms--cta & {
58
+ border: none;
59
+ }
60
+ }
61
+ }
62
+
63
+ &.btn-negative:not(.disabled, :disabled, .np-dropdown-toggle) {
64
+ &:focus,
65
+ &.focus {
66
+ .np-theme-personal & {
67
+ outline-color: var(--color-sentiment-negative);
68
+ }
69
+ }
70
+ }
71
+
72
+ &:not(.disabled, :disabled):hover {
73
+ color: var(--color-interactive-accent-hover);
74
+ text-decoration: none;
75
+ }
76
+
77
+ &.disabled,
78
+ &[disabled],
79
+ fieldset[disabled] & {
80
+ outline: none;
81
+ box-shadow: none;
82
+ }
83
+
84
+ a& {
85
+ &.disabled,
86
+ fieldset[disabled] & {
87
+ pointer-events: none;
88
+ }
89
+ }
90
+ }
91
+
92
+ // Button variants
93
+
94
+ // @TODO Deprecate / Remove
95
+ .btn-default {
96
+ .button-variant(
97
+ var(--color-content-accent);
98
+ #FFF;
99
+ transparent;
100
+ var(--color-interactive-accent-hover);
101
+ var(--color-interactive-accent-active);
102
+ var(--color-interactive-accent);
103
+ var(--color-interactive-accent-hover);
104
+ var(--color-interactive-accent-active);
105
+ #FFF
106
+ );
107
+ .np-theme-personal & {
108
+ .button-variant(
109
+ var(--color-interactive-control);
110
+ var(--color-interactive-control);
111
+ var(--color-interactive-accent);
112
+ var(--color-interactive-accent-hover);
113
+ var(--color-interactive-accent-active);
114
+ var(--color-interactive-accent);
115
+ var(--color-interactive-accent-hover);
116
+ var(--color-interactive-accent-active);
117
+ var(--color-interactive-accent-hover);
118
+ var(--color-interactive-control);
119
+ );
120
+
121
+ &.btn-priority-2 {
122
+ .button-variant(
123
+ var(--color-interactive-primary);
124
+ var(--color-interactive-control);
125
+ transparent;
126
+ var(--color-interactive-accent-hover);
127
+ var(--color-interactive-accent-active);
128
+ var(--color-interactive-primary);
129
+ var(--color-interactive-accent-hover);
130
+ var(--color-interactive-accent-active);
131
+ transparent;
132
+ var(--color-interactive-control);
133
+ );
134
+ }
135
+ }
136
+ }
137
+
138
+ // @DEPRECATED: .btn-primary (use Button component with type Accent)
139
+ .btn-accent,
140
+ .btn-primary {
141
+ .button-variant(
142
+ #fff;
143
+ #fff;
144
+ var(--color-interactive-accent);
145
+ var(--color-interactive-accent-hover);
146
+ var(--color-interactive-accent-active);
147
+ var(--color-interactive-accent);
148
+ var(--color-interactive-accent-hover);
149
+ var(--color-interactive-accent-active);
150
+ );
151
+
152
+ &.btn-priority-2 {
153
+ .button-variant(
154
+ var(--color-interactive-accent);
155
+ #fff;
156
+ transparent;
157
+ var(--color-interactive-accent-hover);
158
+ var(--color-interactive-accent-active);
159
+ var(--color-interactive-accent);
160
+ var(--color-interactive-accent-hover);
161
+ var(--color-interactive-accent-active);
162
+ var(--color-background-screen);
163
+ #fff;
164
+ );
165
+ }
166
+
167
+ .np-theme-personal & {
168
+ .button-variant(
169
+ var(--color-interactive-control);
170
+ var(--color-interactive-control);
171
+ var(--color-interactive-accent);
172
+ var(--color-interactive-accent-hover);
173
+ var(--color-interactive-accent-active);
174
+ var(--color-interactive-accent);
175
+ var(--color-interactive-accent-hover);
176
+ var(--color-interactive-accent-active);
177
+ var(--color-interactive-accent-hover);
178
+ var(--color-interactive-control);
179
+ );
180
+
181
+ &.btn-priority-2 {
182
+ .button-variant(
183
+ var(--color-interactive-primary);
184
+ var(--color-interactive-control);
185
+ transparent;
186
+ var(--color-interactive-accent-hover);
187
+ var(--color-interactive-accent-active);
188
+ var(--color-interactive-primary);
189
+ var(--color-interactive-accent-hover);
190
+ var(--color-interactive-accent-active);
191
+ transparent;
192
+ var(--color-interactive-control);
193
+ );
194
+ }
195
+ }
196
+ }
197
+
198
+ // @DEPRECATED:.btn-link (use Button component with type Accent / priority Tertiary)
199
+ .btn-link,
200
+ .btn-accent:not(.disabled, :disabled).btn-priority-3 {
201
+ color: var(--color-content-accent);
202
+ text-decoration: @link-decoration;
203
+ border-color: transparent;
204
+
205
+ &,
206
+ &:not(.disabled, :disabled):active,
207
+ &:not(.disabled, :disabled).active,
208
+ &[disabled],
209
+ fieldset[disabled] & {
210
+ background-color: transparent;
211
+ }
212
+
213
+ &:not(.disabled, :disabled):hover,
214
+ &:not(.disabled, :disabled):focus-visible {
215
+ color: var(--color-content-accent-hover);
216
+ text-decoration: @link-decoration;
217
+ border-color: transparent;
218
+ background-color: transparent;
219
+ }
220
+
221
+ &:not(.disabled, :disabled):active {
222
+ color: var(--color-content-accent-active);
223
+ }
224
+
225
+ .np-theme-personal & {
226
+ color: var(--color-interactive-primary);
227
+ border-color: transparent;
228
+ text-decoration-thickness: 2px;
229
+ .link-underline();
230
+
231
+ &:not(.disabled, :disabled):hover,
232
+ &:not(.disabled, :disabled):focus-visible {
233
+ color: var(--color-interactive-primary-hover);
234
+ border-color: transparent;
235
+ text-decoration-thickness: 2px;
236
+ }
237
+
238
+ &:not(.disabled, :disabled):active {
239
+ text-decoration-thickness: 2px;
240
+ color: var(--color-interactive-primary-active);
241
+ background-color: var(--color-background-screen-active) !important;
242
+ }
243
+ }
244
+ }
245
+
246
+ .btn-accent.disabled.btn-priority-3,
247
+ .btn-accent.btn-priority-3:disabled {
248
+ background: transparent;
249
+ border-color: transparent;
250
+ color: var(--color-content-accent);
251
+ text-decoration: underline;
252
+
253
+ .np-theme-personal & {
254
+ text-decoration-thickness: 2px;
255
+ .link-underline();
256
+ }
257
+ }
258
+
259
+ // @DEPRECATED:.btn-success (use Button component with type Positive)
260
+ .btn-positive,
261
+ .btn-success {
262
+ .button-variant(
263
+ #fff;
264
+ #fff;
265
+ var(--color-interactive-positive);
266
+ var(--color-interactive-positive-hover);
267
+ var(--color-interactive-positive-active);
268
+ var(--color-interactive-positive);
269
+ var(--color-interactive-positive-hover);
270
+ var(--color-interactive-positive-active);
271
+ );
272
+
273
+ &.btn-priority-2 {
274
+ .button-variant(
275
+ var(--color-interactive-positive);
276
+ #fff;
277
+ transparent;
278
+ var(--color-interactive-positive-hover);
279
+ var(--color-interactive-positive-active);
280
+ var(--color-interactive-positive);
281
+ var(--color-interactive-positive-hover);
282
+ var(--color-interactive-positive-active);
283
+ var(--color-background-screen);
284
+ #fff;
285
+ );
286
+ }
287
+
288
+ .np-theme-personal & {
289
+ .button-variant(
290
+ var(--color-interactive-control);
291
+ var(--color-interactive-control);
292
+ var(--color-interactive-accent);
293
+ var(--color-interactive-accent-hover);
294
+ var(--color-interactive-accent-active);
295
+ var(--color-interactive-accent);
296
+ var(--color-interactive-accent);
297
+ var(--color-interactive-accent);
298
+ var(--color-interactive-accent-hover);
299
+ var(--color-interactive-control);
300
+ );
301
+
302
+ &.btn-priority-2 {
303
+ .button-variant(
304
+ var(--color-interactive-primary);
305
+ var(--color-interactive-control);
306
+ transparent;
307
+ var(--color-interactive-accent-hover);
308
+ var(--color-interactive-accent-active);
309
+ var(--color-interactive-primary);
310
+ var(--color-interactive-accent-hover);
311
+ var(--color-interactive-accent-active);
312
+ transparent;
313
+ var(--color-interactive-control);
314
+ );
315
+ }
316
+ }
317
+ }
318
+
319
+ // @TODO Deprecate / Remove
320
+ .btn-info {
321
+ .button-variant(
322
+ @btn-info-color;
323
+ #FFF;
324
+ @btn-info-bg;
325
+ @btn-info-bg-hover;
326
+ @btn-info-bg-active;
327
+ @btn-info-border;
328
+ @btn-info-border-hover;
329
+ @btn-info-border-active;
330
+ #FFF
331
+ );
332
+ }
333
+
334
+ // @TODO Deprecate / Remove
335
+ .btn-warning {
336
+ .button-variant(
337
+ @btn-warning-color;
338
+ #FFF;
339
+ @btn-warning-bg;
340
+ @btn-warning-bg-hover;
341
+ @btn-warning-bg-active;
342
+ @btn-warning-border;
343
+ @btn-warning-border-hover;
344
+ @btn-warning-border-active;
345
+ #FFF
346
+ );
347
+ }
348
+
349
+ // @DEPRECATED: .btn-danger (use Button component with type Negative)
350
+ .btn-danger,
351
+ .btn-negative {
352
+ .button-variant(
353
+ #fff;
354
+ #fff;
355
+ var(--color-interactive-negative);
356
+ var(--color-interactive-negative-hover);
357
+ var(--color-interactive-negative-active);
358
+ var(--color-interactive-negative);
359
+ var(--color-interactive-negative-hover);
360
+ var(--color-interactive-negative-active);
361
+ );
362
+
363
+ &.btn-priority-2 {
364
+ .button-variant(
365
+ var(--color-interactive-negative);
366
+ #fff;
367
+ transparent;
368
+ var(--color-interactive-negative-hover);
369
+ var(--color-interactive-negative-active);
370
+ var(--color-interactive-negative);
371
+ var(--color-interactive-negative-hover);
372
+ var(--color-interactive-negative-active);
373
+ var(--color-background-screen);
374
+ #fff;
375
+ );
376
+ }
377
+
378
+ .np-theme-personal & {
379
+ .button-variant(
380
+ var(--color-contrast);
381
+ var(--color-contrast);
382
+ var(--color-sentiment-negative);
383
+ var(--color-sentiment-negative-hover);
384
+ var(--color-sentiment-negative-active);
385
+ var(--color-sentiment-negative);
386
+ var(--color-sentiment-negative-hover);
387
+ var(--color-sentiment-negative-active);
388
+ var(--color-sentiment-negative);
389
+ var(--color-contrast);
390
+ );
391
+
392
+ &.btn-priority-2 {
393
+ .button-variant(
394
+ var(--color-sentiment-negative);
395
+ var(--color-contrast);
396
+ transparent;
397
+ var(--color-sentiment-negative-hover);
398
+ var(--color-sentiment-negative-active);
399
+ var(--color-sentiment-negative);
400
+ var(--color-sentiment-negative-hover);
401
+ var(--color-sentiment-negative-active);
402
+ transparent;
403
+ var(--color-contrast);
404
+ );
405
+ }
406
+ }
407
+ }
408
+
409
+ // @TODO Deprecate / Remove
410
+ .bootstrap-select .btn-default,
411
+ .btn-input {
412
+ .button-variant(
413
+ var(--color-content-primary);
414
+ var(--color-content-primary);
415
+ var(--color-background-screen);
416
+ var(--color-background-screen);
417
+ var(--color-background-screen);
418
+ var(--color-interactive-secondary);
419
+ var(--color-interactive-secondary-hover);
420
+ var(--color-interactive-secondary-active);
421
+ );
422
+ }
423
+
424
+ // @TODO Deprecate / Remove
425
+ .btn-image {
426
+ background-color: @brand-grey-plus-10;
427
+ background-color: rgba(255, 255, 255, 0.4);
428
+ color: @brand-white;
429
+
430
+ &:not(.disabled, :disabled):hover,
431
+ &:not(.disabled, :disabled):focus-visible {
432
+ background-color: @brand-grey-plus-10;
433
+ background-color: rgba(24, 33, 56, 0.56);
434
+ }
435
+
436
+ &:not(.disabled, :disabled):active,
437
+ &:not(.disabled, :disabled):hover:active {
438
+ background: @brand-grey-minus-20;
439
+ }
440
+ }
441
+
442
+ .btn-input .caret {
443
+ .margin(left, var(--size-8));
444
+ }
445
+
446
+ // @TODO Deprecate / Remove
447
+ .btn-inverse {
448
+ .button-outline(
449
+ #fff;
450
+ #e2e6e8;
451
+ #5d7079;
452
+ );
453
+ }
454
+
455
+ // Sizes
456
+ .btn-lg {
457
+ .button-size(
458
+ var(--btn-lg-padding);
459
+ var(--font-size-18);
460
+ var(--line-height-28);
461
+ var(--btn-lg-radius-base);
462
+ @btn-lg-height
463
+ );
464
+
465
+ .np-theme-personal & {
466
+ font-size: @btn-lg-font-size;
467
+ line-height: @btn-lg-line-height;
468
+ }
469
+
470
+ .btn-loader {
471
+ margin-top: 2px;
472
+ }
473
+ }
474
+
475
+ .btn-sm,
476
+ .navbar .btn {
477
+ .button-size(
478
+ var(--btn-sm-padding);
479
+ var(--font-size-14);
480
+ var(--line-height-22);
481
+ var(--btn-sm-radius-base);
482
+ @btn-sm-height
483
+ );
484
+
485
+ .np-theme-personal & {
486
+ font-size: @btn-sm-font-size;
487
+ line-height: @btn-sm-line-height;
488
+ }
489
+ }
490
+
491
+ .btn-xs {
492
+ .button-size(
493
+ var(--btn-xs-padding);
494
+ var(--font-size-12);
495
+ var(--line-height-20);
496
+ var(--btn-sm-radius-base);
497
+ @btn-xs-height
498
+ );
499
+
500
+ .np-theme-personal & {
501
+ font-size: @btn-xs-font-size;
502
+ line-height: @btn-xs-line-height;
503
+
504
+ .btn-loader {
505
+ margin-left: calc(var(--padding-x-small) / 2) !important;
506
+ height: @btn-xs-line-height;
507
+ background-size: @btn-xs-font-size @btn-xs-font-size !important;
508
+ }
509
+ }
510
+ }
511
+
512
+ @media (max-width: (@grid-float-breakpoint - 1px)) {
513
+ .navbar-collapse .btn {
514
+ .button-size(
515
+ var(--btn-padding);
516
+ var(--font-size-16);
517
+ var(--line-height-24);
518
+ var(border-radius-base);
519
+ @btn-height
520
+ );
521
+
522
+ .np-theme-personal & {
523
+ font-size: @btn-font-size;
524
+ line-height: @btn-line-height;
525
+
526
+ max-height: @btn-height;
527
+ }
528
+ }
529
+ }
530
+
531
+ .btn-block {
532
+ display: block;
533
+ width: 100%;
534
+ }
535
+
536
+ // Vertically space out multiple block buttons
537
+ .btn-block + .btn-block {
538
+ margin-top: 8px;
539
+ }
540
+
541
+ input[type="submit"],
542
+ input[type="reset"],
543
+ input[type="button"] {
544
+ &.btn-block {
545
+ width: 100%;
546
+ }
547
+ }
548
+
549
+ // @TODO Deprecate / Remove
550
+ .btn-input {
551
+ font-weight: var(--font-weight-regular);
552
+ .padding(left, @padding-base-horizontal);
553
+
554
+ .padding(right, @padding-base-horizontal);
555
+
556
+ &:not(.disabled, :disabled):hover {
557
+ border-color: var(--color-interactive-secondary-hover);
558
+ }
559
+
560
+ &:not(.disabled, :disabled).active,
561
+ &:not(.disabled, :disabled):active,
562
+ &:not(.disabled, :disabled).focus,
563
+ &:not(.disabled, :disabled):focus-visible {
564
+ border-color: var(--color-interactive-accent-active);
565
+ outline: 0 none !important;
566
+
567
+ .np-theme-personal & {
568
+ border-color: var(--color-interactive-secondary-active);
569
+ }
570
+ }
571
+
572
+ // stylelint-disable-next-line no-duplicate-selectors
573
+ .caret {
574
+ color: var(--color-content-accent);
575
+ }
576
+
577
+ &.btn-sm {
578
+ .padding(left, 12px);
579
+
580
+ .padding(right, 12px);
581
+ }
582
+
583
+ &.btn-lg {
584
+ font-size: var(--font-size-20);
585
+
586
+ &.btn-addon,
587
+ &.btn-input-inverse {
588
+ font-weight: var(--font-weight-semi-bold);
589
+ }
590
+ }
591
+ }
592
+
593
+ // @TODO Deprecate / Remove
594
+ // input-inverse is deprecated, remove after styleguide-components updated
595
+ .btn-input-inverse {
596
+ --color-content-primary: @color-navy-content-primary;
597
+ --color-content-accent: @color-navy-content-accent;
598
+ }
599
+
600
+ .btn-input-inverse,
601
+ .btn-addon {
602
+ .button-variant(
603
+ @color-navy-content-primary;
604
+ @color-navy-content-primary;
605
+ @color-navy-background-screen;
606
+ @color-navy-background-screen;
607
+ @color-navy-background-screen;
608
+ @color-navy-background-elevated;
609
+ @color-navy-background-screen;
610
+ @color-navy-background-screen;
611
+ var(--color-background-screen);
612
+ );
613
+ }
614
+
615
+ // @TODO Deprecate / Remove
616
+ // Remove bootstrap-select rules after checking tw-currency-select
617
+ .form-group-sm {
618
+ .bootstrap-select .btn-default {
619
+ padding: @padding-small-vertical @padding-small-horizontal;
620
+ }
621
+ }
622
+
623
+ .form-group-lg {
624
+ .bootstrap-select .btn-default {
625
+ padding: @padding-large-vertical @padding-large-horizontal;
626
+ }
627
+ }
628
+ // @TODO Deprecate / Remove
629
+ .bootstrap-select.open > .dropdown-toggle.btn-default {
630
+ border-color: var(--color-interactive-accent);
631
+ background-color: var(--color-background-screen);
632
+ color: var(--color-content-primary);
633
+ }
634
+
635
+ .btn-loader {
636
+ display: inline-block;
637
+ height: 24px;
638
+ width: 24px;
639
+ margin-bottom: -8px;
640
+ background-repeat: no-repeat;
641
+ background-position: center;
642
+ background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PHN2ZyB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sbnM6c2tldGNoPSJodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2gvbnMiPiAgICAgICAgPHRpdGxlPlNwaW5uZXI8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4gICAgPGRlZnM+ICAgICAgICA8bGluZWFyR3JhZGllbnQgeDE9IjUwJSIgeTE9IjkuMjA1NjQzNzklIiB4Mj0iMTAwJSIgeTI9IjIwLjc0NzEwMDclIiBpZD0ibGluZWFyR3JhZGllbnQtMSI+ICAgICAgICAgICAgPHN0b3Agc3RvcC1jb2xvcj0iI0E4QUFBQyIgb2Zmc2V0PSIwJSI+PC9zdG9wPiAgICAgICAgICAgIDxzdG9wIHN0b3AtY29sb3I9IiNBOEFBQUMiIHN0b3Atb3BhY2l0eT0iMCIgb2Zmc2V0PSIxMDAlIj48L3N0b3A+ICAgICAgICA8L2xpbmVhckdyYWRpZW50PiAgICA8L2RlZnM+ICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHNrZXRjaDp0eXBlPSJNU1BhZ2UiPiAgICAgICAgPGcgaWQ9IlNwaW5uZXIiIHNrZXRjaDp0eXBlPSJNU0FydGJvYXJkR3JvdXAiIGZpbGw9InVybCgjbGluZWFyR3JhZGllbnQtMSkiPiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMiwyNCBDNS4zNzI1ODMsMjQgMCwxOC42Mjc0MTcgMCwxMiBDMCw1LjM3MjU4MyA1LjM3MjU4MywwIDEyLDAgTDEyLDIgQzYuNDc3MTUyNSwyIDIsNi40NzcxNTI1IDIsMTIgQzIsMTcuNTIyODQ3NSA2LjQ3NzE1MjUsMjIgMTIsMjIgQzE3LjUyMjg0NzUsMjIgMjIsMTcuNTIyODQ3NSAyMiwxMiBMMjQsMTIgQzI0LDE4LjYyNzQxNyAxOC42Mjc0MTcsMjQgMTIsMjQgWiIgaWQ9InNwaW4iIHNrZXRjaDp0eXBlPSJNU1NoYXBlR3JvdXAiPjwvcGF0aD4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==");
643
+ animation: rotating 0.4s linear infinite;
644
+ }
645
+
646
+ .np-theme-personal {
647
+ .btn-loading {
648
+ &:not(.btn-block) {
649
+ display: inline-flex;
650
+ align-items: center;
651
+
652
+ .btn-loader {
653
+ margin-bottom: 0;
654
+ }
655
+ }
656
+
657
+ &.btn-block .btn-loader {
658
+ top: 0;
659
+ bottom: 0;
660
+ margin-top: auto;
661
+ margin-bottom: auto;
662
+ }
663
+ }
664
+ }
665
+
666
+ .btn-sm {
667
+ .btn-loader {
668
+ background-size: 16px 16px;
669
+
670
+ .np-theme-personal & {
671
+ margin-left: calc(var(--padding-small) / 2) !important;
672
+ }
673
+ }
674
+ }
675
+
676
+ @keyframes rotating {
677
+ from {
678
+ transform: rotate(0deg);
679
+ }
680
+
681
+ to {
682
+ transform: rotate(360deg);
683
+ }
684
+ }
685
+
686
+ .btn-input.btn {
687
+ .text-align(left);
688
+
689
+ .tw-icon {
690
+ position: absolute;
691
+ .right(var(--size-16));
692
+
693
+ &:not(.tw-chevron, .tw-icon-chevron-down) {
694
+ position: initial;
695
+ }
696
+
697
+ top: var(--size-16);
698
+ }
699
+
700
+ &.btn-sm .tw-icon {
701
+ .right(var(--size-8));
702
+
703
+ top: var(--size-8);
704
+ }
705
+
706
+ &.btn-lg .tw-icon {
707
+ top: 27px;
708
+ }
709
+ }
710
+
711
+ // stylelint-disable-next-line no-duplicate-selectors
712
+ a.btn {
713
+ text-decoration: none;
714
+ }