@moodlehq/design-system 3.2.0 → 4.0.0
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/dist/components/badge/Badge.d.ts +19 -0
- package/dist/components/badge/Badge2.js +43 -0
- package/dist/components/badge/Badge2.js.map +1 -0
- package/dist/components/badge/index.d.ts +1 -0
- package/dist/components/badge/index.js +2 -0
- package/dist/components/button/Button.d.ts +4 -3
- package/dist/components/button/Button.js +25 -11
- package/dist/components/button/Button.js.map +1 -1
- package/dist/components/checkbox/Checkbox.d.ts +23 -0
- package/dist/components/checkbox/Checkbox.js +68 -0
- package/dist/components/checkbox/Checkbox.js.map +1 -0
- package/dist/components/checkbox/index.d.ts +1 -0
- package/dist/components/checkbox/index.js +2 -0
- package/dist/components/index.d.ts +4 -0
- package/dist/index.css +625 -46
- package/dist/index.js +3 -1
- package/package.json +2 -1
- package/tokens/css/colors.css +1 -1
- package/tokens/scss/_colors.scss +1 -1
- package/tokens/scss/_index_css_vars.scss +340 -0
package/dist/index.css
CHANGED
|
@@ -1,4 +1,119 @@
|
|
|
1
|
-
@charset "UTF-8";.mds-
|
|
1
|
+
@charset "UTF-8";.mds-badge {
|
|
2
|
+
display: inline-flex;
|
|
3
|
+
align-items: center;
|
|
4
|
+
gap: 0;
|
|
5
|
+
padding: var(--mds-spacing-xxs) var(--mds-spacing-xs);
|
|
6
|
+
border-radius: var(--mds-border-radius-sm);
|
|
7
|
+
|
|
8
|
+
font-family: var(--mds-font-family-base);
|
|
9
|
+
font-weight: var(--mds-font-weight-medium);
|
|
10
|
+
font-size: var(--mds-font-size-paragraph-small);
|
|
11
|
+
line-height: var(--mds-line-height-paragraph-xs);
|
|
12
|
+
letter-spacing: var(--mds-letter-spacing-default);
|
|
13
|
+
white-space: nowrap;
|
|
14
|
+
vertical-align: baseline;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.mds-badge--has-icon {
|
|
18
|
+
gap: var(--mds-spacing-xxs);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/* Normalize icon dimensions to match the badge icon token across <i> and <svg> usage. */
|
|
22
|
+
.mds-badge > i,
|
|
23
|
+
.mds-badge > svg {
|
|
24
|
+
width: var(--mds-icons-xxs);
|
|
25
|
+
height: var(--mds-icons-xxs);
|
|
26
|
+
font-size: var(--mds-icons-xxs);
|
|
27
|
+
flex-shrink: 0;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/* Pill shape overrides the default rounded corners */
|
|
31
|
+
.mds-badge--pill {
|
|
32
|
+
border-radius: var(--mds-border-radius-pill);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/*
|
|
36
|
+
* Per-variant colour rules.
|
|
37
|
+
* Default contrast: solid coloured background with inverse text.
|
|
38
|
+
* Subtle contrast (.mds-badge--subtle): light tinted background, dark feedback text, visible border.
|
|
39
|
+
*/
|
|
40
|
+
|
|
41
|
+
.mds-badge--subtle {
|
|
42
|
+
border: var(--mds-stroke-weight-sm) solid transparent;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/* --- Primary --- */
|
|
46
|
+
.mds-badge--primary {
|
|
47
|
+
background-color: var(--mds-bg-feedback-primary-default);
|
|
48
|
+
color: var(--mds-text-inverse);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.mds-badge--primary.mds-badge--subtle {
|
|
52
|
+
background-color: var(--mds-bg-feedback-primary-subtle);
|
|
53
|
+
color: var(--mds-text-feedback-primary);
|
|
54
|
+
border-color: var(--mds-border-feedback-primary);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/* --- Secondary --- */
|
|
58
|
+
.mds-badge--secondary {
|
|
59
|
+
background-color: var(--mds-bg-feedback-secondary-default);
|
|
60
|
+
color: var(--mds-text-feedback-secondary);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.mds-badge--secondary.mds-badge--subtle {
|
|
64
|
+
background-color: var(--mds-bg-feedback-secondary-subtle);
|
|
65
|
+
color: var(--mds-text-feedback-secondary);
|
|
66
|
+
border-color: var(--mds-border-feedback-secondary);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* --- Success --- */
|
|
70
|
+
.mds-badge--success {
|
|
71
|
+
background-color: var(--mds-bg-feedback-success-default);
|
|
72
|
+
color: var(--mds-text-inverse);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.mds-badge--success.mds-badge--subtle {
|
|
76
|
+
background-color: var(--mds-bg-feedback-success-subtle);
|
|
77
|
+
color: var(--mds-text-feedback-success);
|
|
78
|
+
border-color: var(--mds-border-feedback-success);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/* --- Danger --- */
|
|
82
|
+
.mds-badge--danger {
|
|
83
|
+
background-color: var(--mds-bg-feedback-danger-default);
|
|
84
|
+
color: var(--mds-text-inverse);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.mds-badge--danger.mds-badge--subtle {
|
|
88
|
+
background-color: var(--mds-bg-feedback-danger-subtle);
|
|
89
|
+
color: var(--mds-text-feedback-danger);
|
|
90
|
+
border-color: var(--mds-border-feedback-danger);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* --- Warning --- */
|
|
94
|
+
.mds-badge--warning {
|
|
95
|
+
background-color: var(--mds-bg-feedback-warning-default);
|
|
96
|
+
color: var(--mds-text-feedback-warning);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.mds-badge--warning.mds-badge--subtle {
|
|
100
|
+
background-color: var(--mds-bg-feedback-warning-subtle);
|
|
101
|
+
color: var(--mds-text-feedback-warning);
|
|
102
|
+
border-color: var(--mds-border-feedback-warning);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* --- Info --- */
|
|
106
|
+
.mds-badge--info {
|
|
107
|
+
background-color: var(--mds-bg-feedback-info-default);
|
|
108
|
+
color: var(--mds-text-inverse);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.mds-badge--info.mds-badge--subtle {
|
|
112
|
+
background-color: var(--mds-bg-feedback-info-subtle);
|
|
113
|
+
color: var(--mds-text-feedback-info);
|
|
114
|
+
border-color: var(--mds-border-feedback-info);
|
|
115
|
+
}
|
|
116
|
+
.mds-activity-icon {
|
|
2
117
|
align-items: center;
|
|
3
118
|
/*
|
|
4
119
|
* content-box so block-size/inline-size declare the ICON content area.
|
|
@@ -103,24 +218,219 @@
|
|
|
103
218
|
inline-size: 100%;
|
|
104
219
|
}
|
|
105
220
|
|
|
221
|
+
.mds-badge {
|
|
222
|
+
display: inline-flex;
|
|
223
|
+
align-items: center;
|
|
224
|
+
gap: 0;
|
|
225
|
+
padding: var(--mds-spacing-xxs) var(--mds-spacing-xs);
|
|
226
|
+
border-radius: var(--mds-border-radius-sm);
|
|
227
|
+
|
|
228
|
+
font-family: var(--mds-font-family-base);
|
|
229
|
+
font-weight: var(--mds-font-weight-medium);
|
|
230
|
+
font-size: var(--mds-font-size-paragraph-small);
|
|
231
|
+
line-height: var(--mds-line-height-paragraph-xs);
|
|
232
|
+
letter-spacing: var(--mds-letter-spacing-default);
|
|
233
|
+
white-space: nowrap;
|
|
234
|
+
vertical-align: baseline;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
.mds-badge--has-icon {
|
|
238
|
+
gap: var(--mds-spacing-xxs);
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/* Normalize icon dimensions to match the badge icon token across <i> and <svg> usage. */
|
|
242
|
+
|
|
243
|
+
.mds-badge > i,
|
|
244
|
+
.mds-badge > svg {
|
|
245
|
+
width: var(--mds-icons-xxs);
|
|
246
|
+
height: var(--mds-icons-xxs);
|
|
247
|
+
font-size: var(--mds-icons-xxs);
|
|
248
|
+
flex-shrink: 0;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/* Pill shape overrides the default rounded corners */
|
|
252
|
+
|
|
253
|
+
.mds-badge--pill {
|
|
254
|
+
border-radius: var(--mds-border-radius-pill);
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
/*
|
|
258
|
+
* Per-variant colour rules.
|
|
259
|
+
* Default contrast: solid coloured background with inverse text.
|
|
260
|
+
* Subtle contrast (.mds-badge--subtle): light tinted background, dark feedback text, visible border.
|
|
261
|
+
*/
|
|
262
|
+
|
|
263
|
+
.mds-badge--subtle {
|
|
264
|
+
border: var(--mds-stroke-weight-sm) solid transparent;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/* --- Primary --- */
|
|
268
|
+
|
|
269
|
+
.mds-badge--primary {
|
|
270
|
+
background-color: var(--mds-bg-feedback-primary-default);
|
|
271
|
+
color: var(--mds-text-inverse);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
.mds-badge--primary.mds-badge--subtle {
|
|
275
|
+
background-color: var(--mds-bg-feedback-primary-subtle);
|
|
276
|
+
color: var(--mds-text-feedback-primary);
|
|
277
|
+
border-color: var(--mds-border-feedback-primary);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
/* --- Secondary --- */
|
|
281
|
+
|
|
282
|
+
.mds-badge--secondary {
|
|
283
|
+
background-color: var(--mds-bg-feedback-secondary-default);
|
|
284
|
+
color: var(--mds-text-feedback-secondary);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
.mds-badge--secondary.mds-badge--subtle {
|
|
288
|
+
background-color: var(--mds-bg-feedback-secondary-subtle);
|
|
289
|
+
color: var(--mds-text-feedback-secondary);
|
|
290
|
+
border-color: var(--mds-border-feedback-secondary);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
/* --- Success --- */
|
|
294
|
+
|
|
295
|
+
.mds-badge--success {
|
|
296
|
+
background-color: var(--mds-bg-feedback-success-default);
|
|
297
|
+
color: var(--mds-text-inverse);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
.mds-badge--success.mds-badge--subtle {
|
|
301
|
+
background-color: var(--mds-bg-feedback-success-subtle);
|
|
302
|
+
color: var(--mds-text-feedback-success);
|
|
303
|
+
border-color: var(--mds-border-feedback-success);
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/* --- Danger --- */
|
|
307
|
+
|
|
308
|
+
.mds-badge--danger {
|
|
309
|
+
background-color: var(--mds-bg-feedback-danger-default);
|
|
310
|
+
color: var(--mds-text-inverse);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
.mds-badge--danger.mds-badge--subtle {
|
|
314
|
+
background-color: var(--mds-bg-feedback-danger-subtle);
|
|
315
|
+
color: var(--mds-text-feedback-danger);
|
|
316
|
+
border-color: var(--mds-border-feedback-danger);
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
/* --- Warning --- */
|
|
320
|
+
|
|
321
|
+
.mds-badge--warning {
|
|
322
|
+
background-color: var(--mds-bg-feedback-warning-default);
|
|
323
|
+
color: var(--mds-text-feedback-warning);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
.mds-badge--warning.mds-badge--subtle {
|
|
327
|
+
background-color: var(--mds-bg-feedback-warning-subtle);
|
|
328
|
+
color: var(--mds-text-feedback-warning);
|
|
329
|
+
border-color: var(--mds-border-feedback-warning);
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
/* --- Info --- */
|
|
333
|
+
|
|
334
|
+
.mds-badge--info {
|
|
335
|
+
background-color: var(--mds-bg-feedback-info-default);
|
|
336
|
+
color: var(--mds-text-inverse);
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
.mds-badge--info.mds-badge--subtle {
|
|
340
|
+
background-color: var(--mds-bg-feedback-info-subtle);
|
|
341
|
+
color: var(--mds-text-feedback-info);
|
|
342
|
+
border-color: var(--mds-border-feedback-info);
|
|
343
|
+
}
|
|
344
|
+
|
|
106
345
|
.mds-btn.btn {
|
|
107
346
|
background-color: var(--mds-bg-interactive-primary-default);
|
|
108
|
-
border:
|
|
109
|
-
border-radius: var(--mds-border-radius-
|
|
347
|
+
border: none;
|
|
348
|
+
border-radius: var(--mds-border-radius-sm);
|
|
110
349
|
padding: var(--mds-spacing-xs) var(--mds-spacing-sm);
|
|
111
350
|
|
|
112
351
|
color: var(--mds-text-inverse);
|
|
113
352
|
font-family: var(--mds-font-family-base);
|
|
114
353
|
font-weight: var(--mds-font-weight-regular);
|
|
115
354
|
font-size: var(--mds-font-size-paragraph-default);
|
|
116
|
-
line-height: var(--mds-line-height-paragraph-
|
|
355
|
+
line-height: var(--mds-line-height-paragraph-xs);
|
|
117
356
|
letter-spacing: var(--mds-letter-spacing-default);
|
|
118
357
|
|
|
119
|
-
/*
|
|
120
|
-
has no visual effect when the button contains only a single child (no icon) */
|
|
358
|
+
/* Keep icon/text spacing consistent with icon variants from the design matrix. */
|
|
121
359
|
display: inline-flex;
|
|
122
360
|
align-items: center;
|
|
123
|
-
gap: var(--mds-spacing-
|
|
361
|
+
gap: var(--mds-spacing-xs);
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
/* Icon-only sizing in Figma is not derived from text button size classes. */
|
|
365
|
+
|
|
366
|
+
.mds-btn.btn.mds-btn--icon-only {
|
|
367
|
+
padding: var(--mds-spacing-xs);
|
|
368
|
+
border-radius: var(--mds-border-radius-xl);
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
.mds-btn.btn.mds-btn--icon-only i,
|
|
372
|
+
.mds-btn.btn.mds-btn--icon-only svg {
|
|
373
|
+
inline-size: var(--mds-icons-xs);
|
|
374
|
+
block-size: var(--mds-icons-xs);
|
|
375
|
+
font-size: var(--mds-icons-xs);
|
|
376
|
+
line-height: 1;
|
|
377
|
+
flex-shrink: 0;
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
.mds-btn.btn.mds-btn--icon-only.mds-btn--size-sm {
|
|
381
|
+
padding: var(--mds-spacing-xxs);
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
.mds-btn.btn.mds-btn--icon-only.mds-btn--size-sm i,
|
|
385
|
+
.mds-btn.btn.mds-btn--icon-only.mds-btn--size-sm svg {
|
|
386
|
+
inline-size: var(--mds-icons-xxs);
|
|
387
|
+
block-size: var(--mds-icons-xxs);
|
|
388
|
+
font-size: var(--mds-icons-xxs);
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
.mds-btn.btn.mds-btn--icon-only.mds-btn--size-lg {
|
|
392
|
+
padding: var(--mds-spacing-xs);
|
|
393
|
+
border-radius: var(--mds-border-radius-sm);
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
.mds-btn.btn.mds-btn--size-sm i,
|
|
397
|
+
.mds-btn.btn.mds-btn--size-sm svg {
|
|
398
|
+
inline-size: var(--mds-icons-xxs);
|
|
399
|
+
block-size: var(--mds-icons-xxs);
|
|
400
|
+
font-size: var(--mds-icons-xxs);
|
|
401
|
+
line-height: 1;
|
|
402
|
+
flex-shrink: 0;
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
.mds-btn.btn.mds-btn--size-md i,
|
|
406
|
+
.mds-btn.btn.mds-btn--size-md svg,
|
|
407
|
+
.mds-btn.btn.mds-btn--size-lg i,
|
|
408
|
+
.mds-btn.btn.mds-btn--size-lg svg {
|
|
409
|
+
inline-size: var(--mds-icons-xs);
|
|
410
|
+
block-size: var(--mds-icons-xs);
|
|
411
|
+
font-size: var(--mds-icons-xs);
|
|
412
|
+
line-height: 1;
|
|
413
|
+
flex-shrink: 0;
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
.mds-btn.btn:focus {
|
|
417
|
+
box-shadow: none;
|
|
418
|
+
outline: none;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
.mds-btn.btn:focus-visible {
|
|
422
|
+
outline: var(--mds-stroke-weight-md) solid var(--mds-focus-default);
|
|
423
|
+
outline-offset: var(--mds-spacing-offset);
|
|
424
|
+
box-shadow: none;
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
.mds-btn.btn:active:focus-visible {
|
|
428
|
+
box-shadow: none;
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
.mds-btn.btn.btn-danger:focus-visible,
|
|
432
|
+
.mds-btn.btn.btn-outline-danger:focus-visible {
|
|
433
|
+
outline: var(--mds-stroke-weight-md) solid var(--mds-focus-danger);
|
|
124
434
|
}
|
|
125
435
|
|
|
126
436
|
.mds-btn.btn:hover {
|
|
@@ -129,7 +439,7 @@
|
|
|
129
439
|
|
|
130
440
|
.mds-btn.btn:active {
|
|
131
441
|
background-color: var(--mds-bg-interactive-primary-active);
|
|
132
|
-
|
|
442
|
+
box-shadow: none;
|
|
133
443
|
}
|
|
134
444
|
|
|
135
445
|
.mds-btn.btn:disabled {
|
|
@@ -142,7 +452,7 @@
|
|
|
142
452
|
|
|
143
453
|
.mds-btn.btn.btn-secondary {
|
|
144
454
|
background-color: var(--mds-bg-interactive-secondary-default);
|
|
145
|
-
color: var(--mds-text-
|
|
455
|
+
color: var(--mds-text-subtle);
|
|
146
456
|
}
|
|
147
457
|
|
|
148
458
|
.mds-btn.btn.btn-secondary:hover {
|
|
@@ -155,6 +465,7 @@
|
|
|
155
465
|
|
|
156
466
|
.mds-btn.btn.btn-secondary:disabled {
|
|
157
467
|
background-color: var(--mds-bg-interactive-secondary-disabled);
|
|
468
|
+
color: var(--mds-text-muted);
|
|
158
469
|
}
|
|
159
470
|
|
|
160
471
|
/**
|
|
@@ -177,104 +488,374 @@
|
|
|
177
488
|
background-color: var(--mds-bg-interactive-danger-disabled);
|
|
178
489
|
}
|
|
179
490
|
|
|
491
|
+
/**
|
|
492
|
+
* Ghost variants
|
|
493
|
+
*/
|
|
494
|
+
|
|
495
|
+
.mds-btn.btn.btn-ghost {
|
|
496
|
+
background-color: transparent;
|
|
497
|
+
color: var(--mds-text-subtle);
|
|
498
|
+
}
|
|
499
|
+
|
|
500
|
+
.mds-btn.btn.btn-ghost:hover {
|
|
501
|
+
background-color: var(--mds-bg-interactive-secondary-hover);
|
|
502
|
+
color: var(--mds-text-subtle);
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
.mds-btn.btn.btn-ghost:active {
|
|
506
|
+
background-color: var(--mds-bg-interactive-secondary-active);
|
|
507
|
+
color: var(--mds-text-subtle);
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
.mds-btn.btn.btn-ghost:disabled {
|
|
511
|
+
background-color: transparent;
|
|
512
|
+
color: var(--mds-text-muted);
|
|
513
|
+
}
|
|
514
|
+
|
|
180
515
|
/**
|
|
181
516
|
* Outline Primary variants
|
|
182
517
|
*/
|
|
183
518
|
|
|
184
|
-
.mds-btn.btn
|
|
519
|
+
.mds-btn.btn:is(
|
|
520
|
+
.btn-outline-primary,
|
|
521
|
+
.btn-outline-secondary,
|
|
522
|
+
.btn-outline-danger
|
|
523
|
+
) {
|
|
185
524
|
background-color: transparent;
|
|
186
|
-
border: var(--mds-stroke-weight-sm) solid
|
|
187
|
-
|
|
525
|
+
border: var(--mds-stroke-weight-sm) solid transparent;
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
.mds-btn.btn.btn-outline-primary {
|
|
529
|
+
border-color: var(--mds-border-interactive-primary-default);
|
|
188
530
|
color: var(--mds-text-link-primary-default);
|
|
189
531
|
}
|
|
190
532
|
|
|
191
533
|
.mds-btn.btn-outline-primary:hover {
|
|
534
|
+
border-color: var(--mds-bg-interactive-primary-hover);
|
|
192
535
|
background-color: var(--mds-bg-interactive-primary-hover);
|
|
193
536
|
color: var(--mds-text-inverse);
|
|
194
537
|
}
|
|
195
538
|
|
|
196
539
|
.mds-btn.btn-outline-primary:active {
|
|
540
|
+
border-color: var(--mds-bg-interactive-primary-active);
|
|
197
541
|
background-color: var(--mds-bg-interactive-primary-active);
|
|
198
542
|
color: var(--mds-text-inverse);
|
|
199
543
|
}
|
|
200
544
|
|
|
201
545
|
.mds-btn.btn.btn-outline-primary:disabled {
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
var(--mds-border-interactive-primary-disabled);
|
|
205
|
-
color: var(--mds-color-blue-300);
|
|
546
|
+
border-color: var(--mds-border-interactive-primary-disabled);
|
|
547
|
+
color: var(--mds-text-link-primary-disabled);
|
|
206
548
|
}
|
|
207
549
|
|
|
208
550
|
/**
|
|
209
551
|
* Outline Secondary variants
|
|
210
552
|
*/
|
|
211
553
|
|
|
212
|
-
.mds-btn.btn-outline-secondary {
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
var(--mds-border-interactive-secondary-default);
|
|
216
|
-
color: var(--mds-text-muted);
|
|
554
|
+
.mds-btn.btn.btn-outline-secondary {
|
|
555
|
+
border-color: var(--mds-border-interactive-secondary-default);
|
|
556
|
+
color: var(--mds-text-subtle);
|
|
217
557
|
}
|
|
218
558
|
|
|
219
559
|
.mds-btn.btn-outline-secondary:hover {
|
|
560
|
+
border-color: var(--mds-border-interactive-secondary-hover);
|
|
220
561
|
background-color: var(--mds-border-interactive-secondary-hover);
|
|
221
562
|
color: var(--mds-text-inverse);
|
|
222
563
|
}
|
|
223
564
|
|
|
224
565
|
.mds-btn.btn-outline-secondary:active {
|
|
566
|
+
border-color: var(--mds-border-interactive-secondary-active);
|
|
225
567
|
background-color: var(--mds-border-interactive-secondary-active);
|
|
226
568
|
color: var(--mds-text-inverse);
|
|
227
569
|
}
|
|
228
570
|
|
|
229
571
|
.mds-btn.btn.btn-outline-secondary:disabled {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
var(--mds-border-interactive-secondary-disabled);
|
|
233
|
-
color: var(--mds-color-gray-500);
|
|
572
|
+
border-color: var(--mds-border-interactive-secondary-disabled);
|
|
573
|
+
color: var(--mds-text-muted);
|
|
234
574
|
}
|
|
235
575
|
|
|
236
576
|
/**
|
|
237
577
|
* Outline Danger variants
|
|
238
578
|
*/
|
|
239
579
|
|
|
240
|
-
.mds-btn.btn-outline-danger {
|
|
241
|
-
|
|
242
|
-
border: var(--mds-stroke-weight-sm) solid
|
|
243
|
-
var(--mds-border-interactive-danger-default);
|
|
580
|
+
.mds-btn.btn.btn-outline-danger {
|
|
581
|
+
border-color: var(--mds-border-interactive-danger-default);
|
|
244
582
|
color: var(--mds-text-danger);
|
|
245
583
|
}
|
|
246
584
|
|
|
247
585
|
.mds-btn.btn-outline-danger:hover {
|
|
248
|
-
|
|
586
|
+
border-color: var(--mds-bg-interactive-danger-hover);
|
|
587
|
+
background-color: var(--mds-bg-interactive-danger-hover);
|
|
249
588
|
color: var(--mds-text-inverse);
|
|
250
589
|
}
|
|
251
590
|
|
|
252
591
|
.mds-btn.btn-outline-danger:active {
|
|
253
|
-
|
|
592
|
+
border-color: var(--mds-bg-interactive-danger-active);
|
|
593
|
+
background-color: var(--mds-bg-interactive-danger-active);
|
|
254
594
|
color: var(--mds-text-inverse);
|
|
255
595
|
}
|
|
256
596
|
|
|
257
597
|
.mds-btn.btn.btn-outline-danger:disabled {
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
var(--mds-border-interactive-danger-disabled);
|
|
261
|
-
color: var(--mds-color-red-300);
|
|
598
|
+
border-color: var(--mds-border-interactive-danger-disabled);
|
|
599
|
+
color: var(--mds-text-danger-disabled);
|
|
262
600
|
}
|
|
263
601
|
|
|
264
602
|
/**
|
|
265
603
|
* Size variants
|
|
266
604
|
*/
|
|
267
605
|
|
|
268
|
-
.mds-btn.btn-sm {
|
|
606
|
+
.mds-btn.mds-btn--size-sm {
|
|
269
607
|
padding: var(--mds-spacing-xxs) var(--mds-spacing-xs);
|
|
608
|
+
border-radius: var(--mds-border-radius-xs);
|
|
609
|
+
font-weight: var(--mds-font-weight-medium);
|
|
610
|
+
font-size: var(--mds-font-size-paragraph-small);
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
.mds-btn.mds-btn--size-md {
|
|
614
|
+
padding: var(--mds-spacing-xs) var(--mds-spacing-sm);
|
|
615
|
+
font-size: var(--mds-font-size-paragraph-default);
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
.mds-btn.mds-btn--size-lg {
|
|
619
|
+
padding: var(--mds-spacing-sm) var(--mds-spacing-md);
|
|
620
|
+
font-size: var(--mds-font-size-paragraph-default);
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
/* Keep outer geometry aligned with filled variants when outline border is present. */
|
|
624
|
+
|
|
625
|
+
.mds-btn.mds-btn--size-sm:is(
|
|
626
|
+
.btn-outline-primary,
|
|
627
|
+
.btn-outline-secondary,
|
|
628
|
+
.btn-outline-danger
|
|
629
|
+
) {
|
|
630
|
+
padding: calc(var(--mds-spacing-xxs) - var(--mds-stroke-weight-sm))
|
|
631
|
+
calc(var(--mds-spacing-xs) - var(--mds-stroke-weight-sm));
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
.mds-btn.mds-btn--size-md:is(
|
|
635
|
+
.btn-outline-primary,
|
|
636
|
+
.btn-outline-secondary,
|
|
637
|
+
.btn-outline-danger
|
|
638
|
+
) {
|
|
639
|
+
padding: calc(var(--mds-spacing-xs) - var(--mds-stroke-weight-sm))
|
|
640
|
+
calc(var(--mds-spacing-sm) - var(--mds-stroke-weight-sm));
|
|
641
|
+
}
|
|
642
|
+
|
|
643
|
+
.mds-btn.mds-btn--size-lg:is(
|
|
644
|
+
.btn-outline-primary,
|
|
645
|
+
.btn-outline-secondary,
|
|
646
|
+
.btn-outline-danger
|
|
647
|
+
) {
|
|
648
|
+
padding: calc(var(--mds-spacing-sm) - var(--mds-stroke-weight-sm))
|
|
649
|
+
calc(var(--mds-spacing-md) - var(--mds-stroke-weight-sm));
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
.mds-btn.mds-btn--icon-only:is(
|
|
653
|
+
.btn-outline-primary,
|
|
654
|
+
.btn-outline-secondary,
|
|
655
|
+
.btn-outline-danger
|
|
656
|
+
) {
|
|
657
|
+
padding: calc(var(--mds-spacing-xs) - var(--mds-stroke-weight-sm));
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
.mds-btn.mds-btn--icon-only.mds-btn--size-sm:is(
|
|
661
|
+
.btn-outline-primary,
|
|
662
|
+
.btn-outline-secondary,
|
|
663
|
+
.btn-outline-danger
|
|
664
|
+
) {
|
|
665
|
+
padding: calc(var(--mds-spacing-xxs) - var(--mds-stroke-weight-sm));
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
.mds-btn.mds-btn--icon-only.mds-btn--size-lg:is(
|
|
669
|
+
.btn-outline-primary,
|
|
670
|
+
.btn-outline-secondary,
|
|
671
|
+
.btn-outline-danger
|
|
672
|
+
) {
|
|
673
|
+
padding: calc(var(--mds-spacing-xs) - var(--mds-stroke-weight-sm));
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
.mds-checkbox {
|
|
677
|
+
display: inline-grid;
|
|
678
|
+
grid-template-columns: auto auto;
|
|
679
|
+
align-items: center;
|
|
680
|
+
align-self: start;
|
|
681
|
+
min-height: var(--mds-icons-lg);
|
|
682
|
+
padding: var(--mds-spacing-none);
|
|
683
|
+
column-gap: var(--mds-spacing-xs);
|
|
684
|
+
row-gap: var(--mds-spacing-xxs);
|
|
685
|
+
|
|
686
|
+
font-family: var(--mds-font-family-base);
|
|
687
|
+
font-size: var(--mds-font-size-paragraph-default);
|
|
688
|
+
font-weight: var(--mds-font-weight-regular);
|
|
689
|
+
line-height: var(--mds-line-height-paragraph-xs);
|
|
690
|
+
letter-spacing: var(--mds-letter-spacing-default);
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
.mds-checkbox-input {
|
|
694
|
+
border-radius: var(--mds-border-radius-xs);
|
|
695
|
+
border: var(--mds-stroke-weight-sm) solid
|
|
696
|
+
var(--mds-border-interactive-secondary-default);
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
.mds-checkbox .mds-checkbox-input {
|
|
700
|
+
/* Bootstrap applies float/offset styles to .form-check-input for indented label layouts.
|
|
701
|
+
Match selector specificity and reset float/margins for the grid-based sibling layout. */
|
|
702
|
+
margin: 0;
|
|
703
|
+
float: none;
|
|
704
|
+
background-color: var(--mds-bg-surface-default);
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
.mds-checkbox-input:checked {
|
|
708
|
+
background-color: var(--mds-bg-interactive-primary-default);
|
|
709
|
+
border-color: transparent;
|
|
710
|
+
}
|
|
711
|
+
|
|
712
|
+
.mds-checkbox-input:indeterminate {
|
|
713
|
+
background-color: var(--mds-bg-interactive-primary-default);
|
|
714
|
+
border-color: transparent;
|
|
715
|
+
}
|
|
716
|
+
|
|
717
|
+
.mds-checkbox-input:disabled {
|
|
718
|
+
border-color: var(--mds-border-interactive-secondary-disabled);
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
.mds-checkbox-input:disabled:checked {
|
|
722
|
+
background-color: var(--mds-bg-interactive-primary-disabled);
|
|
723
|
+
border-color: transparent;
|
|
724
|
+
}
|
|
725
|
+
|
|
726
|
+
.mds-checkbox-input:disabled:indeterminate {
|
|
727
|
+
background-color: var(--mds-bg-interactive-primary-disabled);
|
|
728
|
+
border-color: transparent;
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
.mds-checkbox-input.is-invalid {
|
|
732
|
+
border-color: var(--mds-border-interactive-danger-default);
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
.mds-checkbox-input.is-invalid:checked {
|
|
736
|
+
background-color: var(--mds-bg-interactive-danger-default);
|
|
737
|
+
border-color: transparent;
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
.mds-checkbox-input.is-invalid:indeterminate {
|
|
741
|
+
background-color: var(--mds-bg-interactive-danger-default);
|
|
742
|
+
border-color: transparent;
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
.mds-checkbox-input.is-invalid:disabled {
|
|
746
|
+
background-color: var(--mds-bg-interactive-secondary-disabled);
|
|
747
|
+
border-color: var(--mds-border-interactive-secondary-disabled);
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
.mds-checkbox-input.is-invalid:disabled:checked {
|
|
751
|
+
background-color: var(--mds-bg-interactive-primary-disabled);
|
|
752
|
+
border-color: transparent;
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
.mds-checkbox-input.is-invalid:disabled:indeterminate {
|
|
756
|
+
background-color: var(--mds-bg-interactive-primary-disabled);
|
|
757
|
+
border-color: transparent;
|
|
758
|
+
}
|
|
759
|
+
|
|
760
|
+
.mds-checkbox-input:focus,
|
|
761
|
+
.mds-checkbox-input.is-invalid:focus {
|
|
762
|
+
/* Reset Bootstrap's :focus box-shadow; our ring is applied on :focus-visible only */
|
|
763
|
+
box-shadow: none;
|
|
764
|
+
outline: none;
|
|
765
|
+
}
|
|
766
|
+
|
|
767
|
+
/* Bootstrap also sets border-color on :focus. Restore the correct border for each state,
|
|
768
|
+
excluding checked/indeterminate which keep their transparent border. */
|
|
769
|
+
|
|
770
|
+
.mds-checkbox-input:focus:not(:checked):not(:indeterminate) {
|
|
771
|
+
border-color: var(--mds-border-interactive-secondary-default);
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
.mds-checkbox-input.is-invalid:focus:not(:checked):not(:indeterminate) {
|
|
775
|
+
border-color: var(--mds-border-interactive-danger-default);
|
|
776
|
+
}
|
|
777
|
+
|
|
778
|
+
.mds-checkbox-input:focus-visible {
|
|
779
|
+
outline: var(--mds-stroke-weight-md) solid var(--mds-focus-default);
|
|
780
|
+
outline-offset: var(--mds-spacing-offset);
|
|
781
|
+
box-shadow: none;
|
|
782
|
+
}
|
|
783
|
+
|
|
784
|
+
.mds-checkbox-input.is-invalid:focus-visible {
|
|
785
|
+
outline: var(--mds-stroke-weight-md) solid var(--mds-border-feedback-danger);
|
|
786
|
+
outline-offset: var(--mds-spacing-offset);
|
|
787
|
+
box-shadow: none;
|
|
788
|
+
}
|
|
789
|
+
|
|
790
|
+
.mds-checkbox .form-check-label,
|
|
791
|
+
.mds-checkbox .mds-checkbox-label {
|
|
792
|
+
display: flex;
|
|
793
|
+
align-items: center;
|
|
794
|
+
/* In the radio-style sibling layout, the checkbox should align to the label text line,
|
|
795
|
+
not to an expanded label hit area. Keep the label box tight and let htmlFor preserve click behavior. */
|
|
796
|
+
padding: 0;
|
|
797
|
+
color: var(--mds-text-default);
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
.mds-checkbox .mds-checkbox-label-text {
|
|
801
|
+
min-width: 0;
|
|
802
|
+
}
|
|
803
|
+
|
|
804
|
+
.mds-checkbox .mds-checkbox-input:disabled ~ .form-check-label,
|
|
805
|
+
.mds-checkbox .mds-checkbox-input:disabled ~ .mds-checkbox-label {
|
|
806
|
+
color: var(--mds-text-muted);
|
|
807
|
+
}
|
|
808
|
+
|
|
809
|
+
.mds-checkbox .mds-checkbox-input.is-invalid ~ .form-check-label,
|
|
810
|
+
.mds-checkbox .mds-checkbox-input.is-invalid ~ .mds-checkbox-label {
|
|
811
|
+
color: var(--mds-text-danger);
|
|
812
|
+
}
|
|
813
|
+
|
|
814
|
+
/* Disabled takes precedence over invalid — restore muted colour when both are active. */
|
|
815
|
+
|
|
816
|
+
.mds-checkbox .mds-checkbox-input.is-invalid:disabled ~ .form-check-label,
|
|
817
|
+
.mds-checkbox .mds-checkbox-input.is-invalid:disabled ~ .mds-checkbox-label {
|
|
818
|
+
color: var(--mds-text-muted);
|
|
819
|
+
}
|
|
820
|
+
|
|
821
|
+
.mds-checkbox-required {
|
|
822
|
+
color: var(--mds-text-danger);
|
|
823
|
+
margin-inline-start: var(--mds-spacing-xxs);
|
|
824
|
+
}
|
|
825
|
+
|
|
826
|
+
.mds-checkbox .invalid-feedback,
|
|
827
|
+
.mds-checkbox .mds-checkbox-feedback {
|
|
828
|
+
grid-column: 2;
|
|
270
829
|
font-size: var(--mds-font-size-paragraph-small);
|
|
271
|
-
|
|
830
|
+
font-weight: var(--mds-font-weight-medium);
|
|
831
|
+
line-height: var(--mds-line-height-paragraph-xs);
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
.mds-checkbox .invalid-feedback,
|
|
835
|
+
.mds-checkbox .mds-checkbox-feedback.mds-checkbox-supporting-text {
|
|
836
|
+
margin: 0;
|
|
272
837
|
}
|
|
273
838
|
|
|
274
|
-
.mds-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
839
|
+
.mds-checkbox .invalid-feedback {
|
|
840
|
+
color: var(--mds-text-danger);
|
|
841
|
+
}
|
|
842
|
+
|
|
843
|
+
/* In the default state supporting text is subtle. In the invalid state use danger to match
|
|
844
|
+
the label colour \u2014 matching Figma where the label container sets the colour for both. */
|
|
845
|
+
|
|
846
|
+
.mds-checkbox .mds-checkbox-feedback.mds-checkbox-supporting-text {
|
|
847
|
+
color: var(--mds-text-subtle);
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
.mds-checkbox
|
|
851
|
+
.mds-checkbox-input.is-invalid
|
|
852
|
+
~ .mds-checkbox-feedback.mds-checkbox-supporting-text {
|
|
853
|
+
color: var(--mds-text-danger);
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
.mds-checkbox .mds-checkbox-input:disabled ~ .invalid-feedback,
|
|
857
|
+
.mds-checkbox .mds-checkbox-input:disabled ~ .mds-checkbox-feedback {
|
|
858
|
+
opacity: 0.5;
|
|
278
859
|
}
|
|
279
860
|
|
|
280
861
|
.mds-close-button.btn-close {
|
|
@@ -353,7 +934,7 @@
|
|
|
353
934
|
font-family: var(--mds-font-family-base, Arial, sans-serif);
|
|
354
935
|
font-size: var(--mds-font-size-body, 1rem);
|
|
355
936
|
font-weight: var(--mds-font-weight-regular, 400);
|
|
356
|
-
line-height: var(--mds-line-height-paragraph-
|
|
937
|
+
line-height: var(--mds-line-height-paragraph-xs, 0.75rem);
|
|
357
938
|
letter-spacing: var(--mds-letter-spacing, 0);
|
|
358
939
|
}
|
|
359
940
|
|
|
@@ -448,7 +1029,6 @@
|
|
|
448
1029
|
.mds-form-check .form-check-label,
|
|
449
1030
|
.mds-form-check .mds-form-check-label {
|
|
450
1031
|
color: var(--mds-text-default, #1d2125);
|
|
451
|
-
cursor: pointer;
|
|
452
1032
|
}
|
|
453
1033
|
|
|
454
1034
|
/* Use sibling selector so the label reflects the input's disabled/invalid state */
|
|
@@ -456,8 +1036,6 @@
|
|
|
456
1036
|
.mds-form-check .mds-form-check-input:disabled ~ .form-check-label,
|
|
457
1037
|
.mds-form-check .mds-form-check-input:disabled ~ .mds-form-check-label {
|
|
458
1038
|
color: var(--mds-text-muted);
|
|
459
|
-
/* Disabled inputs are not interactive — suppress the pointer cursor on the label */
|
|
460
|
-
cursor: default;
|
|
461
1039
|
}
|
|
462
1040
|
|
|
463
1041
|
.mds-form-check .mds-form-check-input.is-invalid ~ .form-check-label,
|
|
@@ -474,6 +1052,7 @@
|
|
|
474
1052
|
grid-column: 2;
|
|
475
1053
|
font-size: var(--mds-font-size-paragraph-small, 0.875rem);
|
|
476
1054
|
font-weight: var(--mds-font-weight-medium, 500);
|
|
1055
|
+
line-height: var(--mds-line-height-paragraph-xs, 0.75rem);
|
|
477
1056
|
color: var(--mds-text-danger);
|
|
478
1057
|
}
|
|
479
1058
|
|
|
@@ -547,7 +1126,7 @@
|
|
|
547
1126
|
--mds-activity-icon-resource-icon: var(--mds-color-cyan-500);
|
|
548
1127
|
--mds-bg-feedback-danger-light: var(--mds-color-red-50);
|
|
549
1128
|
--mds-bg-feedback-danger-subtle: var(--mds-color-red-100);
|
|
550
|
-
--mds-bg-feedback-info-default: var(--mds-color-cyan-
|
|
1129
|
+
--mds-bg-feedback-info-default: var(--mds-color-cyan-600);
|
|
551
1130
|
--mds-bg-feedback-info-light: var(--mds-color-cyan-50);
|
|
552
1131
|
--mds-bg-feedback-info-subtle: var(--mds-color-cyan-100);
|
|
553
1132
|
--mds-bg-feedback-primary-default: var(--mds-color-blue-500);
|