@maggioli-design-system/styles 17.4.0 → 17.5.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.
@@ -1,8 +1,8 @@
1
1
  /*
2
- @magma-design-system/design-tokens v15.3.0
2
+ @magma-design-system/design-tokens v15.4.0
3
3
  Generated by Style Dictionary
4
4
  Do not edit directly
5
- Generated at Sat, 24 Oct 2026 12:12:55 GMT
5
+ Generated at Wed, 04 Nov 2026 07:17:20 GMT
6
6
  */
7
7
 
8
8
  :root {
@@ -73,6 +73,27 @@ Generated at Sat, 24 Oct 2026 12:12:55 GMT
73
73
  --text-size-code-hack--font-weight: 400;
74
74
  --text-size-code-hack--line-height: 1.25rem;
75
75
 
76
+ --text-size-title-page: var(--text-size-title-h3);
77
+ --text-size-title-page--font-weight: var(--text-size-title-h3--font-weight);
78
+ --text-size-title-page--letter-spacing: var(--text-size-title-h3--letter-spacing);
79
+ --text-size-title-page--line-height: var(--text-size-title-h3--line-height);
80
+ --text-size-title-section: var(--text-size-title-h5);
81
+ --text-size-title-section--font-weight: var(--text-size-title-h5--font-weight);
82
+ --text-size-title-section--letter-spacing: var(--text-size-title-h5--letter-spacing);
83
+ --text-size-title-section--line-height: var(--text-size-title-h5--line-height);
84
+ --text-size-title-dialog: var(--text-size-title-h5);
85
+ --text-size-title-dialog--font-weight: var(--text-size-title-h5--font-weight);
86
+ --text-size-title-dialog--letter-spacing: var(--text-size-title-h5--letter-spacing);
87
+ --text-size-title-dialog--line-height: var(--text-size-title-h5--line-height);
88
+ --text-size-title-part: var(--text-size-title-h6);
89
+ --text-size-title-part--font-weight: var(--text-size-title-h6--font-weight);
90
+ --text-size-title-part--letter-spacing: var(--text-size-title-h6--letter-spacing);
91
+ --text-size-title-part--line-height: var(--text-size-title-h6--line-height);
92
+ --text-size-title-group: var(--text-size-title-h6);
93
+ --text-size-title-group--font-weight: var(--text-size-title-h6--font-weight);
94
+ --text-size-title-group--letter-spacing: var(--text-size-title-h6--letter-spacing);
95
+ --text-size-title-group--line-height: var(--text-size-title-h6--line-height);
96
+
76
97
  --leading-2xs: 0.625rem;
77
98
  --leading-xs: 1rem;
78
99
  --leading-sm: 1.25rem;
@@ -95,7 +116,7 @@ Generated at Sat, 24 Oct 2026 12:12:55 GMT
95
116
  --spacing-4xl: 96px;
96
117
  --spacing-phrase: 50ch;
97
118
  --spacing-prose: 65ch;
98
- --spacing-text: 75ch;
119
+ --spacing-text: var(--magma-width-reading, 56ch);
99
120
  --spacing-title: 30ch;
100
121
 
101
122
  --container-4xs: 128px;
@@ -113,6 +134,22 @@ Generated at Sat, 24 Oct 2026 12:12:55 GMT
113
134
  --container-6xl: 1152px;
114
135
  --container-7xl: 1280px;
115
136
 
137
+ --magma-rhythm-inline: 12px;
138
+ --magma-rhythm-title-content: 12px;
139
+ --magma-rhythm-label-control: 12px;
140
+ --magma-rhythm-between-containers: 16px;
141
+ --magma-rhythm-between-fields: 24px;
142
+ --magma-rhythm-content-actions: 24px;
143
+ --magma-rhythm-inset: 24px;
144
+ --magma-rhythm-between-groups: 40px;
145
+ --magma-rhythm-between-sections: 64px;
146
+ --magma-width-reading: 56ch;
147
+ --magma-width-form: var(--magma-width-reading);
148
+ --magma-width-page: 1280px;
149
+ --magma-width-page-gutter: 24px;
150
+ --magma-width-dialog: calc(var(--magma-width-form) + 2 * var(--magma-rhythm-inset));
151
+ --magma-container-actions: 23.75rem;
152
+
116
153
  --breakpoint-mobile: 480px;
117
154
  --breakpoint-tablet: 768px;
118
155
  --breakpoint-desktop: 1024px;
@@ -1,4 +1,4 @@
1
- /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
1
+ /*! tailwindcss v4.3.4 | MIT License | https://tailwindcss.com */
2
2
  @layer properties;
3
3
  @layer utilities {
4
4
  .focus-zoom {
@@ -23,6 +23,9 @@
23
23
  .typography-title-h1 {
24
24
  min-height: auto;
25
25
  text-box: trim-both text;
26
+ &:where(input) {
27
+ text-box: normal;
28
+ }
26
29
  font-family: var(--font-title, Roboto, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
27
30
  font-size: var(--text-size-title-h1, 3rem);
28
31
  line-height: var(--tw-leading, var(--text-size-title-h1--line-height, 3rem));
@@ -36,6 +39,9 @@
36
39
  .typography-title-h2 {
37
40
  min-height: auto;
38
41
  text-box: trim-both text;
42
+ &:where(input) {
43
+ text-box: normal;
44
+ }
39
45
  font-family: var(--font-title, Roboto, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
40
46
  font-size: var(--text-size-title-h2, 2.25rem);
41
47
  line-height: var(--tw-leading, var(--text-size-title-h2--line-height, 2.5rem));
@@ -49,6 +55,9 @@
49
55
  .typography-title-h3 {
50
56
  min-height: auto;
51
57
  text-box: trim-both text;
58
+ &:where(input) {
59
+ text-box: normal;
60
+ }
52
61
  font-family: var(--font-title, Roboto, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
53
62
  font-size: var(--text-size-title-h3, 1.875rem);
54
63
  line-height: var(--tw-leading, var(--text-size-title-h3--line-height, 2.25rem));
@@ -62,6 +71,9 @@
62
71
  .typography-title-h4 {
63
72
  min-height: auto;
64
73
  text-box: trim-both text;
74
+ &:where(input) {
75
+ text-box: normal;
76
+ }
65
77
  font-family: var(--font-title, Roboto, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
66
78
  font-size: var(--text-size-title-h4, 1.5rem);
67
79
  line-height: var(--tw-leading, var(--text-size-title-h4--line-height, 2rem));
@@ -75,6 +87,9 @@
75
87
  .typography-title-h5 {
76
88
  min-height: auto;
77
89
  text-box: trim-both text;
90
+ &:where(input) {
91
+ text-box: normal;
92
+ }
78
93
  font-family: var(--font-title, Roboto, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
79
94
  font-size: var(--text-size-title-h5, 1.25rem);
80
95
  line-height: var(--tw-leading, var(--text-size-title-h5--line-height, 1.75rem));
@@ -88,6 +103,9 @@
88
103
  .typography-title-h6 {
89
104
  min-height: auto;
90
105
  text-box: trim-both text;
106
+ &:where(input) {
107
+ text-box: normal;
108
+ }
91
109
  font-family: var(--font-title, Roboto, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
92
110
  font-size: var(--text-size-title-h6, 1rem);
93
111
  line-height: var(--tw-leading, var(--text-size-title-h6--line-height, 1.5rem));
@@ -101,6 +119,9 @@
101
119
  .typography-title-action {
102
120
  min-height: auto;
103
121
  text-box: trim-both text;
122
+ &:where(input) {
123
+ text-box: normal;
124
+ }
104
125
  font-family: var(--font-title, Roboto, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
105
126
  font-size: var(--text-size-title-action, 0.875rem);
106
127
  line-height: var(--tw-leading, var(--text-size-title-action--line-height, 1.5rem));
@@ -110,9 +131,82 @@
110
131
  -webkit-font-smoothing: antialiased;
111
132
  -moz-osx-font-smoothing: grayscale;
112
133
  }
134
+ .typography-title-page {
135
+ min-height: auto;
136
+ text-box: trim-both text;
137
+ &:where(input) {
138
+ text-box: normal;
139
+ }
140
+ font-family: var(--font-title, Roboto, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
141
+ font-size: var(--text-size-title-page, var(--text-size-title-h3, 1.875rem));
142
+ line-height: var(--tw-leading, var(--text-size-title-page--line-height, var(--text-size-title-h3--line-height, 2.25rem)));
143
+ letter-spacing: var(--tw-tracking, var(--text-size-title-page--letter-spacing, var(--text-size-title-h3--letter-spacing, -0.025em)));
144
+ font-weight: var(--tw-font-weight, var(--text-size-title-page--font-weight, var(--text-size-title-h3--font-weight, 900)));
145
+ -webkit-font-smoothing: antialiased;
146
+ -moz-osx-font-smoothing: grayscale;
147
+ }
148
+ .typography-title-section {
149
+ min-height: auto;
150
+ text-box: trim-both text;
151
+ &:where(input) {
152
+ text-box: normal;
153
+ }
154
+ font-family: var(--font-title, Roboto, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
155
+ font-size: var(--text-size-title-section, var(--text-size-title-h5, 1.25rem));
156
+ line-height: var(--tw-leading, var(--text-size-title-section--line-height, var(--text-size-title-h5--line-height, 1.75rem)));
157
+ letter-spacing: var(--tw-tracking, var(--text-size-title-section--letter-spacing, var(--text-size-title-h5--letter-spacing, -0.025em)));
158
+ font-weight: var(--tw-font-weight, var(--text-size-title-section--font-weight, var(--text-size-title-h5--font-weight, 900)));
159
+ -webkit-font-smoothing: antialiased;
160
+ -moz-osx-font-smoothing: grayscale;
161
+ }
162
+ .typography-title-dialog {
163
+ min-height: auto;
164
+ text-box: trim-both text;
165
+ &:where(input) {
166
+ text-box: normal;
167
+ }
168
+ font-family: var(--font-title, Roboto, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
169
+ font-size: var(--text-size-title-dialog, var(--text-size-title-h5, 1.25rem));
170
+ line-height: var(--tw-leading, var(--text-size-title-dialog--line-height, var(--text-size-title-h5--line-height, 1.75rem)));
171
+ letter-spacing: var(--tw-tracking, var(--text-size-title-dialog--letter-spacing, var(--text-size-title-h5--letter-spacing, -0.025em)));
172
+ font-weight: var(--tw-font-weight, var(--text-size-title-dialog--font-weight, var(--text-size-title-h5--font-weight, 900)));
173
+ -webkit-font-smoothing: antialiased;
174
+ -moz-osx-font-smoothing: grayscale;
175
+ }
176
+ .typography-title-part {
177
+ min-height: auto;
178
+ text-box: trim-both text;
179
+ &:where(input) {
180
+ text-box: normal;
181
+ }
182
+ font-family: var(--font-title, Roboto, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
183
+ font-size: var(--text-size-title-part, var(--text-size-title-h6, 1rem));
184
+ line-height: var(--tw-leading, var(--text-size-title-part--line-height, var(--text-size-title-h6--line-height, 1.5rem)));
185
+ letter-spacing: var(--tw-tracking, var(--text-size-title-part--letter-spacing, var(--text-size-title-h6--letter-spacing, -0.025em)));
186
+ font-weight: var(--tw-font-weight, var(--text-size-title-part--font-weight, var(--text-size-title-h6--font-weight, 700)));
187
+ -webkit-font-smoothing: antialiased;
188
+ -moz-osx-font-smoothing: grayscale;
189
+ }
190
+ .typography-title-group {
191
+ min-height: auto;
192
+ text-box: trim-both text;
193
+ &:where(input) {
194
+ text-box: normal;
195
+ }
196
+ font-family: var(--font-title, Roboto, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
197
+ font-size: var(--text-size-title-group, var(--text-size-title-h6, 1rem));
198
+ line-height: var(--tw-leading, var(--text-size-title-group--line-height, var(--text-size-title-h6--line-height, 1.5rem)));
199
+ letter-spacing: var(--tw-tracking, var(--text-size-title-group--letter-spacing, var(--text-size-title-h6--letter-spacing, -0.025em)));
200
+ font-weight: var(--tw-font-weight, var(--text-size-title-group--font-weight, var(--text-size-title-h6--font-weight, 700)));
201
+ -webkit-font-smoothing: antialiased;
202
+ -moz-osx-font-smoothing: grayscale;
203
+ }
113
204
  .typography-info-paragraph {
114
205
  min-height: auto;
115
206
  text-box: trim-both text;
207
+ &:where(input) {
208
+ text-box: normal;
209
+ }
116
210
  font-family: var(--font-info, Karla, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
117
211
  font-size: var(--text-size-info-paragraph, 1.25rem);
118
212
  line-height: var(--tw-leading, var(--text-size-info-paragraph--line-height, 2rem));
@@ -123,6 +217,9 @@
123
217
  .typography-info-detail {
124
218
  min-height: auto;
125
219
  text-box: trim-both text;
220
+ &:where(input) {
221
+ text-box: normal;
222
+ }
126
223
  font-family: var(--font-info, Karla, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
127
224
  font-size: var(--text-size-info-detail, 1rem);
128
225
  line-height: var(--tw-leading, var(--text-size-info-detail--line-height, 1.5rem));
@@ -133,6 +230,9 @@
133
230
  .typography-info-caption {
134
231
  min-height: auto;
135
232
  text-box: trim-both text;
233
+ &:where(input) {
234
+ text-box: normal;
235
+ }
136
236
  font-family: var(--font-info, Karla, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
137
237
  font-size: var(--text-size-info-caption, 0.875rem);
138
238
  line-height: var(--tw-leading, var(--text-size-info-caption--line-height, 1.25rem));
@@ -143,6 +243,9 @@
143
243
  .typography-info-label {
144
244
  min-height: auto;
145
245
  text-box: trim-both cap alphabetic;
246
+ &:where(input) {
247
+ text-box: normal;
248
+ }
146
249
  font-family: var(--font-info, Karla, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
147
250
  font-size: var(--text-size-info-label, 0.75rem);
148
251
  line-height: var(--tw-leading, var(--text-size-info-label--line-height, 1rem));
@@ -156,6 +259,9 @@
156
259
  .typography-info-option {
157
260
  min-height: auto;
158
261
  text-box: trim-both cap alphabetic;
262
+ &:where(input) {
263
+ text-box: normal;
264
+ }
159
265
  font-family: var(--font-info, Karla, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
160
266
  font-size: var(--text-size-info-option, 0.625rem);
161
267
  line-height: var(--tw-leading, var(--text-size-info-option--line-height, 0.625rem));
@@ -170,6 +276,9 @@
170
276
  .typography-info-tip {
171
277
  min-height: auto;
172
278
  text-box: trim-both text;
279
+ &:where(input) {
280
+ text-box: normal;
281
+ }
173
282
  font-family: var(--font-info, Karla, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
174
283
  font-size: var(--text-size-info-tip, 0.75rem);
175
284
  line-height: var(--tw-leading, var(--text-size-info-tip--line-height, 1rem));
@@ -180,6 +289,9 @@
180
289
  .typography-read-paragraph {
181
290
  min-height: auto;
182
291
  text-box: trim-both text;
292
+ &:where(input) {
293
+ text-box: normal;
294
+ }
183
295
  font-family: var(--font-read, 'Merriweather', Times, 'Times New Roman', serif);
184
296
  font-size: var(--text-size-read-paragraph, 1.25rem);
185
297
  line-height: var(--tw-leading, var(--text-size-read-paragraph--line-height, 2rem));
@@ -192,6 +304,9 @@
192
304
  .typography-read-detail {
193
305
  min-height: auto;
194
306
  text-box: trim-both text;
307
+ &:where(input) {
308
+ text-box: normal;
309
+ }
195
310
  font-family: var(--font-read, 'Merriweather', Times, 'Times New Roman', serif);
196
311
  font-size: var(--text-size-read-detail, 1rem);
197
312
  line-height: var(--tw-leading, var(--text-size-read-detail--line-height, 1.5rem));
@@ -204,6 +319,9 @@
204
319
  .typography-read-caption {
205
320
  min-height: auto;
206
321
  text-box: trim-both text;
322
+ &:where(input) {
323
+ text-box: normal;
324
+ }
207
325
  font-family: var(--font-read, 'Merriweather', Times, 'Times New Roman', serif);
208
326
  font-size: var(--text-size-read-caption, 0.875rem);
209
327
  line-height: var(--tw-leading, var(--text-size-read-caption--line-height, 1.25rem));
@@ -214,6 +332,9 @@
214
332
  .typography-code-snippet {
215
333
  min-height: auto;
216
334
  text-box: trim-both text;
335
+ &:where(input) {
336
+ text-box: normal;
337
+ }
217
338
  font-family: var(--font-code, 'Roboto Mono', 'Courier New', monospace);
218
339
  font-size: var(--text-size-code-snippet, 1rem);
219
340
  line-height: var(--tw-leading, var(--text-size-code-snippet--line-height, 1.5rem));
@@ -224,6 +345,9 @@
224
345
  .typography-code-hack {
225
346
  min-height: auto;
226
347
  text-box: trim-both text;
348
+ &:where(input) {
349
+ text-box: normal;
350
+ }
227
351
  font-family: var(--font-code, 'Roboto Mono', 'Courier New', monospace);
228
352
  font-size: var(--text-size-code-hack, 0.875rem);
229
353
  line-height: var(--tw-leading, var(--text-size-code-hack--line-height, 1.25rem));
@@ -244,7 +368,7 @@
244
368
  inherits: false;
245
369
  }
246
370
  @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)))) {
371
+ @supports ((-webkit-hyphens: none) and (not (margin-trim: block))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
248
372
  *, ::before, ::after, ::backdrop {
249
373
  --tw-duration: initial;
250
374
  --tw-ease: initial;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "magma": {
3
- "$description": "The semantic layer: the roles UI code paints with, which follow the mode, the named theme and the contrast preference.",
3
+ "$description": "The semantic layer: the roles UI code paints with. The colour roles follow the mode, the named theme and the contrast preference; rhythm and width are the spaces and the widths of the design language.",
4
4
  "pref": {
5
5
  "$description": "The preferences the mds-pref components write on the html element: read them to adapt, never set them by hand.",
6
6
  "$extensions": {
@@ -88,8 +88,81 @@
88
88
  @apply max-w-title;
89
89
  }
90
90
 
91
- p {
92
- @apply max-w-title;
91
+ /* p takes the cap of the reset, max-w-text (the reading measure, #1204): a cap written
92
+ * here, in a later layer, would win over it. */
93
+
94
+ /* The room of mds-status-bar (#1203): while a bar is visible at the end of the window, the page
95
+ * ends that far above it, and a field reached with Tab stops above it too (WCAG 2.4.11). No
96
+ * script measures the bar: the room is its tallest for its content, from its own sheet, plus
97
+ * rhythm/between-fields. It is a box after the body, not a padding of html: a page that zeroes
98
+ * the padding of html out of any layer, as many resets do, wins over every layer and would drop
99
+ * it. A page that scrolls in a box of its own reads the same room from --magma-status-bar-room.
100
+ * A shorter bar leaves the rest empty, never covered.
101
+ *
102
+ * The tallest bar: the margin of its area (800), the inset of the bar (600 twice), the
103
+ * description on a line of its own (one line of caption, the limit of its content), the gap to
104
+ * the actions (400) and their row (a button, 900). Up to 480px the bar takes the width of the
105
+ * window and its actions stack (actions/stacked): each action after the first adds a button and
106
+ * rhythm/inline, up to three (actions/at-most-three). */
107
+
108
+ html:has(mds-status-bar[visible]) {
109
+ --magma-status-bar-room: calc(
110
+ --spacing(800) + 2 * --spacing(600) + var(--text-size-info-caption--line-height) +
111
+ --spacing(400) + --spacing(900) + var(--magma-rhythm-between-fields)
112
+ );
113
+
114
+ scroll-padding-bottom: var(--magma-status-bar-room);
115
+ }
116
+
117
+ html:has(mds-status-bar[visible])::after {
118
+ content: '';
119
+ display: block;
120
+ height: var(--magma-status-bar-room);
121
+ }
122
+
123
+ @media (width <= 480px) {
124
+ html:has(mds-status-bar[visible] > :nth-child(2)) {
125
+ --magma-status-bar-room: calc(
126
+ --spacing(800) + 2 * --spacing(600) + var(--text-size-info-caption--line-height) +
127
+ --spacing(400) + 2 * --spacing(900) + var(--magma-rhythm-inline) +
128
+ var(--magma-rhythm-between-fields)
129
+ );
130
+ }
131
+
132
+ html:has(mds-status-bar[visible] > :nth-child(3)) {
133
+ --magma-status-bar-room: calc(
134
+ --spacing(800) + 2 * --spacing(600) + var(--text-size-info-caption--line-height) +
135
+ --spacing(400) + 3 * --spacing(900) + 2 * var(--magma-rhythm-inline) +
136
+ var(--magma-rhythm-between-fields)
137
+ );
138
+ }
139
+ }
140
+
141
+ /* The bar of mds-header (#1189, surfaces/band): the header stands in the flow, sticky, so the
142
+ * page starts under it by itself; while it stays put it covers the top of the window, and a
143
+ * field reached with Shift+Tab stops under it (WCAG 2.4.11), rhythm/between-fields lower, as at
144
+ * the bar of mds-status-bar. No script measures the bar: it is one row, its inset (400 twice) and
145
+ * a button (900); the floating bar (`inline`) stands its margin lower, 600, and 400 up to 767px
146
+ * (--mds-header-inline-margin, -mobile). */
147
+
148
+ html:has(mds-header) {
149
+ scroll-padding-top: calc(
150
+ 2 * --spacing(400) + --spacing(900) + var(--magma-rhythm-between-fields)
151
+ );
152
+ }
153
+
154
+ html:has(mds-header[appearance='inline']) {
155
+ scroll-padding-top: calc(
156
+ --spacing(600) + 2 * --spacing(400) + --spacing(900) + var(--magma-rhythm-between-fields)
157
+ );
158
+ }
159
+
160
+ @media (width <= 767px) {
161
+ html:has(mds-header[appearance='inline']) {
162
+ scroll-padding-top: calc(
163
+ --spacing(400) + 2 * --spacing(400) + --spacing(900) + var(--magma-rhythm-between-fields)
164
+ );
165
+ }
93
166
  }
94
167
 
95
168
  /* The box of the hydrated components (against Tailwind's preflight) is kept by