@moodlehq/design-system 2.1.0 → 3.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.
Files changed (40) hide show
  1. package/README.md +6 -1
  2. package/css.d.ts +5 -0
  3. package/dist/components/button/Button.d.ts +9 -7
  4. package/dist/components/button/Button.js +37 -0
  5. package/dist/components/button/Button.js.map +1 -0
  6. package/dist/components/button/index.js +2 -0
  7. package/dist/components/close-button/CloseButton.d.ts +14 -0
  8. package/dist/components/close-button/CloseButton.js +25 -0
  9. package/dist/components/close-button/CloseButton.js.map +1 -0
  10. package/dist/components/close-button/index.d.ts +1 -0
  11. package/dist/components/close-button/index.js +2 -0
  12. package/dist/components/index.d.ts +4 -4
  13. package/dist/components/radio/Radio.d.ts +22 -0
  14. package/dist/components/radio/Radio.js +47 -0
  15. package/dist/components/radio/Radio.js.map +1 -0
  16. package/dist/components/radio/index.d.ts +1 -0
  17. package/dist/components/radio/index.js +2 -0
  18. package/dist/index.css +362 -279
  19. package/dist/index.js +7 -3262
  20. package/package.json +31 -12
  21. package/tokens/css/borders.css +4 -3
  22. package/tokens/css/breakpoints.css +11 -0
  23. package/tokens/css/colors.css +20 -2
  24. package/tokens/css/index.css +1 -0
  25. package/tokens/css/shadows.css +3 -3
  26. package/tokens/css/sizes.css +7 -6
  27. package/tokens/css/spacing.css +1 -0
  28. package/tokens/scss/_borders.scss +4 -3
  29. package/tokens/scss/_breakpoints.scss +8 -0
  30. package/tokens/scss/_colors.scss +20 -2
  31. package/tokens/scss/_index.legacy.scss +1 -0
  32. package/tokens/scss/_index.scss +1 -0
  33. package/tokens/scss/_shadows.scss +3 -3
  34. package/tokens/scss/_sizes.scss +7 -6
  35. package/tokens/scss/_spacing.scss +1 -0
  36. package/dist/components/alert/Alert.d.ts +0 -14
  37. package/dist/components/alert/index.d.ts +0 -2
  38. package/dist/components/icon/Icon.d.ts +0 -7
  39. package/dist/components/icon/index.d.ts +0 -1
  40. package/dist/index.js.map +0 -1
package/dist/index.css CHANGED
@@ -1,4 +1,317 @@
1
- @charset "UTF-8";/*!
1
+ @charset "UTF-8";.mds-btn.btn {
2
+ background-color: var(--mds-bg-interactive-primary-default);
3
+ border: var(--mds-stroke-weight-sm) solid var(--mds-border-translucent);
4
+ border-radius: var(--mds-border-radius-md);
5
+ padding: var(--mds-spacing-xs) var(--mds-spacing-sm);
6
+
7
+ color: var(--mds-text-inverse);
8
+ font-family: var(--mds-font-family-base);
9
+ font-weight: var(--mds-font-weight-regular);
10
+ font-size: var(--mds-font-size-paragraph-default);
11
+ line-height: var(--mds-line-height-paragraph-small);
12
+ letter-spacing: var(--mds-letter-spacing-default);
13
+
14
+ /* gap provides consistent spacing between startIcon/endIcon and label text;
15
+ has no visual effect when the button contains only a single child (no icon) */
16
+ display: inline-flex;
17
+ align-items: center;
18
+ gap: var(--mds-spacing-xxs);
19
+ }
20
+ .mds-btn.btn:hover {
21
+ background-color: var(--mds-bg-interactive-primary-hover);
22
+ }
23
+ .mds-btn.btn:active {
24
+ background-color: var(--mds-bg-interactive-primary-active);
25
+ border: var(--mds-stroke-weight-sm) solid var(--mds-border-translucent);
26
+ }
27
+ .mds-btn.btn:disabled {
28
+ background-color: var(--mds-bg-interactive-primary-disabled);
29
+ }
30
+ /**
31
+ * Secondary variants
32
+ */
33
+ .mds-btn.btn.btn-secondary {
34
+ background-color: var(--mds-bg-interactive-secondary-default);
35
+ color: var(--mds-text-default);
36
+ }
37
+ .mds-btn.btn.btn-secondary:hover {
38
+ background-color: var(--mds-bg-interactive-secondary-hover);
39
+ }
40
+ .mds-btn.btn.btn-secondary:active {
41
+ background-color: var(--mds-bg-interactive-secondary-active);
42
+ }
43
+ .mds-btn.btn.btn-secondary:disabled {
44
+ background-color: var(--mds-bg-interactive-secondary-disabled);
45
+ }
46
+ /**
47
+ * Danger variants
48
+ */
49
+ .mds-btn.btn-danger {
50
+ background-color: var(--mds-bg-interactive-danger-default);
51
+ }
52
+ .mds-btn.btn-danger:hover {
53
+ background-color: var(--mds-bg-interactive-danger-hover);
54
+ }
55
+ .mds-btn.btn-danger:active {
56
+ background-color: var(--mds-bg-interactive-danger-active);
57
+ }
58
+ .mds-btn.btn.btn-danger:disabled {
59
+ background-color: var(--mds-bg-interactive-danger-disabled);
60
+ }
61
+ /**
62
+ * Outline Primary variants
63
+ */
64
+ .mds-btn.btn-outline-primary {
65
+ background-color: transparent;
66
+ border: var(--mds-stroke-weight-sm) solid
67
+ var(--mds-border-interactive-primary-default);
68
+ color: var(--mds-text-link-primary-default);
69
+ }
70
+ .mds-btn.btn-outline-primary:hover {
71
+ background-color: var(--mds-bg-interactive-primary-hover);
72
+ color: var(--mds-text-inverse);
73
+ }
74
+ .mds-btn.btn-outline-primary:active {
75
+ background-color: var(--mds-bg-interactive-primary-active);
76
+ color: var(--mds-text-inverse);
77
+ }
78
+ .mds-btn.btn.btn-outline-primary:disabled {
79
+ background-color: transparent;
80
+ border: var(--mds-stroke-weight-sm) solid
81
+ var(--mds-border-interactive-primary-disabled);
82
+ color: var(--mds-color-blue-300);
83
+ }
84
+ /**
85
+ * Outline Secondary variants
86
+ */
87
+ .mds-btn.btn-outline-secondary {
88
+ background-color: transparent;
89
+ border: var(--mds-stroke-weight-sm) solid
90
+ var(--mds-border-interactive-secondary-default);
91
+ color: var(--mds-text-muted);
92
+ }
93
+ .mds-btn.btn-outline-secondary:hover {
94
+ background-color: var(--mds-border-interactive-secondary-hover);
95
+ color: var(--mds-text-inverse);
96
+ }
97
+ .mds-btn.btn-outline-secondary:active {
98
+ background-color: var(--mds-border-interactive-secondary-active);
99
+ color: var(--mds-text-inverse);
100
+ }
101
+ .mds-btn.btn.btn-outline-secondary:disabled {
102
+ background-color: transparent;
103
+ border: var(--mds-stroke-weight-sm) solid
104
+ var(--mds-border-interactive-secondary-disabled);
105
+ color: var(--mds-color-gray-500);
106
+ }
107
+ /**
108
+ * Outline Danger variants
109
+ */
110
+ .mds-btn.btn-outline-danger {
111
+ background-color: transparent;
112
+ border: var(--mds-stroke-weight-sm) solid
113
+ var(--mds-border-interactive-danger-default);
114
+ color: var(--mds-text-danger);
115
+ }
116
+ .mds-btn.btn-outline-danger:hover {
117
+ background-color: var(--mds-bg-interactive-danger-default);
118
+ color: var(--mds-text-inverse);
119
+ }
120
+ .mds-btn.btn-outline-danger:active {
121
+ background-color: var(--mds-bg-interactive-danger-hover);
122
+ color: var(--mds-text-inverse);
123
+ }
124
+ .mds-btn.btn.btn-outline-danger:disabled {
125
+ background-color: transparent;
126
+ border: var(--mds-stroke-weight-sm) solid
127
+ var(--mds-border-interactive-danger-disabled);
128
+ color: var(--mds-color-red-300);
129
+ }
130
+ /**
131
+ * Size variants
132
+ */
133
+ .mds-btn.btn-sm {
134
+ padding: var(--mds-spacing-xxs) var(--mds-spacing-xs);
135
+ font-size: var(--mds-font-size-paragraph-small);
136
+ line-height: var(--mds-line-height-paragraph-small);
137
+ }
138
+ .mds-btn.btn-lg {
139
+ padding: var(--mds-spacing-xs) var(--mds-spacing-md);
140
+ font-size: var(--mds-font-size-paragraph-lead);
141
+ line-height: var(--mds-line-height-paragraph-default);
142
+ }
143
+ .mds-close-button.btn-close {
144
+ inline-size: var(--mds-icons-md);
145
+ block-size: var(--mds-icons-md);
146
+ padding: 0;
147
+ border-radius: var(--mds-border-radius-xs);
148
+ background-image: url("data:image/svg+xml,%3csvg%20width='20'%20height='20'%20viewBox='0%200%2020%2020'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M4.12109%205.87891L8.22266%209.98047L4.12109%2014.1211C3.61328%2014.5898%203.61328%2015.4102%204.12109%2015.8789C4.58984%2016.3867%205.41016%2016.3867%205.87891%2015.8789L9.98047%2011.7773L14.1211%2015.8789C14.5898%2016.3867%2015.4102%2016.3867%2015.8789%2015.8789C16.3867%2015.4102%2016.3867%2014.5898%2015.8789%2014.1211L11.7773%209.98047L15.8789%205.87891C16.3867%205.41016%2016.3867%204.58984%2015.8789%204.12109C15.4102%203.61328%2014.5898%203.61328%2014.1211%204.12109L9.98047%208.22266L5.87891%204.12109C5.41016%203.61328%204.58984%203.61328%204.12109%204.12109C3.61328%204.58984%203.61328%205.41016%204.12109%205.87891Z'%20fill='%231D2125'/%3e%3c/svg%3e");
149
+ background-size: var(--mds-icons-md) var(--mds-icons-md);
150
+ opacity: 0.6;
151
+ }
152
+ .mds-close-button.btn-close:hover {
153
+ opacity: 0.75;
154
+ }
155
+ .mds-close-button.btn-close:focus {
156
+ box-shadow: none;
157
+ }
158
+ .mds-close-button.btn-close:focus-visible {
159
+ outline: var(--mds-stroke-weight-md) solid var(--mds-focus-default);
160
+ outline-offset: 0;
161
+ box-shadow: none;
162
+ opacity: 1;
163
+ }
164
+ .mds-close-button.btn-close:disabled,
165
+ .mds-close-button.btn-close.disabled {
166
+ opacity: 0.25;
167
+ }
168
+ .mds-close-button.btn-close.mds-close-button--sm {
169
+ inline-size: var(--mds-icons-sm);
170
+ block-size: var(--mds-icons-sm);
171
+ background-size: var(--mds-icons-sm) var(--mds-icons-sm);
172
+ }
173
+ .mds-close-button.btn-close.mds-close-button--md {
174
+ inline-size: var(--mds-icons-md);
175
+ block-size: var(--mds-icons-md);
176
+ background-size: var(--mds-icons-md) var(--mds-icons-md);
177
+ }
178
+ .mds-close-button.btn-close.mds-close-button--lg {
179
+ inline-size: var(--mds-icons-lg);
180
+ block-size: var(--mds-icons-lg);
181
+ background-size: var(--mds-icons-lg) var(--mds-icons-lg);
182
+ }
183
+ /* Parent element */
184
+ .mds-form-check {
185
+ /* Grid layout: column 1 = input, column 2 = label. The feedback is then placed
186
+ explicitly into column 2 via grid-column so it aligns with the label without
187
+ requiring any offset calculation. Grid formatting context also suppresses
188
+ Bootstrap's float on the input child. */
189
+ display: inline-grid;
190
+ grid-template-columns: auto auto;
191
+ align-items: start;
192
+ /* Prevent flex containers from stretching this element across the cross axis,
193
+ which would widen the grid and split the two auto columns equally, pushing
194
+ the label away from the input. start preserves content-sized behaviour. */
195
+ align-self: start;
196
+ /* min-height matches the icon-lg token (24px) so the wrapper never collapses
197
+ below the height of the radio indicator, regardless of label content. */
198
+ min-height: var(--mds-icons-lg, 1.5rem);
199
+ /* Reset Bootstrap's padding-inline-start — it exists to indent label text past a
200
+ floated input, which our grid layout does not use. column-gap handles the spacing. */
201
+ padding: var(--mds-spacing-none, 0);
202
+ /* column-gap keeps input and label spaced; row-gap gives breathing room above feedback */
203
+ column-gap: var(--mds-spacing-xs, 0.5rem);
204
+ row-gap: var(--mds-spacing-xxs, 0.25rem);
205
+
206
+ /* UI text/UI default */
207
+ font-family: var(--mds-font-family-base, Arial, sans-serif);
208
+ font-size: var(--mds-font-size-body, 1rem);
209
+ font-weight: var(--mds-font-weight-regular, 400);
210
+ line-height: var(--mds-line-height-paragraph-small, 1.0875rem); /* 108.75% */
211
+ letter-spacing: var(--mds-letter-spacing, 0);
212
+ }
213
+ /* Input element styles */
214
+ .mds-form-check-input {
215
+ border-radius: var(--mds-border-radius-pill, 50rem);
216
+ border: var(--mds-stroke-weight-sm, 1px) solid
217
+ var(--mds-border-interactive-secondary-default, #6a737b);
218
+ /* Use background-color, not the background shorthand — the shorthand resets
219
+ background-image to none, which wipes out Bootstrap's --bs-form-check-bg-image
220
+ (the inner dot SVG) on the checked state. */
221
+ }
222
+ /* Bootstrap's .form-check .form-check-input rule (specificity 0,2,0) sets float: left
223
+ and a negative margin-inline-start that causes overlap. Match its specificity to
224
+ ensure our flex-friendly reset wins regardless of load order. */
225
+ .mds-form-check .mds-form-check-input {
226
+ margin: 0;
227
+ float: none;
228
+ background-color: var(--mds-bg-surface-default, #fff);
229
+ }
230
+ .mds-form-check-input:checked {
231
+ background-color: var(--mds-bg-interactive-primary-default);
232
+ border-color: transparent;
233
+ }
234
+ .mds-form-check-input:disabled {
235
+ border-color: var(--mds-border-interactive-secondary-disabled);
236
+ }
237
+ .mds-form-check-input:disabled:checked {
238
+ background-color: var(--mds-bg-interactive-primary-disabled);
239
+ border-color: transparent;
240
+ }
241
+ .mds-form-check-input.is-invalid {
242
+ border-color: var(--mds-border-interactive-danger-default);
243
+ }
244
+ .mds-form-check-input.is-invalid:checked {
245
+ background-color: var(--mds-bg-interactive-danger-default);
246
+ border-color: transparent;
247
+ }
248
+ /* Explicit rule for invalid + disabled to avoid relying on specificity cascade order.
249
+ Disabled takes visual precedence: use the disabled background/border, not the danger ones. */
250
+ .mds-form-check-input.is-invalid:disabled {
251
+ background-color: var(--mds-bg-interactive-secondary-disabled);
252
+ border-color: var(--mds-border-interactive-secondary-disabled);
253
+ }
254
+ .mds-form-check-input.is-invalid:disabled:checked {
255
+ background-color: var(--mds-bg-interactive-primary-disabled);
256
+ border-color: transparent;
257
+ }
258
+ /* is-valid (Bootstrap) and neutral feedback states are intentionally not supported.
259
+ Radio buttons surface a binary valid/invalid result; positive confirmation
260
+ is conveyed by form-level success messaging rather than per-input valid styling. */
261
+ /* Hover styles are intentionally omitted. The radio input relies on the OS/browser
262
+ default appearance for hover; no design token exists for a radio hover state. */
263
+ /* Focus ring: Only outline + outline-offset allowed (no box-shadow or border).
264
+ See .github/instructions/components.instructions.md for full rules and rationale. */
265
+ .mds-form-check-input:focus,
266
+ .mds-form-check-input.is-invalid:focus {
267
+ /* Reset Bootstrap's :focus box-shadow; our ring is applied on :focus-visible only */
268
+ box-shadow: none;
269
+ outline: none;
270
+ }
271
+ .mds-form-check-input:focus-visible {
272
+ outline: var(--mds-stroke-weight-md) solid var(--mds-focus-default);
273
+ outline-offset: var(--mds-spacing-offset);
274
+ box-shadow: none;
275
+ }
276
+ .mds-form-check-input.is-invalid:focus-visible {
277
+ outline: var(--mds-stroke-weight-md) solid var(--mds-border-feedback-danger);
278
+ outline-offset: var(--mds-spacing-offset);
279
+ box-shadow: none;
280
+ }
281
+ /* Label element styles */
282
+ .mds-form-check .form-check-label,
283
+ .mds-form-check .mds-form-check-label {
284
+ color: var(--mds-text-default, #1d2125);
285
+ cursor: pointer;
286
+ }
287
+ /* Use sibling selector so the label reflects the input's disabled/invalid state */
288
+ .mds-form-check .mds-form-check-input:disabled ~ .form-check-label,
289
+ .mds-form-check .mds-form-check-input:disabled ~ .mds-form-check-label {
290
+ color: var(--mds-text-muted);
291
+ /* Disabled inputs are not interactive — suppress the pointer cursor on the label */
292
+ cursor: default;
293
+ }
294
+ .mds-form-check .mds-form-check-input.is-invalid ~ .form-check-label,
295
+ .mds-form-check .mds-form-check-input.is-invalid ~ .mds-form-check-label {
296
+ color: var(--mds-text-danger);
297
+ }
298
+ /* Feedback element styles — UI text/UI small */
299
+ .mds-form-check .invalid-feedback,
300
+ .mds-form-check .mds-form-check-feedback {
301
+ /* Place feedback in column 2 (the label column) so it aligns with the label
302
+ regardless of input size or font-size differences. Row placement is automatic. */
303
+ grid-column: 2;
304
+ font-size: var(--mds-font-size-paragraph-small, 0.875rem);
305
+ font-weight: var(--mds-font-weight-medium, 500);
306
+ color: var(--mds-text-danger);
307
+ }
308
+ /* Dim the feedback when the input is disabled to match the reduced visual weight of
309
+ the label and input; keeps the feedback legible without implying it is actionable. */
310
+ .mds-form-check:has(.mds-form-check-input:disabled) .invalid-feedback,
311
+ .mds-form-check:has(.mds-form-check-input:disabled) .mds-form-check-feedback {
312
+ opacity: 0.5;
313
+ }
314
+ /*!
2
315
  * Bootstrap v5.3.8 (https://getbootstrap.com/)
3
316
  * Copyright 2011-2025 The Bootstrap Authors
4
317
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
@@ -17,26 +330,54 @@
17
330
  --mds-stroke-weight-sm: 0.0625rem;
18
331
  --mds-stroke-weight-xl: 0.25rem;
19
332
  --mds-stroke-weight-xxl: 0.3125rem;
20
- --mds-border-radius-lg: var(--mds-scale-300);
21
- --mds-border-radius-md: var(--mds-scale-200);
333
+ --mds-border-radius-lg: var(--mds-scale-400);
334
+ --mds-border-radius-md: var(--mds-scale-300);
22
335
  --mds-border-radius-none: var(--mds-scale-0);
23
336
  --mds-border-radius-pill: var(--mds-scale-1800);
24
- --mds-border-radius-sm: var(--mds-scale-100);
337
+ --mds-border-radius-sm: var(--mds-scale-200);
25
338
  --mds-border-radius-xl: var(--mds-scale-600);
339
+ --mds-border-radius-xs: var(--mds-scale-100);
26
340
  --mds-border-radius-xxl: var(--mds-scale-1000);
27
341
  }
28
342
 
343
+ /**
344
+ * THIS FILE IS AUTO-GENERATED BY STYLE DICTIONARY — DO NOT EDIT DIRECTLY.
345
+ */
346
+
347
+ :root {
348
+ --mds-breakpoints-lg: 62rem;
349
+ --mds-breakpoints-md: 48rem;
350
+ --mds-breakpoints-sm: 36rem;
351
+ --mds-breakpoints-xl: 75rem;
352
+ --mds-breakpoints-xxl: 87.5rem;
353
+ }
354
+
29
355
  /**
30
356
  * THIS FILE IS AUTO-GENERATED BY STYLE DICTIONARY — DO NOT EDIT DIRECTLY.
31
357
  */
32
358
 
33
359
  :root {
34
360
  --mds-border-translucent: rgba(0, 0, 0, 0);
361
+ --mds-activity-icon-assessment-bg: var(--mds-color-pink-100);
362
+ --mds-activity-icon-assessment-icon: var(--mds-color-pink-500);
363
+ --mds-activity-icon-collaboration-bg: var(--mds-color-indigo-100);
364
+ --mds-activity-icon-collaboration-icon: var(--mds-color-indigo-500);
365
+ --mds-activity-icon-communication-bg: var(--mds-color-orange-100);
366
+ --mds-activity-icon-communication-icon: var(--mds-color-orange-600);
367
+ --mds-activity-icon-file-bg: var(--mds-color-cyan-100);
368
+ --mds-activity-icon-file-icon: var(--mds-color-cyan-500);
369
+ --mds-activity-icon-interactive-bg: var(--mds-color-red-100);
370
+ --mds-activity-icon-interactive-icon: var(--mds-color-red-700);
371
+ --mds-activity-icon-other-bg: var(--mds-color-gray-300);
372
+ --mds-activity-icon-other-icon: var(--mds-color-gray-900);
373
+ --mds-activity-icon-resource-bg: var(--mds-color-cyan-100);
374
+ --mds-activity-icon-resource-icon: var(--mds-color-cyan-500);
35
375
  --mds-bg-feedback-danger-subtle: var(--mds-color-red-100);
36
376
  --mds-bg-feedback-info-default: var(--mds-color-cyan-500);
37
377
  --mds-bg-feedback-info-subtle: var(--mds-color-cyan-100);
38
378
  --mds-bg-feedback-primary-default: var(--mds-color-blue-500);
39
379
  --mds-bg-feedback-primary-subtle: var(--mds-color-blue-100);
380
+ --mds-bg-feedback-secondary-default: var(--mds-color-gray-400);
40
381
  --mds-bg-feedback-secondary-subtle: var(--mds-color-gray-100);
41
382
  --mds-bg-feedback-success-default: var(--mds-color-green-500);
42
383
  --mds-bg-feedback-success-subtle: var(--mds-color-green-100);
@@ -44,11 +385,11 @@
44
385
  --mds-bg-feedback-warning-subtle: var(--mds-color-yellow-100);
45
386
  --mds-bg-interactive-danger-active: var(--mds-color-red-700);
46
387
  --mds-bg-interactive-danger-default: var(--mds-color-red-500);
47
- --mds-bg-interactive-danger-disabled: var(--mds-color-red-300);
388
+ --mds-bg-interactive-danger-disabled: var(--mds-color-red-200);
48
389
  --mds-bg-interactive-danger-hover: var(--mds-color-red-600);
49
390
  --mds-bg-interactive-primary-active: var(--mds-color-blue-700);
50
391
  --mds-bg-interactive-primary-default: var(--mds-color-blue-500);
51
- --mds-bg-interactive-primary-disabled: var(--mds-color-blue-300);
392
+ --mds-bg-interactive-primary-disabled: var(--mds-color-blue-200);
52
393
  --mds-bg-interactive-primary-hover: var(--mds-color-blue-600);
53
394
  --mds-bg-interactive-secondary-default: var(--mds-color-gray-400);
54
395
  --mds-bg-interactive-secondary-disabled: var(--mds-color-gray-200);
@@ -72,7 +413,9 @@
72
413
  --mds-border-interactive-secondary-disabled: var(--mds-color-gray-500);
73
414
  --mds-border-interactive-secondary-hover: var(--mds-color-gray-600);
74
415
  --mds-border-subtle: var(--mds-color-gray-200);
416
+ --mds-focus-danger: var(--mds-color-red-200);
75
417
  --mds-text-danger: var(--mds-color-red-500);
418
+ --mds-text-danger-disabled: var(--mds-color-red-300);
76
419
  --mds-text-default: var(--mds-color-gray-900);
77
420
  --mds-text-emphasis: var(--mds-color-gray-black);
78
421
  --mds-text-feedback-danger: var(--mds-color-red-800);
@@ -82,6 +425,7 @@
82
425
  --mds-text-feedback-success: var(--mds-color-green-800);
83
426
  --mds-text-feedback-warning: var(--mds-color-yellow-800);
84
427
  --mds-text-inverse: var(--mds-color-gray-100);
428
+ --mds-text-link-primary-disabled: var(--mds-color-blue-300);
85
429
  --mds-text-muted: var(--mds-color-gray-600);
86
430
  --mds-text-subtle: var(--mds-color-gray-700);
87
431
  --mds-bg-feedback-danger-default: var(--mds-bg-interactive-danger-default);
@@ -263,9 +607,9 @@
263
607
  */
264
608
 
265
609
  :root {
266
- --mds-color-lg: rgba(0, 0, 0, 0.2);
267
- --mds-color-md: rgba(0, 0, 0, 0.2);
268
- --mds-color-sm: rgba(0, 0, 0, 0.1);
610
+ --mds-color-lg: rgba(0, 0, 0, 0.17);
611
+ --mds-color-md: rgba(0, 0, 0, 0.15);
612
+ --mds-color-sm: rgba(0, 0, 0, 0.08);
269
613
  --mds-blur-lg: var(--mds-scale-1200);
270
614
  --mds-blur-md: var(--mds-scale-600);
271
615
  --mds-blur-sm: var(--mds-scale-100);
@@ -279,12 +623,13 @@
279
623
  */
280
624
 
281
625
  :root {
282
- --mds-icons-lg: var(--mds-scale-700);
283
- --mds-icons-md: var(--mds-scale-600);
284
- --mds-icons-sm: var(--mds-scale-400);
285
- --mds-icons-xl: var(--mds-scale-800);
286
- --mds-icons-xs: var(--mds-scale-300);
287
- --mds-icons-xxl: var(--mds-scale-1000);
626
+ --mds-icons-lg: var(--mds-scale-800);
627
+ --mds-icons-md: var(--mds-scale-700);
628
+ --mds-icons-sm: var(--mds-scale-600);
629
+ --mds-icons-xl: var(--mds-scale-1000);
630
+ --mds-icons-xs: var(--mds-scale-400);
631
+ --mds-icons-xxl: var(--mds-scale-1100);
632
+ --mds-icons-xxs: var(--mds-scale-300);
288
633
  --mds-icons-xxxl: var(--mds-scale-1200);
289
634
  }
290
635
 
@@ -293,6 +638,7 @@
293
638
  */
294
639
 
295
640
  :root {
641
+ --mds-spacing-offset: 0.0625rem;
296
642
  --mds-spacing-lg: var(--mds-scale-700);
297
643
  --mds-spacing-md: var(--mds-scale-600);
298
644
  --mds-spacing-none: var(--mds-scale-0);
@@ -350,267 +696,4 @@
350
696
  --mds-margin-bottom-heading: var(--mds-spacing-xs); /** Default margin below a Headings. */
351
697
  --mds-margin-bottom-paragraph: var(--mds-spacing-md); /** Default margin below a paragraph. */
352
698
  }
353
- .mds-btn.btn {
354
- background-color: var(--mds-bg-interactive-primary-default);
355
- border: var(--mds-stroke-weight-sm) solid var(--mds-border-translucent);
356
- border-radius: var(--mds-border-radius-lg);
357
- padding: var(--mds-spacing-xs) var(--mds-spacing-sm);
358
-
359
- color: var(--mds-text-inverse);
360
- font-family: var(--mds-font-family-base);
361
- font-weight: var(--mds-font-weight-regular);
362
- font-size: var(--mds-font-size-paragraph-default);
363
- line-height: var(--mds-line-height-paragraph-small);
364
- letter-spacing: var(--mds-letter-spacing-default);
365
- }
366
- .mds-btn.btn:hover {
367
- background-color: var(--mds-bg-interactive-primary-hover);
368
- }
369
- .mds-btn.btn:active {
370
- background-color: var(--mds-bg-interactive-primary-active);
371
- border: var(--mds-stroke-weight-sm) solid var(--mds-border-translucent);
372
- }
373
- .mds-btn.btn:disabled {
374
- background-color: var(--mds-bg-interactive-primary-disabled);
375
- }
376
- /**
377
- * Secondary variants
378
- */
379
- .mds-btn.btn.btn-secondary {
380
- background-color: var(--mds-bg-interactive-secondary-default);
381
- color: var(--mds-text-default);
382
- }
383
- .mds-btn.btn.btn-secondary:hover {
384
- background-color: var(--mds-bg-interactive-secondary-hover);
385
- }
386
- .mds-btn.btn.btn-secondary:active {
387
- background-color: var(--mds-bg-interactive-secondary-active);
388
- }
389
- .mds-btn.btn.btn-secondary:disabled {
390
- background-color: var(--mds-bg-interactive-secondary-disabled);
391
- }
392
- /**
393
- * Danger variants
394
- */
395
- .mds-btn.btn-danger {
396
- background-color: var(--mds-bg-interactive-danger-default);
397
- }
398
- .mds-btn.btn-danger:hover {
399
- background-color: var(--mds-bg-interactive-danger-hover);
400
- }
401
- .mds-btn.btn-danger:active {
402
- background-color: var(--mds-bg-interactive-danger-active);
403
- }
404
- .mds-btn.btn.btn-danger:disabled {
405
- background-color: var(--mds-bg-interactive-danger-disabled);
406
- }
407
- /**
408
- * Outline Primary variants
409
- */
410
- .mds-btn.btn-outline-primary {
411
- background-color: transparent;
412
- border: var(--mds-stroke-weight-sm) solid
413
- var(--mds-border-interactive-primary-default);
414
- color: var(--mds-text-link-primary-default);
415
- }
416
- .mds-btn.btn-outline-primary:hover {
417
- background-color: var(--mds-bg-interactive-primary-hover);
418
- color: var(--mds-text-inverse);
419
- }
420
- .mds-btn.btn-outline-primary:active {
421
- background-color: var(--mds-bg-interactive-primary-active);
422
- color: var(--mds-text-inverse);
423
- }
424
- .mds-btn.btn.btn-outline-primary:disabled {
425
- background-color: transparent;
426
- border: var(--mds-stroke-weight-sm) solid
427
- var(--mds-border-interactive-primary-disabled);
428
- color: var(--mds-color-blue-300);
429
- }
430
- /**
431
- * Outline Secondary variants
432
- */
433
- .mds-btn.btn-outline-secondary {
434
- background-color: transparent;
435
- border: var(--mds-stroke-weight-sm) solid
436
- var(--mds-border-interactive-secondary-default);
437
- color: var(--mds-text-muted);
438
- }
439
- .mds-btn.btn-outline-secondary:hover {
440
- background-color: var(--mds-border-interactive-secondary-hover);
441
- color: var(--mds-text-inverse);
442
- }
443
- .mds-btn.btn-outline-secondary:active {
444
- background-color: var(--mds-border-interactive-secondary-active);
445
- color: var(--mds-text-inverse);
446
- }
447
- .mds-btn.btn.btn-outline-secondary:disabled {
448
- background-color: transparent;
449
- border: var(--mds-stroke-weight-sm) solid
450
- var(--mds-border-interactive-secondary-disabled);
451
- color: var(--mds-color-gray-500);
452
- }
453
- /**
454
- * Outline Danger variants
455
- */
456
- .mds-btn.btn-outline-danger {
457
- background-color: transparent;
458
- border: var(--mds-stroke-weight-sm) solid
459
- var(--mds-border-interactive-danger-default);
460
- color: var(--mds-text-danger);
461
- }
462
- .mds-btn.btn-outline-danger:hover {
463
- background-color: var(--mds-bg-interactive-danger-default);
464
- color: var(--mds-text-inverse);
465
- }
466
- .mds-btn.btn-outline-danger:active {
467
- background-color: var(--mds-bg-interactive-danger-hover);
468
- color: var(--mds-text-inverse);
469
- }
470
- .mds-btn.btn.btn-outline-danger:disabled {
471
- background-color: transparent;
472
- border: var(--mds-stroke-weight-sm) solid
473
- var(--mds-border-interactive-danger-disabled);
474
- color: var(--mds-color-red-300);
475
- }
476
- /**
477
- * Size variants
478
- */
479
- .mds-btn.btn-sm {
480
- padding: var(--mds-spacing-xxs) var(--mds-spacing-xs);
481
- font-size: var(--mds-font-size-paragraph-small);
482
- line-height: var(--mds-line-height-paragraph-small);
483
- }
484
- .mds-btn.btn-lg {
485
- padding: var(--mds-spacing-xs) var(--mds-spacing-md);
486
- font-size: var(--mds-font-size-paragraph-lead);
487
- line-height: var(--mds-line-height-paragraph-default);
488
- }
489
- /**
490
- * Icon-only variant
491
- */
492
- .mds-btn.btn.mds-btn-icon-only {
493
- align-items: center;
494
- display: inline-flex;
495
- justify-content: center;
496
- min-height: var(--mds-scale-1000);
497
- min-width: var(--mds-scale-1000);
498
- padding: var(--mds-spacing-sm);
499
- }
500
- .mds-btn.btn.btn-sm.mds-btn-icon-only {
501
- min-height: var(--mds-scale-800);
502
- min-width: var(--mds-scale-800);
503
- padding: var(--mds-spacing-xs);
504
- }
505
- .mds-btn.btn.btn-lg.mds-btn-icon-only {
506
- min-height: var(--mds-scale-1200);
507
- min-width: var(--mds-scale-1200);
508
- padding: var(--mds-spacing-md);
509
- }
510
- .mds-btn .mds-btn-icon-only-icon {
511
- font-size: var(--mds-icons-md);
512
- }
513
- .mds-btn.btn.btn-sm .mds-btn-icon-only-icon {
514
- font-size: var(--mds-icons-sm);
515
- }
516
- .mds-btn.btn.btn-lg .mds-btn-icon-only-icon {
517
- font-size: var(--mds-icons-lg);
518
- }
519
- .mds-alert.alert {
520
- --mds-alert-bg: var(--mds-bg-feedback-success-subtle);
521
- --mds-alert-border: var(--mds-border-feedback-success);
522
- --mds-alert-text: var(--mds-text-feedback-success);
523
-
524
- align-items: flex-start;
525
- background-color: var(--mds-alert-bg);
526
- border: var(--mds-stroke-weight-sm) solid var(--mds-alert-border);
527
- border-radius: var(--mds-border-radius-lg);
528
- color: var(--mds-alert-text);
529
- display: flex;
530
- font-family: var(--mds-font-family-base);
531
- font-size: var(--mds-font-size-paragraph-default);
532
- gap: var(--mds-spacing-xxs);
533
- line-height: var(--mds-line-height-paragraph-default);
534
- margin-bottom: 0;
535
- padding: var(--mds-spacing-sm);
536
- }
537
- .mds-alert.alert.alert-info {
538
- --mds-alert-bg: var(--mds-bg-feedback-info-subtle);
539
- --mds-alert-border: var(--mds-border-feedback-info);
540
- --mds-alert-text: var(--mds-text-feedback-info);
541
- }
542
- .mds-alert.alert.alert-warning {
543
- --mds-alert-bg: var(--mds-bg-feedback-warning-subtle);
544
- --mds-alert-border: var(--mds-border-feedback-warning);
545
- --mds-alert-text: var(--mds-text-feedback-warning);
546
- }
547
- .mds-alert.alert.alert-danger {
548
- --mds-alert-bg: var(--mds-bg-feedback-danger-subtle);
549
- --mds-alert-border: var(--mds-border-feedback-danger);
550
- --mds-alert-text: var(--mds-text-feedback-danger);
551
- }
552
- .mds-alert .mds-alert-icon-wrapper {
553
- align-items: center;
554
- display: inline-flex;
555
- flex: 0 0 auto;
556
- justify-content: center;
557
- padding-top: var(--mds-spacing-xxs);
558
- width: var(--mds-icons-md);
559
- }
560
- .mds-alert .mds-alert-icon {
561
- color: var(--mds-alert-text);
562
- font-size: var(--mds-icons-sm);
563
- }
564
- .mds-alert .mds-alert-content {
565
- flex: 1 1 auto;
566
- min-width: 0;
567
- }
568
- .mds-alert .mds-alert-heading {
569
- color: var(--mds-alert-text);
570
- font-size: var(--mds-font-size-paragraph-lead);
571
- font-weight: var(--mds-font-weight-regular);
572
- line-height: var(--mds-line-height-paragraph-default);
573
- margin: 0 0 var(--mds-spacing-xxs);
574
- }
575
- .mds-alert .mds-alert-body {
576
- color: var(--mds-alert-text);
577
- }
578
- .mds-alert .mds-alert-body > :last-child {
579
- margin-bottom: 0;
580
- }
581
- .mds-alert .mds-alert-body a,
582
- .mds-alert .mds-alert-body .alert-link {
583
- color: inherit;
584
- font-weight: var(--mds-font-weight-regular);
585
- text-decoration: underline;
586
- }
587
- .mds-alert .mds-alert-body .btn,
588
- .mds-alert .mds-alert-body button {
589
- color: inherit;
590
- }
591
- .mds-alert.alert-dismissible {
592
- padding-right: var(--mds-spacing-sm);
593
- }
594
- .mds-alert .mds-alert-close.btn-close {
595
- color: var(--mds-alert-text);
596
- margin: 0;
597
- opacity: 1;
598
- padding: var(--mds-spacing-xxs);
599
- }
600
- .mds-alert .mds-alert-close.btn-close:hover {
601
- opacity: 0.7;
602
- }
603
- .mds-alert .mds-alert-close.btn-close:focus {
604
- box-shadow: 0 0 0 var(--mds-stroke-weight-md) var(--mds-focus-default);
605
- }
606
- .mds-alert .mds-alert-close.btn-close:focus:not(:focus-visible) {
607
- box-shadow: none;
608
- }
609
- .mds-alert .mds-alert-close.btn-close:focus-visible {
610
- box-shadow: 0 0 0 var(--mds-stroke-weight-md) var(--mds-focus-default);
611
- }
612
- .mds-icon {
613
- display: inline-block;
614
- line-height: 1;
615
- vertical-align: middle;
616
- }
699
+ /*$vite$:1*/