@maggioli-design-system/styles 16.0.0 → 17.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 (39) hide show
  1. package/README.md +55 -3
  2. package/dist/css/animations.css +2 -2
  3. package/dist/css/base.css +13 -27
  4. package/dist/css/colors-hex-brand-rnd.css +25 -25
  5. package/dist/css/colors-hex-brand.css +46 -46
  6. package/dist/css/colors-hex-default.css +502 -502
  7. package/dist/css/colors-hex-label.css +256 -256
  8. package/dist/css/colors-hex-status.css +88 -88
  9. package/dist/css/colors-hex-theme.css +271 -0
  10. package/dist/css/colors-hex-tones.css +139 -139
  11. package/dist/css/colors-hex.css +883 -631
  12. package/dist/css/colors-rgb-brand-rnd.css +25 -25
  13. package/dist/css/colors-rgb-brand.css +46 -46
  14. package/dist/css/colors-rgb-default.css +502 -502
  15. package/dist/css/colors-rgb-label.css +256 -256
  16. package/dist/css/colors-rgb-status.css +88 -88
  17. package/dist/css/colors-rgb-theme.css +271 -0
  18. package/dist/css/colors-rgb-tones.css +139 -139
  19. package/dist/css/colors-rgb.css +883 -631
  20. package/dist/css/globals.css +3156 -28
  21. package/dist/css/hydrated.css +2 -2
  22. package/dist/css/reset.css +2 -4
  23. package/dist/css/semantic.css +253 -0
  24. package/dist/css/tailwind-theme-color.css +295 -211
  25. package/dist/css/tailwind-theme-typography.css +19 -2
  26. package/dist/css/theme.css +51 -0
  27. package/dist/css/themes.css +93 -0
  28. package/dist/css/tokens.editor.css +1792 -0
  29. package/dist/css/transitions.css +2 -2
  30. package/dist/css/typography.css +237 -253
  31. package/dist/css/utility-typography.css +254 -0
  32. package/dist/tailwind/base.css +31 -23
  33. package/dist/tailwind/semantic.css +119 -0
  34. package/dist/tailwind/theme.css +3 -0
  35. package/dist/tailwind/utilities.css +1 -1
  36. package/dist/tailwind3/base.css +9 -13
  37. package/dist/tailwind3/components.css +1 -1
  38. package/package.json +12 -6
  39. package/tailwind.config.js +2 -2
@@ -0,0 +1,254 @@
1
+ /*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */
2
+ @layer properties;
3
+ @layer utilities {
4
+ .focus-zoom {
5
+ --tw-duration: 200ms;
6
+ transition-duration: 200ms;
7
+ --tw-ease: var(--ease-out, cubic-bezier(0, 0, 0.2, 1));
8
+ transition-timing-function: var(--ease-out, cubic-bezier(0, 0, 0.2, 1));
9
+ outline: var(--magma-outline-blur);
10
+ outline-offset: var(--magma-outline-blur-offset);
11
+ transition-property: background-color, border-color, box-shadow, color, fill, outline, outline-offset, transform;
12
+ }
13
+ .focus-zoom--focused,
14
+ .focus-zoom:focus-visible {
15
+ --magma-outline-blur-offset: var(--magma-outline-focus-offset);
16
+ --magma-outline-blur: var(--magma-outline-focus);
17
+ }
18
+ .focus-zoom--light.focus-zoom--focused,
19
+ .focus-zoom--light:focus-visible {
20
+ --magma-outline-blur: 2px solid rgb(var(--magma-text-on-emphasis));
21
+ }
22
+ }
23
+ .typography-title-h1 {
24
+ min-height: auto;
25
+ text-box: trim-both text;
26
+ font-family: var(--font-title, Roboto, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
27
+ font-size: var(--text-size-title-h1, 3rem);
28
+ line-height: var(--tw-leading, var(--text-size-title-h1--line-height, 3rem));
29
+ letter-spacing: var(--tw-tracking, var(--text-size-title-h1--letter-spacing, -0.025em));
30
+ font-weight: var(--tw-font-weight, var(--text-size-title-h1--font-weight, 900));
31
+ --tw-font-weight: var(--font-weight-black, 900);
32
+ font-weight: var(--font-weight-black, 900);
33
+ -webkit-font-smoothing: antialiased;
34
+ -moz-osx-font-smoothing: grayscale;
35
+ }
36
+ .typography-title-h2 {
37
+ min-height: auto;
38
+ text-box: trim-both text;
39
+ font-family: var(--font-title, Roboto, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
40
+ font-size: var(--text-size-title-h2, 2.25rem);
41
+ line-height: var(--tw-leading, var(--text-size-title-h2--line-height, 2.5rem));
42
+ letter-spacing: var(--tw-tracking, var(--text-size-title-h2--letter-spacing, -0.025em));
43
+ font-weight: var(--tw-font-weight, var(--text-size-title-h2--font-weight, 900));
44
+ --tw-font-weight: var(--font-weight-black, 900);
45
+ font-weight: var(--font-weight-black, 900);
46
+ -webkit-font-smoothing: antialiased;
47
+ -moz-osx-font-smoothing: grayscale;
48
+ }
49
+ .typography-title-h3 {
50
+ min-height: auto;
51
+ text-box: trim-both text;
52
+ font-family: var(--font-title, Roboto, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
53
+ font-size: var(--text-size-title-h3, 1.875rem);
54
+ line-height: var(--tw-leading, var(--text-size-title-h3--line-height, 2.25rem));
55
+ letter-spacing: var(--tw-tracking, var(--text-size-title-h3--letter-spacing, -0.025em));
56
+ font-weight: var(--tw-font-weight, var(--text-size-title-h3--font-weight, 900));
57
+ --tw-font-weight: var(--font-weight-black, 900);
58
+ font-weight: var(--font-weight-black, 900);
59
+ -webkit-font-smoothing: antialiased;
60
+ -moz-osx-font-smoothing: grayscale;
61
+ }
62
+ .typography-title-h4 {
63
+ min-height: auto;
64
+ text-box: trim-both text;
65
+ font-family: var(--font-title, Roboto, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
66
+ font-size: var(--text-size-title-h4, 1.5rem);
67
+ line-height: var(--tw-leading, var(--text-size-title-h4--line-height, 2rem));
68
+ letter-spacing: var(--tw-tracking, var(--text-size-title-h4--letter-spacing, -0.025em));
69
+ font-weight: var(--tw-font-weight, var(--text-size-title-h4--font-weight, 900));
70
+ --tw-font-weight: var(--font-weight-black, 900);
71
+ font-weight: var(--font-weight-black, 900);
72
+ -webkit-font-smoothing: antialiased;
73
+ -moz-osx-font-smoothing: grayscale;
74
+ }
75
+ .typography-title-h5 {
76
+ min-height: auto;
77
+ text-box: trim-both text;
78
+ font-family: var(--font-title, Roboto, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
79
+ font-size: var(--text-size-title-h5, 1.25rem);
80
+ line-height: var(--tw-leading, var(--text-size-title-h5--line-height, 1.75rem));
81
+ letter-spacing: var(--tw-tracking, var(--text-size-title-h5--letter-spacing, -0.025em));
82
+ font-weight: var(--tw-font-weight, var(--text-size-title-h5--font-weight, 900));
83
+ --tw-font-weight: var(--font-weight-black, 900);
84
+ font-weight: var(--font-weight-black, 900);
85
+ -webkit-font-smoothing: antialiased;
86
+ -moz-osx-font-smoothing: grayscale;
87
+ }
88
+ .typography-title-h6 {
89
+ min-height: auto;
90
+ text-box: trim-both text;
91
+ font-family: var(--font-title, Roboto, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
92
+ font-size: var(--text-size-title-h6, 1rem);
93
+ line-height: var(--tw-leading, var(--text-size-title-h6--line-height, 1.5rem));
94
+ letter-spacing: var(--tw-tracking, var(--text-size-title-h6--letter-spacing, -0.025em));
95
+ font-weight: var(--tw-font-weight, var(--text-size-title-h6--font-weight, 700));
96
+ --tw-font-weight: var(--font-weight-bold, 700);
97
+ font-weight: var(--font-weight-bold, 700);
98
+ -webkit-font-smoothing: antialiased;
99
+ -moz-osx-font-smoothing: grayscale;
100
+ }
101
+ .typography-title-action {
102
+ min-height: auto;
103
+ text-box: trim-both text;
104
+ font-family: var(--font-title, Roboto, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
105
+ font-size: var(--text-size-title-action, 0.875rem);
106
+ line-height: var(--tw-leading, var(--text-size-title-action--line-height, 1.5rem));
107
+ font-weight: var(--tw-font-weight, var(--text-size-title-action--font-weight, 500));
108
+ --tw-font-weight: var(--font-weight-medium, 500);
109
+ font-weight: var(--font-weight-medium, 500);
110
+ -webkit-font-smoothing: antialiased;
111
+ -moz-osx-font-smoothing: grayscale;
112
+ }
113
+ .typography-info-paragraph {
114
+ min-height: auto;
115
+ text-box: trim-both text;
116
+ font-family: var(--font-info, Karla, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
117
+ font-size: var(--text-size-info-paragraph, 1.25rem);
118
+ line-height: var(--tw-leading, var(--text-size-info-paragraph--line-height, 2rem));
119
+ font-weight: var(--tw-font-weight, var(--text-size-info-paragraph--font-weight, 400));
120
+ -webkit-font-smoothing: antialiased;
121
+ -moz-osx-font-smoothing: grayscale;
122
+ }
123
+ .typography-info-detail {
124
+ min-height: auto;
125
+ text-box: trim-both text;
126
+ font-family: var(--font-info, Karla, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
127
+ font-size: var(--text-size-info-detail, 1rem);
128
+ line-height: var(--tw-leading, var(--text-size-info-detail--line-height, 1.5rem));
129
+ font-weight: var(--tw-font-weight, var(--text-size-info-detail--font-weight, 400));
130
+ -webkit-font-smoothing: antialiased;
131
+ -moz-osx-font-smoothing: grayscale;
132
+ }
133
+ .typography-info-caption {
134
+ min-height: auto;
135
+ text-box: trim-both text;
136
+ font-family: var(--font-info, Karla, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
137
+ font-size: var(--text-size-info-caption, 0.875rem);
138
+ line-height: var(--tw-leading, var(--text-size-info-caption--line-height, 1.25rem));
139
+ font-weight: var(--tw-font-weight, var(--text-size-info-caption--font-weight, 400));
140
+ -webkit-font-smoothing: antialiased;
141
+ -moz-osx-font-smoothing: grayscale;
142
+ }
143
+ .typography-info-label {
144
+ min-height: auto;
145
+ text-box: trim-both cap alphabetic;
146
+ font-family: var(--font-info, Karla, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
147
+ font-size: var(--text-size-info-label, 0.75rem);
148
+ line-height: var(--tw-leading, var(--text-size-info-label--line-height, 1rem));
149
+ font-weight: var(--tw-font-weight, var(--text-size-info-label--font-weight, 700));
150
+ --tw-font-weight: var(--font-weight-bold, 700);
151
+ font-weight: var(--font-weight-bold, 700);
152
+ text-transform: uppercase;
153
+ -webkit-font-smoothing: antialiased;
154
+ -moz-osx-font-smoothing: grayscale;
155
+ }
156
+ .typography-info-option {
157
+ min-height: auto;
158
+ text-box: trim-both cap alphabetic;
159
+ font-family: var(--font-info, Karla, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
160
+ font-size: var(--text-size-info-option, 0.625rem);
161
+ line-height: var(--tw-leading, var(--text-size-info-option--line-height, 0.625rem));
162
+ letter-spacing: var(--tw-tracking, var(--text-size-info-option--letter-spacing, -0.025em));
163
+ font-weight: var(--tw-font-weight, var(--text-size-info-option--font-weight, 700));
164
+ --tw-font-weight: var(--font-weight-bold, 700);
165
+ font-weight: var(--font-weight-bold, 700);
166
+ text-transform: uppercase;
167
+ -webkit-font-smoothing: antialiased;
168
+ -moz-osx-font-smoothing: grayscale;
169
+ }
170
+ .typography-info-tip {
171
+ min-height: auto;
172
+ text-box: trim-both text;
173
+ font-family: var(--font-info, Karla, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
174
+ font-size: var(--text-size-info-tip, 0.75rem);
175
+ line-height: var(--tw-leading, var(--text-size-info-tip--line-height, 1rem));
176
+ font-weight: var(--tw-font-weight, var(--text-size-info-tip--font-weight, 400));
177
+ -webkit-font-smoothing: antialiased;
178
+ -moz-osx-font-smoothing: grayscale;
179
+ }
180
+ .typography-read-paragraph {
181
+ min-height: auto;
182
+ text-box: trim-both text;
183
+ font-family: var(--font-read, 'Merriweather', Times, 'Times New Roman', serif);
184
+ font-size: var(--text-size-read-paragraph, 1.25rem);
185
+ line-height: var(--tw-leading, var(--text-size-read-paragraph--line-height, 2rem));
186
+ font-weight: var(--tw-font-weight, var(--text-size-read-paragraph--font-weight, 300));
187
+ --tw-font-weight: var(--font-weight-light, 300);
188
+ font-weight: var(--font-weight-light, 300);
189
+ -webkit-font-smoothing: antialiased;
190
+ -moz-osx-font-smoothing: grayscale;
191
+ }
192
+ .typography-read-detail {
193
+ min-height: auto;
194
+ text-box: trim-both text;
195
+ font-family: var(--font-read, 'Merriweather', Times, 'Times New Roman', serif);
196
+ font-size: var(--text-size-read-detail, 1rem);
197
+ line-height: var(--tw-leading, var(--text-size-read-detail--line-height, 1.5rem));
198
+ font-weight: var(--tw-font-weight, var(--text-size-read-detail--font-weight, 300));
199
+ --tw-font-weight: var(--font-weight-light, 300);
200
+ font-weight: var(--font-weight-light, 300);
201
+ -webkit-font-smoothing: antialiased;
202
+ -moz-osx-font-smoothing: grayscale;
203
+ }
204
+ .typography-read-caption {
205
+ min-height: auto;
206
+ text-box: trim-both text;
207
+ font-family: var(--font-read, 'Merriweather', Times, 'Times New Roman', serif);
208
+ font-size: var(--text-size-read-caption, 0.875rem);
209
+ line-height: var(--tw-leading, var(--text-size-read-caption--line-height, 1.25rem));
210
+ font-weight: var(--tw-font-weight, var(--text-size-read-caption--font-weight, 400));
211
+ -webkit-font-smoothing: antialiased;
212
+ -moz-osx-font-smoothing: grayscale;
213
+ }
214
+ .typography-code-snippet {
215
+ min-height: auto;
216
+ text-box: trim-both text;
217
+ font-family: var(--font-code, 'Roboto Mono', 'Courier New', monospace);
218
+ font-size: var(--text-size-code-snippet, 1rem);
219
+ line-height: var(--tw-leading, var(--text-size-code-snippet--line-height, 1.5rem));
220
+ font-weight: var(--tw-font-weight, var(--text-size-code-snippet--font-weight, 400));
221
+ -webkit-font-smoothing: antialiased;
222
+ -moz-osx-font-smoothing: grayscale;
223
+ }
224
+ .typography-code-hack {
225
+ min-height: auto;
226
+ text-box: trim-both text;
227
+ font-family: var(--font-code, 'Roboto Mono', 'Courier New', monospace);
228
+ font-size: var(--text-size-code-hack, 0.875rem);
229
+ line-height: var(--tw-leading, var(--text-size-code-hack--line-height, 1.25rem));
230
+ font-weight: var(--tw-font-weight, var(--text-size-code-hack--font-weight, 400));
231
+ -webkit-font-smoothing: antialiased;
232
+ -moz-osx-font-smoothing: grayscale;
233
+ }
234
+ @property --tw-duration {
235
+ syntax: "*";
236
+ inherits: false;
237
+ }
238
+ @property --tw-ease {
239
+ syntax: "*";
240
+ inherits: false;
241
+ }
242
+ @property --tw-font-weight {
243
+ syntax: "*";
244
+ inherits: false;
245
+ }
246
+ @layer properties {
247
+ @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
248
+ *, ::before, ::after, ::backdrop {
249
+ --tw-duration: initial;
250
+ --tw-ease: initial;
251
+ --tw-font-weight: initial;
252
+ }
253
+ }
254
+ }
@@ -2,6 +2,7 @@
2
2
  @reference "@maggioli-design-system/design-tokens/dist/css/tailwind-theme-typography.css";
3
3
 
4
4
  @layer base {
5
+
5
6
  @view-transition {
6
7
  navigation: var(--magma-view-transition-navigation, auto);
7
8
  }
@@ -11,44 +12,45 @@
11
12
  transition-timing-function: var(--ease-out);
12
13
  }
13
14
 
15
+ /* No contrast twin: `text-default` is already the strongest step of the family,
16
+ * and the two rules that used to sit here keyed off `pref-contrast-high`, a
17
+ * class no controller writes, and off a hardcoded `--tone-neutral-01` that
18
+ * resolves to the very same value in both modes. */
19
+
14
20
  body {
15
21
  @apply font-info
16
22
  text-info-detail;
17
23
 
18
- background-color: rgb(var(--tone-neutral));
19
- color: rgb(var(--tone-neutral-03));
24
+ background-color: rgb(var(--magma-surface-default));
25
+ color: rgb(var(--magma-text-default));
20
26
  }
21
27
 
22
- :root.pref-contrast-high body {
23
- color: rgb(var(--tone-neutral-01));
28
+ /* color-scheme follows the palette, so the browser's own UI (scrollbars, form
29
+ * controls, autofill) matches the theme. The MODE comes first; a theme that
30
+ * only exists in one scheme (`pref-theme-scheme-light|dark`) comes after and
31
+ * wins, exactly as it overrides the mode in the palette. All the selectors have
32
+ * the same specificity, so the source order is the rule. */
33
+
34
+ /* no controller: the palette follows the OS, and so does the browser */
35
+ :root:not([data-magma-pref]),
36
+ :root.pref-mode-system {
37
+ color-scheme: light dark;
24
38
  }
25
39
 
26
- @media (prefers-contrast: more) {
27
- :root.pref-contrast-system body {
28
- color: rgb(var(--tone-neutral-01));
29
- }
40
+ :root.pref-mode-light {
41
+ color-scheme: light;
30
42
  }
31
43
 
32
- :root.pref-theme-scheme-dark {
33
- color-scheme: only dark;
44
+ :root.pref-mode-dark {
45
+ color-scheme: dark;
34
46
  }
35
47
 
36
48
  :root.pref-theme-scheme-light {
37
49
  color-scheme: only light;
38
50
  }
39
51
 
40
- :root.pref-theme-scheme-all {
41
- color-scheme: light dark;
42
- }
43
-
44
- @media (prefers-color-scheme: dark) {
45
- :root.pref-theme-system {
46
- color-scheme: dark;
47
- }
48
- }
49
-
50
- :root.pref-theme-scheme-all.pref-theme-dark {
51
- color-scheme: dark;
52
+ :root.pref-theme-scheme-dark {
53
+ color-scheme: only dark;
52
54
  }
53
55
 
54
56
  ::selection {
@@ -69,7 +71,12 @@
69
71
  }
70
72
 
71
73
  a {
72
- color: rgb(var(--theme-default-02-primary-text));
74
+
75
+ /* `--theme-default-02-primary-text` was defined nowhere, so the declaration
76
+ * was invalid at computed-value time and a link inherited the body colour.
77
+ * `accent-emphasis`, not `accent-fg`: 5.04:1 on white and 4.50:1 on the page
78
+ * surface, where fg sits at 3.92 and 3.51. */
79
+ color: rgb(var(--magma-accent-emphasis));
73
80
  }
74
81
 
75
82
  h1,
@@ -86,6 +93,7 @@
86
93
  }
87
94
 
88
95
  .hydrated {
96
+
89
97
  /*
90
98
  Revert all styles for hydrated web components
91
99
  to avoid tailwind base unwanted overrides
@@ -0,0 +1,119 @@
1
+ /*
2
+ Tailwind bridge for the semantic color layer.
3
+ GENERATED by scripts/semantic.ts from semantic.config.ts - do NOT edit by hand.
4
+ Contract + rationale: semantic.config.ts and SEMANTIC_COLOR_SPEC.md.
5
+ */
6
+
7
+ @theme {
8
+ --color-surface-sunken: rgb(var(--magma-surface-sunken));
9
+ --color-surface-muted: rgb(var(--magma-surface-muted));
10
+ --color-surface-default: rgb(var(--magma-surface-default));
11
+ --color-surface-raised: rgb(var(--magma-surface-raised));
12
+ --color-surface-overlay: rgb(var(--magma-surface-overlay));
13
+ --color-wash-soft: rgb(var(--magma-wash-soft));
14
+ --color-wash-base: rgb(var(--magma-wash-base));
15
+ --color-wash-strong: rgb(var(--magma-wash-strong));
16
+ --color-shadow-ink: rgb(var(--magma-shadow-ink));
17
+ --color-fg-default: rgb(var(--magma-text-default));
18
+ --color-fg-muted: rgb(var(--magma-text-muted));
19
+ --color-fg-subtle: rgb(var(--magma-text-subtle));
20
+ --color-fg-disabled: rgb(var(--magma-text-disabled));
21
+ --color-fg-on-emphasis: rgb(var(--magma-text-on-emphasis));
22
+ --color-border-muted: rgb(var(--magma-border-muted));
23
+ --color-border-default: rgb(var(--magma-border-default));
24
+ --color-border-strong: rgb(var(--magma-border-strong));
25
+ --color-border-focus: rgb(var(--magma-border-focus));
26
+ --color-info-wash-soft: rgb(var(--magma-info-wash-soft));
27
+ --color-info-wash-base: rgb(var(--magma-info-wash-base));
28
+ --color-info-wash-strong: rgb(var(--magma-info-wash-strong));
29
+ --color-info-fg-default: rgb(var(--magma-info-text-default));
30
+ --color-info-fg-muted: rgb(var(--magma-info-text-muted));
31
+ --color-info-fg-subtle: rgb(var(--magma-info-text-subtle));
32
+ --color-info-fg-disabled: rgb(var(--magma-info-text-disabled));
33
+ --color-info-border-muted: rgb(var(--magma-info-border-muted));
34
+ --color-info-border-default: rgb(var(--magma-info-border-default));
35
+ --color-info-border-strong: rgb(var(--magma-info-border-strong));
36
+ --color-info-emphasis: rgb(var(--magma-info-emphasis));
37
+ --color-info-emphasis-hover: rgb(var(--magma-info-emphasis-hover));
38
+ --color-info-emphasis-active: rgb(var(--magma-info-emphasis-active));
39
+ --color-info-on-emphasis: rgb(var(--magma-info-on-emphasis));
40
+ --color-info-surface: rgb(var(--magma-info-surface));
41
+ --color-info-fg: rgb(var(--magma-info-fg));
42
+ --color-info-border: rgb(var(--magma-info-border));
43
+ --color-success-wash-soft: rgb(var(--magma-success-wash-soft));
44
+ --color-success-wash-base: rgb(var(--magma-success-wash-base));
45
+ --color-success-wash-strong: rgb(var(--magma-success-wash-strong));
46
+ --color-success-fg-default: rgb(var(--magma-success-text-default));
47
+ --color-success-fg-muted: rgb(var(--magma-success-text-muted));
48
+ --color-success-fg-subtle: rgb(var(--magma-success-text-subtle));
49
+ --color-success-fg-disabled: rgb(var(--magma-success-text-disabled));
50
+ --color-success-border-muted: rgb(var(--magma-success-border-muted));
51
+ --color-success-border-default: rgb(var(--magma-success-border-default));
52
+ --color-success-border-strong: rgb(var(--magma-success-border-strong));
53
+ --color-success-emphasis: rgb(var(--magma-success-emphasis));
54
+ --color-success-emphasis-hover: rgb(var(--magma-success-emphasis-hover));
55
+ --color-success-emphasis-active: rgb(var(--magma-success-emphasis-active));
56
+ --color-success-on-emphasis: rgb(var(--magma-success-on-emphasis));
57
+ --color-success-surface: rgb(var(--magma-success-surface));
58
+ --color-success-fg: rgb(var(--magma-success-fg));
59
+ --color-success-border: rgb(var(--magma-success-border));
60
+ --color-warning-wash-soft: rgb(var(--magma-warning-wash-soft));
61
+ --color-warning-wash-base: rgb(var(--magma-warning-wash-base));
62
+ --color-warning-wash-strong: rgb(var(--magma-warning-wash-strong));
63
+ --color-warning-fg-default: rgb(var(--magma-warning-text-default));
64
+ --color-warning-fg-muted: rgb(var(--magma-warning-text-muted));
65
+ --color-warning-fg-subtle: rgb(var(--magma-warning-text-subtle));
66
+ --color-warning-fg-disabled: rgb(var(--magma-warning-text-disabled));
67
+ --color-warning-border-muted: rgb(var(--magma-warning-border-muted));
68
+ --color-warning-border-default: rgb(var(--magma-warning-border-default));
69
+ --color-warning-border-strong: rgb(var(--magma-warning-border-strong));
70
+ --color-warning-emphasis: rgb(var(--magma-warning-emphasis));
71
+ --color-warning-emphasis-hover: rgb(var(--magma-warning-emphasis-hover));
72
+ --color-warning-emphasis-active: rgb(var(--magma-warning-emphasis-active));
73
+ --color-warning-on-emphasis: rgb(var(--magma-warning-on-emphasis));
74
+ --color-warning-surface: rgb(var(--magma-warning-surface));
75
+ --color-warning-fg: rgb(var(--magma-warning-fg));
76
+ --color-warning-border: rgb(var(--magma-warning-border));
77
+ --color-danger-wash-soft: rgb(var(--magma-danger-wash-soft));
78
+ --color-danger-wash-base: rgb(var(--magma-danger-wash-base));
79
+ --color-danger-wash-strong: rgb(var(--magma-danger-wash-strong));
80
+ --color-danger-fg-default: rgb(var(--magma-danger-text-default));
81
+ --color-danger-fg-muted: rgb(var(--magma-danger-text-muted));
82
+ --color-danger-fg-subtle: rgb(var(--magma-danger-text-subtle));
83
+ --color-danger-fg-disabled: rgb(var(--magma-danger-text-disabled));
84
+ --color-danger-border-muted: rgb(var(--magma-danger-border-muted));
85
+ --color-danger-border-default: rgb(var(--magma-danger-border-default));
86
+ --color-danger-border-strong: rgb(var(--magma-danger-border-strong));
87
+ --color-danger-emphasis: rgb(var(--magma-danger-emphasis));
88
+ --color-danger-emphasis-hover: rgb(var(--magma-danger-emphasis-hover));
89
+ --color-danger-emphasis-active: rgb(var(--magma-danger-emphasis-active));
90
+ --color-danger-on-emphasis: rgb(var(--magma-danger-on-emphasis));
91
+ --color-danger-surface: rgb(var(--magma-danger-surface));
92
+ --color-danger-fg: rgb(var(--magma-danger-fg));
93
+ --color-danger-border: rgb(var(--magma-danger-border));
94
+ --color-neutral-fg: rgb(var(--magma-neutral-fg));
95
+ --color-neutral-border: rgb(var(--magma-neutral-border));
96
+ --color-surface-inverse: rgb(var(--magma-surface-inverse));
97
+ --color-surface-inverse-muted: rgb(var(--magma-surface-inverse-muted));
98
+ --color-on-inverse: rgb(var(--magma-on-inverse));
99
+ --color-neutral-emphasis: rgb(var(--magma-neutral-emphasis));
100
+ --color-neutral-on-emphasis: rgb(var(--magma-neutral-on-emphasis));
101
+ --color-accent-surface: rgb(var(--magma-accent-surface));
102
+ --color-accent-fg: rgb(var(--magma-accent-fg));
103
+ --color-accent-border: rgb(var(--magma-accent-border));
104
+ --color-accent-emphasis: rgb(var(--magma-accent-emphasis));
105
+ --color-accent-emphasis-hover: rgb(var(--magma-accent-emphasis-hover));
106
+ --color-accent-emphasis-active: rgb(var(--magma-accent-emphasis-active));
107
+ --color-accent-surface-hover: rgb(var(--magma-accent-surface-hover));
108
+ --color-accent-surface-subtle: rgb(var(--magma-accent-surface-subtle));
109
+ --color-accent-on-emphasis: rgb(var(--magma-accent-on-emphasis));
110
+ --color-accent-ai-surface: rgb(var(--magma-accent-ai-surface));
111
+ --color-accent-ai-fg: rgb(var(--magma-accent-ai-fg));
112
+ --color-accent-ai-border: rgb(var(--magma-accent-ai-border));
113
+ --color-accent-ai-emphasis: rgb(var(--magma-accent-ai-emphasis));
114
+ --color-accent-ai-emphasis-hover: rgb(var(--magma-accent-ai-emphasis-hover));
115
+ --color-accent-ai-emphasis-active: rgb(var(--magma-accent-ai-emphasis-active));
116
+ --color-accent-ai-surface-hover: rgb(var(--magma-accent-ai-surface-hover));
117
+ --color-accent-ai-surface-subtle: rgb(var(--magma-accent-ai-surface-subtle));
118
+ --color-accent-ai-on-emphasis: rgb(var(--magma-accent-ai-on-emphasis));
119
+ }
@@ -3,3 +3,6 @@
3
3
  /* @import "./dark-mode.css"; */
4
4
  @import '@maggioli-design-system/design-tokens/dist/css/tailwind-theme-color.css' layer(theme);
5
5
  @import '@maggioli-design-system/design-tokens/dist/css/tailwind-theme-typography.css';
6
+
7
+ /* semantic color layer bridge (--mds-* -> Tailwind --color-*) */
8
+ @import './semantic.css';
@@ -84,7 +84,7 @@
84
84
 
85
85
  .focus-zoom--light.focus-zoom--focused,
86
86
  .focus-zoom--light:focus-visible {
87
- --magma-outline-blur: 2px solid rgb(var(--tone-neutral));
87
+ --magma-outline-blur: 2px solid rgb(var(--magma-text-on-emphasis));
88
88
  }
89
89
 
90
90
  /* .not-hydrated {
@@ -1,19 +1,12 @@
1
+ /* See ../tailwind/base.css for the why: the page is the semantic surface, the
2
+ * text role needs no contrast twin, and the fallbacks name the raw family the
3
+ * default theme aliases. */
1
4
  body {
2
5
  @apply font-info
3
6
  text-info-detail;
4
7
 
5
- background-color: rgb(var(--tone-neutral, theme('colors.tone-neutral')));
6
- color: rgb(var(--tone-neutral-03, theme('colors.tone-neutral-03')));
7
- }
8
-
9
- :root.pref-contrast-high body {
10
- color: rgb(var(--tone-neutral-01, theme('colors.tone-neutral-01')));
11
- }
12
-
13
- @media (prefers-contrast: more) {
14
- :root.pref-contrast-system body {
15
- color: rgb(var(--tone-neutral-01, theme('colors.tone-neutral-01')));
16
- }
8
+ background-color: rgb(var(--magma-surface-default, theme('colors.surface-neutral-default')));
9
+ color: rgb(var(--magma-text-default, theme('colors.text-neutral-default')));
17
10
  }
18
11
 
19
12
  ::selection {
@@ -34,7 +27,10 @@ strong {
34
27
  }
35
28
 
36
29
  a {
37
- color: rgb(var(--theme-default-02-primary-text, theme('colors.theme-default-02-primary-text')));
30
+ /* no theme() fallback: the accent roles are theme aliases with no raw twin in
31
+ * the palette, and `colors.theme-default-02-primary-text` never existed there
32
+ * either - the fallback was as dead as the custom property. */
33
+ color: rgb(var(--magma-accent-emphasis));
38
34
  }
39
35
 
40
36
  h1,
@@ -40,7 +40,7 @@
40
40
 
41
41
  .focus-zoom--light.focus-zoom--focused,
42
42
  .focus-zoom--light:focus-visible {
43
- --magma-outline-blur: 2px solid rgb(var(--tone-neutral));
43
+ --magma-outline-blur: 2px solid rgb(var(--tone-neutral-seed));
44
44
  }
45
45
 
46
46
  .hide-scrollbar {
package/package.json CHANGED
@@ -1,18 +1,22 @@
1
1
  {
2
2
  "name": "@maggioli-design-system/styles",
3
- "version": "16.0.0",
3
+ "version": "17.0.0",
4
4
  "description": "This module contains SCSS and CSS styles used by Maggioli Design System, it also makes available a Tailwind config based on Maggioli design tokens.",
5
5
  "main": "./tailwind.config.js",
6
6
  "scripts": {
7
- "build": "npm run clean && npm run copy && npm run hydrated && npm run tailwind.build",
7
+ "build": "npm run clean && npm run semantic && npm run corner && npm run properties && npm run editor.tokens && npm run copy && npm run hydrated && npm run tailwind.build",
8
8
  "clean": "tsx scripts/clean.ts",
9
+ "semantic": "tsx scripts/semantic.ts",
10
+ "properties": "tsx scripts/properties.ts",
11
+ "corner": "tsx scripts/corner.ts",
12
+ "editor.tokens": "tsx scripts/editor-tokens.ts",
9
13
  "hydrated": "tsx scripts/hydrated.ts",
10
14
  "copy": "tsx scripts/copy.ts",
11
15
  "tailwind.base": "postcss ./postcss/base.css -o ./dist/css/base.css",
12
16
  "tailwind.reset": "postcss ./postcss/reset.css -o ./dist/css/reset.css",
13
17
  "tailwind.layer": "postcss ./postcss/layer.css -o ./dist/css/layer.css",
14
18
  "tailwind.build": "npm run tailwind.base && npm run tailwind.reset && npm run tailwind.layer && npm run tailwind.typography",
15
- "tailwind.typography": "postcss ./postcss/typography.css -o ./dist/css/typography.css",
19
+ "tailwind.typography": "postcss ./postcss/typography.css -o ./dist/css/utility-typography.css",
16
20
  "lint": "eslint .",
17
21
  "lint:fix": "eslint . --fix"
18
22
  },
@@ -55,14 +59,16 @@
55
59
  "@fontsource/merriweather": "5.1.0",
56
60
  "@fontsource/roboto": "5.1.0",
57
61
  "@fontsource/roboto-mono": "5.1.0",
58
- "@maggioli-design-system/design-tokens": "14.0.0",
62
+ "@maggioli-design-system/design-tokens": "15.0.0",
59
63
  "normalize.css": "8.0.1"
60
64
  },
61
65
  "devDependencies": {
66
+ "@tailwindcss/postcss": "4.3.0",
62
67
  "autoprefixer": "10.4.27",
68
+ "handlebars": "4.7.9",
63
69
  "postcss-cli": "11.0.1",
64
- "postcss": "8.5.8",
70
+ "postcss": "8.5.28",
65
71
  "postcss-import": "16.1.1",
66
- "tailwindcss": "4.2.2"
72
+ "tailwindcss": "4.3.0"
67
73
  }
68
74
  }
@@ -31,8 +31,8 @@ module.exports = {
31
31
  darkMode: [
32
32
  'variant',
33
33
  [
34
- '@media (prefers-color-scheme: dark) { &:is(.pref-theme-system *) }',
35
- '&:is(.pref-theme-dark *)',
34
+ '@media (prefers-color-scheme: dark) { &:is(.pref-mode-system *) }',
35
+ '&:is(.pref-mode-dark *)',
36
36
  ],
37
37
  ],
38
38
  corePlugins: {