@transferwise/neptune-css 0.0.0-experimental-d7e426f → 0.0.0-experimental-5cb94bb

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@transferwise/neptune-css",
3
3
  "description": "Neptune CSS library",
4
- "version": "0.0.0-experimental-d7e426f",
4
+ "version": "0.0.0-experimental-5cb94bb",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",
@@ -1,6 +1,6 @@
1
1
  /* See: https://github.com/fontsource/fontsource/blob/main/fonts/google/inter/variable.css */
2
2
 
3
- @import "fonts/_fonts-en";
3
+ @import "fonts/_fonts-base";
4
4
  @import "fonts/_fonts-ar";
5
5
  @import "fonts/_fonts-he";
6
6
  @import "fonts/_fonts-ja";
@@ -37,7 +37,7 @@
37
37
  }
38
38
 
39
39
  .np-theme-personal {
40
- font-family: var(--font-family-regular);
40
+ font-family: var(--wds-font-family-regular);
41
41
  font-feature-settings: "calt";
42
42
 
43
43
  --input-group-addon-padding: @padding-large-vertical @padding-base-horizontal;
@@ -68,7 +68,7 @@
68
68
 
69
69
  html {
70
70
  font-size: var(--base-font-size);
71
- font-family: var(--font-family-regular);
71
+ font-family: var(--wds-font-family-regular);
72
72
  color: var(--color-content-secondary);
73
73
  background-color: var(--color-background-screen);
74
74
  -webkit-font-smoothing: antialiased;
@@ -221,11 +221,11 @@ ul {
221
221
 
222
222
  dt,
223
223
  dd {
224
- line-height: var(--line-height-body);
224
+ line-height: var(--wds-line-height-body-large);
225
225
  }
226
226
 
227
227
  dt {
228
- font-size: var(--font-size-14);
228
+ font-size: var(--wds-font-size-body);
229
229
  }
230
230
 
231
231
  dd {
@@ -145,15 +145,15 @@
145
145
  }
146
146
 
147
147
  .font-weight-bold {
148
- font-weight: var(--font-weight-bold) !important;
148
+ font-weight: var(--wds-font-weight-title-screen) !important;
149
149
  }
150
150
 
151
151
  .font-weight-semi-bold {
152
- font-weight: var(--font-weight-semi-bold) !important;
152
+ font-weight: var(--wds-font-weight-title-group) !important;
153
153
  }
154
154
 
155
155
  .font-weight-normal {
156
- font-weight: var(--font-weight-regular) !important;
156
+ font-weight: var(--wds-font-weight-body-regular) !important;
157
157
  }
158
158
 
159
159
  .font-italic {
@@ -6,7 +6,7 @@
6
6
 
7
7
  // TITLE
8
8
 
9
- /* DEPRECATED: use .np-text-*-title instead */
9
+ /* DEPRECATED: use `.wds-text-*` instead */
10
10
  /* stylelint-disable-next-line selector-list-comma-newline-after */
11
11
  .h1,
12
12
  .h2,
@@ -32,8 +32,6 @@ h6,
32
32
  .np-text-title-group {
33
33
  margin: 0;
34
34
  color: var(--color-content-primary);
35
- line-height: var(--line-height-title);
36
- letter-spacing: 0;
37
35
  .np-text-hyphenated;
38
36
 
39
37
  + p,
@@ -43,86 +41,76 @@ h6,
43
41
  }
44
42
  }
45
43
 
46
- /* DEPRECATED: use .np-text-title-screen instead */
44
+ /* DEPRECATED: use `.wds-text-title-screen` instead */
47
45
  /* stylelint-disable-next-line selector-list-comma-newline-after */
48
46
  .h1,
49
47
  .title-1,
50
48
  h1,
51
- .np-text-title-screen {
49
+ .np-text-title-screen,
50
+ .wds-text-title-screen {
51
+ &:extend(.wds-text-title-screen);
52
52
  margin-bottom: initial;
53
- font-size: var(--font-size-30);
54
- font-weight: var(--font-weight-semi-bold);
55
- letter-spacing: -0.021em;
56
- line-height: 115%;
57
53
  }
58
54
 
59
- /* DEPRECATED: use .np-text-title-section instead */
55
+ /* DEPRECATED: use `.wds-text-title-section` instead */
60
56
  /* stylelint-disable-next-line selector-list-comma-newline-after */
61
57
  .h2,
62
58
  .title-2,
63
59
  h2,
64
- .np-text-title-section {
60
+ .np-text-title-section,
61
+ .wds-text-title-section {
62
+ &:extend(.wds-text-title-section);
65
63
  margin-bottom: initial;
66
- font-weight: var(--font-weight-semi-bold);
67
- font-size: var(--font-size-26);
68
- letter-spacing: -0.02em;
69
- line-height: 122%;
70
64
  }
71
65
 
72
- /* DEPRECATED: use .np-text-title-subsection instead */
66
+ /* DEPRECATED: use `.wds-text-title-subsection` instead */
73
67
  /* stylelint-disable-next-line selector-list-comma-newline-after */
74
68
  .h3,
75
69
  .title-3,
76
70
  h3,
77
- .np-text-title-subsection {
71
+ .np-text-title-subsection,
72
+ .wds-text-title-subsection {
73
+ &:extend(.wds-text-title-subsection);
78
74
  margin-bottom: initial;
79
- font-size: var(--font-size-22);
80
- font-weight: var(--font-weight-semi-bold);
81
- letter-spacing: -0.018em;
82
- line-height: 125%;
83
75
  }
84
76
 
85
- /* DEPRECATED: use .np-text-title-body instead */
77
+ /* DEPRECATED: use `.wds-text-title-body` instead */
86
78
  /* stylelint-disable-next-line selector-list-comma-newline-after */
87
79
  .h4,
88
80
  .title-4,
89
81
  h4,
90
- .np-text-title-body {
91
- font-size: var(--font-size-18);
92
- font-weight: var(--font-weight-semi-bold);
93
- letter-spacing: -0.014em;
94
- line-height: 135%;
82
+ .np-text-title-body,
83
+ .wds-text-title-body {
84
+ &:extend(.wds-text-title-body);
95
85
  }
96
86
 
97
- /* DEPRECATED: use .np-text-title-group instead */
87
+ /* DEPRECATED: use `.wds-text-title-group` instead */
98
88
  /* stylelint-disable-next-line selector-list-comma-newline-after */
99
89
  .h5,
100
90
  .h6,
101
91
  .title-5,
102
92
  h5,
103
93
  h6,
104
- .np-text-title-group {
105
- font-weight: var(--font-weight-medium);
106
- font-size: var(--font-size-14);
107
- letter-spacing: -0.006em;
108
- line-height: 140%;
94
+ .np-text-title-group,
95
+ .wds-text-title-group {
96
+ &:extend(.wds-text-title-group);
109
97
  }
110
98
 
111
- /* DEPRECATED: use .np-text-title-body instead */
99
+ /* DEPRECATED: use `.wds-text-title-body` instead */
112
100
  .lead {
113
101
  margin-bottom: var(--size-24);
114
- font-size: var(--font-size-20);
115
- line-height: var(--line-height-title);
102
+ font-size: var(--wds-font-size-title-body);
103
+ line-height: var(--wds-line-height-title-body);
116
104
  }
117
105
 
118
- // DEPRECATED: use .np-text-body-default instead
106
+ // DEPRECATED: use `.wds-text-body-default` instead
119
107
  .tiny {
120
108
  color: var(--color-content-secondary);
121
109
  }
122
110
 
123
111
  // BODY
124
112
 
125
- /* DEPRECATED: use .np-text-body-default instead */
113
+ /* DEPRECATED: use `.wds-text-body-default` instead */
126
114
  /* stylelint-disable-next-line selector-list-comma-newline-after */
127
115
  .body-2,
128
116
  .body-3,
@@ -130,49 +118,41 @@ h6,
130
118
  .tiny,
131
119
  body,
132
120
  small,
133
- .np-text-body-default {
134
- font-size: var(--font-size-14);
135
- line-height: 155%;
136
- letter-spacing: -0.006em;
137
- font-weight: var(--font-weight-regular);
121
+ .np-text-body-default,
122
+ .wds-text-body-default {
123
+ &:extend(.wds-text-body-default);
138
124
  .np-text-hyphenated;
139
125
  }
140
126
 
141
- /* DEPRECATED: use .np-text-body-default-bold instead */
127
+ /* DEPRECATED: use `.wds-text-body-default-bold` instead */
142
128
  /* stylelint-disable-next-line selector-list-comma-newline-after */
143
129
  .control-2,
144
130
 
145
131
  // DEPRECATED: use `Field` component (or in some edge cases `Label` component) instead
146
132
  .label, .control-label,
147
133
 
148
- .np-text-body-default-bold {
149
- font-size: var(--font-size-14);
150
- line-height: 155%;
151
- letter-spacing: -0.006em;
152
- font-weight: var(--font-weight-semi-bold);
134
+ .np-text-body-default-bold,
135
+ .wds-text-body-default-bold {
136
+ &:extend(.wds-text-body-default-bold);
153
137
  .np-text-hyphenated;
154
138
  }
155
139
 
156
- /* DEPRECATED: use .np-text-body-large instead */
140
+ /* DEPRECATED: use `.wds-text-body-large` instead */
157
141
  /* stylelint-disable-next-line selector-list-comma-newline-after */
158
142
  .body-1,
159
143
  .value,
160
- .np-text-body-large {
161
- font-weight: var(--font-weight-regular);
162
- font-size: var(--font-size-16);
163
- line-height: 150%;
164
- letter-spacing: -0.011em;
144
+ .np-text-body-large,
145
+ .wds-text-body-large {
146
+ &:extend(.wds-text-body-large);
165
147
  .np-text-hyphenated;
166
148
  }
167
149
 
168
- /* DEPRECATED: use np-text-body-large-bold instead */
150
+ /* DEPRECATED: use `.wds-text-body-large-bold` instead */
169
151
  /* stylelint-disable-next-line selector-list-comma-newline-after */
170
152
  .control-1,
171
- .np-text-body-large-bold {
172
- font-weight: var(--font-weight-semi-bold);
173
- font-size: var(--font-size-16);
174
- line-height: 150%;
175
- letter-spacing: -0.011em;
153
+ .np-text-body-large-bold,
154
+ .wds-text-body-large-bold {
155
+ &:extend(.wds-text-body-large-bold);
176
156
  .np-text-hyphenated;
177
157
  }
178
158
 
@@ -181,37 +161,43 @@ small,
181
161
  a,
182
162
  .np-text-link-default,
183
163
  .np-text-link-large {
184
- font-weight: var(--font-weight-semi-bold);
164
+ font-weight: var(--wds-font-weight-title-body);
185
165
  .link-underline();
186
166
  }
187
167
 
188
168
  .np-text-link-large {
189
- font-size: var(--font-size-16);
169
+ font-size: var(--wds-font-size-body-large);
190
170
  letter-spacing: -0.011em;
191
171
  line-height: 150%;
192
172
  }
193
173
 
194
174
  .np-text-link-default {
195
- font-size: var(--font-size-14);
175
+ font-size: var(--wds-font-size-body);
196
176
  letter-spacing: -0.006em;
197
177
  line-height: 155%;
198
178
  }
199
179
 
200
180
  // DISPLAY
201
181
 
202
- .np-text-display-number {
203
- font-weight: var(--font-weight-semi-bold);
204
- font-size: 40px;
205
- line-height: 110%;
182
+ /* DEPRECATED: use .wds-text-display-number-small instead */
183
+ .np-text-display-number,
184
+ .wds-text-display-number {
185
+ &:extend(.wds-text-display-number);
186
+ }
187
+
188
+ .np-text-display-number-small,
189
+ .wds-text-display-number-small {
190
+ &:extend(.wds-text-display-number-small);
191
+ }
192
+
193
+ .np-text-display-number-medium,
194
+ .wds-text-display-number-medium {
195
+ &:extend(.wds-text-display-number-medium);
206
196
  }
207
197
 
208
- .display-formatting(
209
- @font-size;
210
- @line-height;
211
- @font-weight: var(--font-weight-regular)) {
212
- font-size: @font-size;
213
- line-height: @line-height;
214
- font-weight: @font-weight;
198
+ .np-text-display-number-large,
199
+ .wds-text-display-number-large {
200
+ &:extend(.wds-text-display-number-large);
215
201
  }
216
202
 
217
203
  .display-1,
@@ -223,28 +209,12 @@ a,
223
209
  .np-text-display-large,
224
210
  .np-text-display-medium,
225
211
  .np-text-display-small {
226
- &,
212
+ font-synthesis: none;
213
+
227
214
  &--forced {
228
- font-family: var(--font-family-display);
215
+ font-family: var(--wds-font-family-display);
229
216
  font-synthesis: none;
230
217
  }
231
-
232
- :lang(ja) &,
233
- :lang(th) &,
234
- :lang(zh-CN) &,
235
- :lang(zh-HK) & {
236
- /**
237
- * Wise Sans covers extended Latin glyphs for logged-in experiences and a small subset
238
- * of Japanese ones for the logged out ones (exposed by the Editorial DS). Unfortunately,
239
- * font files are browser-cached and we carried over to launchpad, where it causes issues
240
- * for unsupported locales, especially those that share glyphs, like Japanese and Chinese.
241
- * There are exceptions for small UI parts where Wise Sans is fine or expected — e.g. the
242
- * numeric input of ExpressiveMoneyInput.
243
- * Add `--forced` BEM modifier to the original class name to guarantee it.
244
- */
245
- font-family: var(--font-family-regular);
246
- line-height: var(--line-height-title);
247
- }
248
218
  }
249
219
 
250
220
  /* DEPRECATED(.np-text-display-extra-large): use .np-text-display-large instead */
@@ -252,36 +222,23 @@ a,
252
222
  .np-text-display-large,
253
223
  .np-text-display-medium,
254
224
  .np-text-display-small {
255
- letter-spacing: normal;
256
225
  .np-text-hyphenated;
257
226
  }
258
227
 
259
228
  .np-text-display-extra-large,
260
- .np-text-display-large {
261
- .display-formatting(var(--size-64), normal, var(--font-weight-bold));
262
- }
263
-
264
- .np-text-display-medium {
265
- .display-formatting(var(--size-52), normal, var(--font-weight-bold));
229
+ .np-text-display-large,
230
+ .wds-text-display-large {
231
+ &:extend(.wds-text-display-large);
266
232
  }
267
233
 
268
- .np-text-display-small {
269
- .display-formatting(var(--size-40), normal, var(--font-weight-bold));
234
+ .np-text-display-medium,
235
+ .wds-text-display-medium {
236
+ &:extend(.wds-text-display-medium);
270
237
  }
271
238
 
272
- :lang(en) {
273
- > .np-text-display-extra-large,
274
- > .np-text-display-large {
275
- .display-formatting(var(--size-64), 0.85);
276
- }
277
-
278
- > .np-text-display-medium {
279
- .display-formatting(var(--size-52), 0.85);
280
- }
281
-
282
- > .np-text-display-small {
283
- .display-formatting(var(--size-40), 0.85);
284
- }
239
+ .np-text-display-small,
240
+ .wds-text-display-small {
241
+ &:extend(.wds-text-display-small);
285
242
  }
286
243
 
287
244
  /* Disable hyphenation for English
@@ -294,117 +251,6 @@ a,
294
251
  hyphens: none;
295
252
  }
296
253
 
297
- :lang(af),
298
- :lang(sq),
299
- :lang(eu),
300
- :lang(bs),
301
- :lang(ca),
302
- :lang(kw),
303
- :lang(hr),
304
- :lang(cs),
305
- :lang(da),
306
- :lang(nl),
307
- :lang(eo),
308
- :lang(et),
309
- :lang(fo),
310
- :lang(fi),
311
- :lang(fr),
312
- :lang(gl),
313
- :lang(lg),
314
- :lang(de),
315
- :lang(hu),
316
- :lang(is),
317
- :lang(se),
318
- :lang(id),
319
- :lang(in),
320
- :lang(ga),
321
- :lang(it),
322
- :lang(kl),
323
- :lang(ki),
324
- :lang(rw),
325
- :lang(lv),
326
- :lang(lt),
327
- :lang(lb),
328
- :lang(mg),
329
- :lang(ms),
330
- :lang(mt),
331
- :lang(gv),
332
- :lang(mi),
333
- :lang(nd),
334
- :lang(nb),
335
- :lang(nn),
336
- :lang(om),
337
- :lang(pl),
338
- :lang(pt),
339
- :lang(ro),
340
- :lang(rm),
341
- :lang(rn),
342
- :lang(sg),
343
- :lang(gd),
344
- :lang(sr),
345
- :lang(sn),
346
- :lang(sk),
347
- :lang(sl),
348
- :lang(so),
349
- :lang(es),
350
- :lang(sw),
351
- :lang(sv),
352
- :lang(tr),
353
- :lang(cy),
354
- :lang(fy),
355
- :lang(wo),
356
- :lang(zu),
357
- :lang(hsb),
358
- :lang(gsw),
359
- :lang(dsb),
360
- :lang(fil) {
361
- .np-text-display-extra-large,
362
- .np-text-display-large {
363
- .display-formatting(var(--size-64), 1.05);
364
- }
365
-
366
- .np-text-display-medium {
367
- .display-formatting(var(--size-52), 1.05);
368
- }
369
-
370
- .np-text-display-small {
371
- .display-formatting(var(--size-40), 1.05);
372
- }
373
- }
374
-
375
- :lang(el),
376
- :lang(az),
377
- :lang(be),
378
- :lang(bs),
379
- :lang(bg),
380
- :lang(ce),
381
- :lang(mk),
382
- :lang(os),
383
- :lang(ru),
384
- :lang(sr),
385
- :lang(uk),
386
- :lang(uz),
387
- :lang(sah) {
388
- .np-text-display-extra-large,
389
- .np-text-display-large {
390
- .display-formatting(var(--size-60),
391
- 120%,
392
- var(--font-weight-semi-bold));
393
- }
394
-
395
- .np-text-display-medium {
396
- .display-formatting(var(--size-48),
397
- 120%,
398
- var(--font-weight-semi-bold));
399
- }
400
-
401
- .np-text-display-small {
402
- .display-formatting(var(--size-40),
403
- 120%,
404
- var(--font-weight-semi-bold));
405
- }
406
- }
407
-
408
254
  /* DEPRECATED: use `.np-text-display-*` instead */
409
255
  .display-1 {
410
256
  margin-bottom: var(--size-24);
@@ -501,7 +347,7 @@ p {
501
347
 
502
348
  strong,
503
349
  b {
504
- font-weight: var(--font-weight-semi-bold);
350
+ font-weight: var(--wds-font-weight-title-body);
505
351
  color: var(--color-content-primary);
506
352
  }
507
353
 
@@ -519,7 +365,7 @@ address {
519
365
  blockquote {
520
366
  margin: var(--size-16) 0;
521
367
  padding: 0 var(--size-16) 0 calc(var(--size-16) - 2px);
522
- font-size: var(--font-size-16);
368
+ font-size: var(--wds-font-size-body-large);
523
369
  .border(left, 2px, solid, var(--color-content-accent));
524
370
 
525
371
  p {
@@ -537,8 +383,8 @@ blockquote {
537
383
  footer {
538
384
  display: block;
539
385
  color: var(--color-content-secondary);
540
- font-size: var(--font-size-14);
541
- line-height: var(--line-height-body);
386
+ font-size: var(--wds-font-size-body);
387
+ line-height: var(--wds-line-height-body-large);
542
388
 
543
389
  &::before {
544
390
  content: "\2014 \00A0"; // em dash, nbsp
@@ -551,7 +397,7 @@ blockquote {
551
397
 
552
398
  @media (--screen-lg) {
553
399
  margin: var(--size-32);
554
- font-size: var(--font-size-16);
400
+ font-size: var(--wds-font-size-body-large);
555
401
  }
556
402
  }
557
403
 
@@ -588,8 +434,8 @@ pre {
588
434
  padding: var(--size-16);
589
435
  overflow: auto;
590
436
  color: var(--color-content-secondary);
591
- font-size: var(--font-size-14);
592
- line-height: var(--line-height-body);
437
+ font-size: var(--wds-font-size-body);
438
+ line-height: var(--wds-line-height-body-large);
593
439
  word-wrap: break-word;
594
440
  word-break: break-all;
595
441
  background-color: var(--color-background-neutral);
@@ -618,7 +464,7 @@ kbd {
618
464
 
619
465
  kbd {
620
466
  padding: 0;
621
- font-weight: var(--font-weight-bold);
467
+ font-weight: var(--wds-font-weight-title-body);
622
468
  font-size: 100%;
623
469
  }
624
470
  }
@@ -1,11 +1,11 @@
1
- @import (reference) '../../variables/legacy-variables.less';
2
- @import (reference) '../../variables/neptune-tokens.less';
3
- @import (reference) '../mixins/_arrows.less';
4
- @import (reference) '../mixins/_grid.less';
5
- @import (reference) '../mixins/_forms.less';
6
- @import (reference) '../mixins/_tab-focus.less';
7
- @import (reference) '../mixins/_logical-properties.less';
8
- @import (reference) '../core/_typography.less';
1
+ @import (reference) "../../variables/legacy-variables.less";
2
+ @import (reference) "../../variables/neptune-tokens.less";
3
+ @import (reference) "../mixins/_arrows.less";
4
+ @import (reference) "../mixins/_grid.less";
5
+ @import (reference) "../mixins/_forms.less";
6
+ @import (reference) "../mixins/_tab-focus.less";
7
+ @import (reference) "../mixins/_logical-properties.less";
8
+ @import (reference) "../core/_typography.less";
9
9
 
10
10
  //
11
11
  // Forms
@@ -43,7 +43,7 @@ label,
43
43
  .secondary {
44
44
  color: var(--color-content-secondary);
45
45
  transition: color ease-in-out 0.15s;
46
- font-size: var(--font-size-14);
46
+ font-size: var(--wds-font-size-body);
47
47
  line-height: 20px;
48
48
  }
49
49
 
@@ -54,34 +54,34 @@ label,
54
54
  // address browser inconsistencies.
55
55
 
56
56
  // Override content-box in Normalize (* isn't specific enough)
57
- input[type='search'] {
57
+ input[type="search"] {
58
58
  box-sizing: border-box;
59
59
  }
60
60
 
61
- input[type='number'] {
61
+ input[type="number"] {
62
62
  appearance: textfield;
63
63
  }
64
64
 
65
- input[type='number']::-webkit-outer-spin-button,
66
- input[type='number']::-webkit-inner-spin-button {
65
+ input[type="number"]::-webkit-outer-spin-button,
66
+ input[type="number"]::-webkit-inner-spin-button {
67
67
  appearance: none;
68
68
  margin: 0;
69
69
  }
70
70
 
71
71
  // Position radios and checkboxes better
72
- input[type='radio'],
73
- input[type='checkbox'] {
72
+ input[type="radio"],
73
+ input[type="checkbox"] {
74
74
  margin: 4px 0 0;
75
75
  margin-top: 1px;
76
76
  line-height: normal;
77
77
  }
78
78
 
79
- input[type='file'] {
79
+ input[type="file"] {
80
80
  display: block;
81
81
  }
82
82
 
83
83
  // Make range inputs behave like textual form controls
84
- input[type='range'] {
84
+ input[type="range"] {
85
85
  display: block;
86
86
  width: 100%;
87
87
  }
@@ -93,9 +93,9 @@ select[size] {
93
93
  }
94
94
 
95
95
  // Focus for file, radio, and checkbox
96
- input[type='file']:focus,
97
- input[type='radio']:focus,
98
- input[type='checkbox']:focus {
96
+ input[type="file"]:focus,
97
+ input[type="radio"]:focus,
98
+ input[type="checkbox"]:focus {
99
99
  .tab-focus();
100
100
  }
101
101
 
@@ -103,8 +103,8 @@ input[type='checkbox']:focus {
103
103
  output {
104
104
  display: block;
105
105
  padding-top: (@padding-base-vertical + 1);
106
- font-size: var(--font-size-16);
107
- line-height: var(--line-height-control);
106
+ font-size: var(--wds-font-size-body-large);
107
+ line-height: var(--wds-line-height-title-section);
108
108
  color: var(--color-content-primary);
109
109
  }
110
110
 
@@ -138,14 +138,14 @@ output {
138
138
  background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
139
139
  border: 1px solid var(--color-interactive-secondary);
140
140
  transition: border-color ease-in-out 0.15s;
141
- font-size: var(--font-size-16);
141
+ font-size: var(--wds-font-size-body-large);
142
142
 
143
143
  .input-size(
144
144
  var(--input-height-base),
145
145
  var(--input-padding),
146
146
  @input-border-radius
147
147
  );
148
- .np-text-body-large;
148
+ .wds-text-body-large;
149
149
 
150
150
  // Remove iOS drop shadow
151
151
  background-clip: padding-box;
@@ -197,7 +197,7 @@ output {
197
197
  // be added to `.form-control` as it's not specific enough. For details, see
198
198
  // https://github.com/twbs/bootstrap/issues/11586.
199
199
 
200
- input[type='search'] {
200
+ input[type="search"] {
201
201
  appearance: none;
202
202
  }
203
203
 
@@ -209,10 +209,10 @@ input[type='search'] {
209
209
  // for Safari. See https://bugs.webkit.org/show_bug.cgi?id=139848
210
210
 
211
211
  @media screen and (min-device-pixel-ratio: 0) {
212
- input[type='date'],
213
- input[type='time'],
214
- input[type='datetime-local'],
215
- input[type='month'] {
212
+ input[type="date"],
213
+ input[type="time"],
214
+ input[type="datetime-local"],
215
+ input[type="month"] {
216
216
  line-height: var(--input-height-base);
217
217
 
218
218
  &.input-sm,
@@ -222,7 +222,7 @@ input[type='search'] {
222
222
 
223
223
  &.input-lg,
224
224
  .input-group-lg & {
225
- line-height: calc(var(--input-height-large) - var(--line-height-body));
225
+ line-height: calc(var(--input-height-large) - var(--wds-line-height-body-large));
226
226
  }
227
227
  }
228
228
  }
@@ -248,7 +248,7 @@ input[type='search'] {
248
248
  }
249
249
  }
250
250
 
251
- .row-equal-height > [class*='col-'] > .form-group {
251
+ .row-equal-height > [class*="col-"] > .form-group {
252
252
  width: 100%;
253
253
  }
254
254
 
@@ -275,10 +275,10 @@ input[type='search'] {
275
275
  margin-top: (@padding-base-vertical * 1.5);
276
276
  }
277
277
 
278
- .radio input[type='radio'],
279
- .radio-inline input[type='radio'],
280
- .checkbox input[type='checkbox'],
281
- .checkbox-inline input[type='checkbox'] {
278
+ .radio input[type="radio"],
279
+ .radio-inline input[type="radio"],
280
+ .checkbox input[type="checkbox"],
281
+ .checkbox-inline input[type="checkbox"] {
282
282
  position: absolute;
283
283
  .margin(left, -20px);
284
284
 
@@ -313,8 +313,8 @@ input[type='search'] {
313
313
  // Some special care is needed because <label>s don't inherit their parent's `cursor`.
314
314
  //
315
315
  // Note: Neither radios nor checkboxes can be readonly.
316
- input[type='radio'],
317
- input[type='checkbox'] {
316
+ input[type="radio"],
317
+ input[type="checkbox"] {
318
318
  &[disabled],
319
319
  &.disabled,
320
320
  fieldset[disabled] & {
@@ -349,7 +349,7 @@ input[type="password"] {
349
349
  .form-control-static {
350
350
  // Remove default margin from `p`
351
351
  margin-bottom: 0;
352
- min-height: calc(var(--line-height-control) * 2);
352
+ min-height: calc(var(--wds-line-height-title-section) * 2);
353
353
  color: var(--color-content-secondary);
354
354
  background-color: var(--color-background-neutral);
355
355
  border: 1px solid var(--color-interactive-secondary);
@@ -380,7 +380,7 @@ input[type="password"] {
380
380
  );
381
381
  font-size: 14px;
382
382
  line-height: 24px;
383
- .np-text-body-default();
383
+ .wds-text-body-default();
384
384
  }
385
385
 
386
386
  .form-group-sm,
@@ -388,7 +388,7 @@ input[type="password"] {
388
388
  .form-control {
389
389
  height: @input-height-small;
390
390
  padding: var(--input-padding-small);
391
- font-size: var(--font-size-14);
391
+ font-size: var(--wds-font-size-body);
392
392
  line-height: @input-line-height-small;
393
393
  border-radius: @input-border-radius-small;
394
394
  }
@@ -405,9 +405,9 @@ input[type="password"] {
405
405
 
406
406
  .form-control-static {
407
407
  height: @input-height-small;
408
- min-height: calc(var(--line-height-control) + @input-font-size-small);
408
+ min-height: calc(var(--wds-line-height-title-section) + @input-font-size-small);
409
409
  padding: var(--input-padding-small);
410
- font-size: var(--font-size-14);
410
+ font-size: var(--wds-font-size-body);
411
411
  line-height: @input-line-height-small;
412
412
  }
413
413
  }
@@ -418,7 +418,7 @@ input[type="password"] {
418
418
  var(--input-padding-large);
419
419
  @input-border-radius-large
420
420
  );
421
- .np-text-body-large;
421
+ .wds-text-body-large;
422
422
  }
423
423
 
424
424
  .form-group-lg {
@@ -445,7 +445,7 @@ input[type="password"] {
445
445
 
446
446
  .form-control-static {
447
447
  height: var(--input-height-large);
448
- min-height: calc(var(--line-height-control) + @input-font-size-large);
448
+ min-height: calc(var(--wds-line-height-title-section) + @input-font-size-large);
449
449
  padding: var(--input-padding-large);
450
450
  font-size: @input-font-size-large;
451
451
  line-height: @input-line-height-large;
@@ -533,7 +533,9 @@ input[type="password"] {
533
533
  border-style: solid;
534
534
  border-radius: var(--radius-small);
535
535
  padding: 4px 16px 3px;
536
- transition: border-color 0.15s ease-in-out, background-color 0.15s ease-in-out;
536
+ transition:
537
+ border-color 0.15s ease-in-out,
538
+ background-color 0.15s ease-in-out;
537
539
 
538
540
  a {
539
541
  color: inherit;
@@ -624,7 +626,7 @@ input[type="password"] {
624
626
  // Reposition feedback icon if input has visible label above
625
627
  .has-feedback label {
626
628
  & ~ .form-control-feedback {
627
- top: var(--line-height-control); // Height of the `label` and its margin
629
+ top: var(--wds-line-height-title-section); // Height of the `label` and its margin
628
630
  }
629
631
 
630
632
  &.sr-only ~ .form-control-feedback {
@@ -701,8 +703,8 @@ input[type="password"] {
701
703
  }
702
704
  }
703
705
 
704
- .radio input[type='radio'],
705
- .checkbox input[type='checkbox'] {
706
+ .radio input[type="radio"],
707
+ .checkbox input[type="checkbox"] {
706
708
  position: relative;
707
709
  .margin(left, 0);
708
710
  }
@@ -735,7 +737,7 @@ input[type="password"] {
735
737
  // and other content below items
736
738
  .radio,
737
739
  .checkbox {
738
- min-height: calc(var(--line-height-control) + (@padding-base-vertical + 1));
740
+ min-height: calc(var(--wds-line-height-title-section) + (@padding-base-vertical + 1));
739
741
  }
740
742
 
741
743
  // Make form groups behave like rows
@@ -772,7 +774,7 @@ input[type="password"] {
772
774
  // DEPRECATED: use `Field` component (or in some edge cases `Label` component) instead
773
775
  .control-label {
774
776
  padding-top: 17px;
775
- font-size: var(--font-size-20);
777
+ font-size: var(--wds-font-size-title-body);
776
778
  }
777
779
  }
778
780
  }
@@ -782,13 +784,13 @@ input[type="password"] {
782
784
  // DEPRECATED: use `Field` component (or in some edge cases `Label` component) instead
783
785
  .control-label {
784
786
  padding-top: 8px;
785
- font-size: var(--font-size-14);
787
+ font-size: var(--wds-font-size-body);
786
788
  }
787
789
  }
788
790
  }
789
791
  }
790
792
 
791
- @import 'checkbox-radio.less';
793
+ @import "checkbox-radio.less";
792
794
 
793
795
  .input-group .input-group-btn + input {
794
796
  .border(left, 0, solid, transparent);
@@ -818,7 +820,7 @@ input[type="password"] {
818
820
 
819
821
  .form-group {
820
822
  position: relative;
821
- font-size: var(--font-size-14);
823
+ font-size: var(--wds-font-size-body);
822
824
  }
823
825
 
824
826
  .form-group .row {
@@ -826,7 +828,7 @@ input[type="password"] {
826
828
 
827
829
  .margin(right, -6px);
828
830
 
829
- [class*='col-'] {
831
+ [class*="col-"] {
830
832
  .padding(left, 6px);
831
833
 
832
834
  .padding(right, 6px);
@@ -834,7 +836,7 @@ input[type="password"] {
834
836
  }
835
837
 
836
838
  @media (max-width: @screen-xs-max) {
837
- .form-group .row [class*='col-sm-'] {
839
+ .form-group .row [class*="col-sm-"] {
838
840
  margin-bottom: 0;
839
841
 
840
842
  .btn-input {
@@ -844,7 +846,7 @@ input[type="password"] {
844
846
  }
845
847
 
846
848
  @media (max-width: @screen-sm-max) {
847
- .form-group .row [class*='col-md-'] {
849
+ .form-group .row [class*="col-md-"] {
848
850
  margin-bottom: 0;
849
851
 
850
852
  .form-control,
@@ -855,7 +857,7 @@ input[type="password"] {
855
857
  }
856
858
 
857
859
  @media (max-width: @screen-md-max) {
858
- .form-group .row [class*='col-lg-'] {
860
+ .form-group .row [class*="col-lg-"] {
859
861
  margin-bottom: 0;
860
862
 
861
863
  .form-control,
@@ -866,7 +868,7 @@ input[type="password"] {
866
868
  }
867
869
 
868
870
  @media (max-width: @screen-lg-max) {
869
- .form-group .row [class*='col-xl-'] {
871
+ .form-group .row [class*="col-xl-"] {
870
872
  margin-bottom: 0;
871
873
 
872
874
  .form-control,
@@ -895,7 +897,9 @@ input[type="password"] {
895
897
  background-color: var(--color-background-screen);
896
898
  border: 1px solid var(--color-interactive-secondary);
897
899
  border-radius: @border-radius-base;
898
- transition: border 0.15s ease-in-out, background-color 0.15s ease-in-out;
900
+ transition:
901
+ border 0.15s ease-in-out,
902
+ background-color 0.15s ease-in-out;
899
903
 
900
904
  .np-theme-personal & {
901
905
  border-radius: var(--radius-small);
@@ -926,7 +930,8 @@ input[type="password"] {
926
930
  small,
927
931
  .small,
928
932
  .body-2,
929
- .np-text-body-default {
933
+ .np-text-body-default,
934
+ .wds-text-body-default {
930
935
  display: block;
931
936
  color: var(--color-content-secondary);
932
937
  }
@@ -1021,7 +1026,7 @@ input[type="password"] {
1021
1026
  .form-control-placeholder {
1022
1027
  text-overflow: ellipsis;
1023
1028
  overflow: hidden;
1024
- .np-text-body-large;
1029
+ .wds-text-body-large;
1025
1030
  display: block;
1026
1031
  width: 100%;
1027
1032
  color: var(--color-content-tertiary);
@@ -1125,26 +1130,32 @@ input[type="password"] {
1125
1130
 
1126
1131
  .checkbox:hover .tw-checkbox-button,
1127
1132
  .radio:not(.disabled):hover .tw-radio-button,
1128
- .tw-checkbox-button:not(.disabled,:disabled):hover,
1129
- input[type=checkbox]:hover+.tw-checkbox-button,
1130
- input[type=radio]:not(.disabled,:disabled):hover+.tw-radio-button,
1131
- input[type=checkbox]:not(.disabled,:disabled):hover+.tw-checkbox-button {
1133
+ .tw-checkbox-button:not(.disabled, :disabled):hover,
1134
+ input[type="checkbox"]:hover + .tw-checkbox-button,
1135
+ input[type="radio"]:not(.disabled, :disabled):hover + .tw-radio-button,
1136
+ input[type="checkbox"]:not(.disabled, :disabled):hover + .tw-checkbox-button {
1132
1137
  box-shadow: inset 0 0 0 2px var(--color-sentiment-negative-hover);
1133
1138
  }
1134
1139
 
1135
1140
  .tw-checkbox-button.checked,
1136
1141
  .tw-checkbox-button:checked,
1137
- input[type=checkbox]:checked+.tw-checkbox-button,
1142
+ input[type="checkbox"]:checked + .tw-checkbox-button,
1138
1143
  .tw-checkbox-button.checked:hover,
1139
1144
  .tw-checkbox-button:checked:hover,
1140
- input[type=checkbox]:not(.disabled,:disabled):checked:hover+.tw-checkbox-button {
1145
+ input[type="checkbox"]:not(.disabled, :disabled):checked:hover + .tw-checkbox-button {
1141
1146
  box-shadow: inset 0 0 0 3px var(--color-sentiment-negative);
1142
1147
  background: var(--color-sentiment-negative);
1143
1148
  }
1144
1149
 
1145
- .checkbox>label:not(.disabled,:disabled):active input[type=checkbox]+.tw-checkbox-button,
1146
- .checkbox>label:not(.disabled,:disabled):focus-visible input[type=checkbox]+.tw-checkbox-button,
1147
- .checkbox>label:not(.disabled,:disabled):has(:focus-visible) input[type=checkbox]+.tw-checkbox-button {
1150
+ .checkbox > label:not(.disabled, :disabled):active input[type="checkbox"] + .tw-checkbox-button,
1151
+ .checkbox
1152
+ > label:not(.disabled, :disabled):focus-visible
1153
+ input[type="checkbox"]
1154
+ + .tw-checkbox-button,
1155
+ .checkbox
1156
+ > label:not(.disabled, :disabled):has(:focus-visible)
1157
+ input[type="checkbox"]
1158
+ + .tw-checkbox-button {
1148
1159
  box-shadow: inset 0 0 0 2px var(--color-sentiment-negative-active);
1149
1160
  }
1150
1161
  }
@@ -1153,7 +1164,9 @@ input[type="password"] {
1153
1164
  .tw-checkbox-button {
1154
1165
  background-color: unset;
1155
1166
  color: unset;
1156
- transition: background-color 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
1167
+ transition:
1168
+ background-color 0.3s ease-in-out,
1169
+ box-shadow 0.3s ease-in-out;
1157
1170
  }
1158
1171
 
1159
1172
  .btn-input:hover,
@@ -1170,7 +1183,7 @@ input[type="password"] {
1170
1183
  }
1171
1184
 
1172
1185
  .form-group .np-upload-input label {
1173
- margin-bottom: 0;
1186
+ margin-bottom: 0;
1174
1187
  }
1175
1188
 
1176
1189
  .form-group .alert:before,
@@ -309,9 +309,9 @@
309
309
  padding-top: 1px; // `0` would look off due to checkbox misalignment
310
310
 
311
311
  :not(.np-theme-personal) & {
312
- font-weight: var(--font-weight-regular);
313
- font-size: var(--font-size-16);
314
- line-height: var(--line-height-20);
312
+ font-weight: var(--wds-font-weight-body-regular);
313
+ font-size: var(--wds-font-size-body-large);
314
+ line-height: var(--wds-line-height-title-subsection);
315
315
  // Account for our funky font baseline
316
316
  padding-top: 3px;
317
317
  }
@@ -1,7 +1,7 @@
1
1
  @import (reference) "_logical-properties.less";
2
2
 
3
3
  .reset-text() {
4
- font-family: var(--font-family-regular);
4
+ font-family: var(--wds-font-family-regular);
5
5
 
6
6
  // We deliberately do NOT reset font-size.
7
7
 
@@ -22,6 +22,9 @@
22
22
  &.np-text-title-screen,
23
23
  &.np-text-title-section,
24
24
  &.np-text-title-subsection,
25
+ &.wds-text-title-screen,
26
+ &.wds-text-title-section,
27
+ &.wds-text-title-subsection,
25
28
  h1,
26
29
  h2,
27
30
  h3,
@@ -33,7 +36,10 @@
33
36
  .title-3,
34
37
  .np-text-title-screen,
35
38
  .np-text-title-section,
36
- .np-text-title-subsection {
39
+ .np-text-title-subsection,
40
+ .wds-text-title-screen,
41
+ .wds-text-title-section,
42
+ .wds-text-title-subsection {
37
43
  color: @large-color !important;
38
44
  }
39
45
  }