@fusion.dev/helix-styles 0.0.0-dev

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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Fusion Development Group
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/dist/all.css ADDED
@@ -0,0 +1,4 @@
1
+ /* all.css from @fusion.dev/helix-styles. The source, with the reasoning in it, is in the repository. */
2
+ @import "./primitives.css";
3
+ @import "./tokens.css";
4
+ @import "./base.css";
package/dist/base.css ADDED
@@ -0,0 +1,689 @@
1
+ /* base.css from @fusion.dev/helix-styles. The source, with the reasoning in it, is in the repository. */
2
+ *,
3
+ *::before,
4
+ *::after {
5
+ box-sizing: border-box;
6
+ }
7
+ html {
8
+ -webkit-tap-highlight-color: transparent;
9
+ -webkit-text-size-adjust: 100%;
10
+ text-size-adjust: 100%;
11
+ }
12
+ body {
13
+ background-color: var(--helix-color-background);
14
+ color: var(--helix-color-foreground);
15
+ font-family: var(--helix-font-sans);
16
+ font-size: var(--helix-text-md);
17
+ font-weight: var(--helix-weight-regular);
18
+ letter-spacing: var(--helix-tracking-normal);
19
+ line-height: var(--helix-leading-normal);
20
+ margin: 0;
21
+ overflow-x: clip;
22
+ }
23
+ :where(h1, h2, h3, h4, h5, h6) {
24
+ margin: 0;
25
+ }
26
+ :where([data-prose] h1, [data-prose] h2, [data-prose] h3),
27
+ :where([data-prose] h4, [data-prose] h5, [data-prose] h6) {
28
+ font-weight: var(--helix-weight-semibold);
29
+ letter-spacing: var(--helix-tracking-tight);
30
+ line-height: var(--helix-leading-heading);
31
+ }
32
+ :where([data-prose] h1) {
33
+ font-size: var(--helix-text-3xl);
34
+ }
35
+ :where([data-prose] h2) {
36
+ font-size: var(--helix-text-2xl);
37
+ }
38
+ :where([data-prose] h3) {
39
+ font-size: var(--helix-text-xl);
40
+ }
41
+ :where([data-prose] h4) {
42
+ font-size: var(--helix-text-lg);
43
+ }
44
+ :where([data-prose] h5) {
45
+ font-size: var(--helix-text-md);
46
+ }
47
+ :where([data-prose] h6) {
48
+ font-size: var(--helix-text-sm);
49
+ }
50
+ :where(p, figure, blockquote, dl, dd) {
51
+ margin: 0;
52
+ }
53
+ :where(ul, ol) {
54
+ margin: 0;
55
+ padding: 0;
56
+ }
57
+ :where(img, picture, video, canvas, svg) {
58
+ display: block;
59
+ max-inline-size: 100%;
60
+ }
61
+ helix-card > [slot="media"] {
62
+ max-inline-size: none;
63
+ }
64
+ :where(input, button, textarea, select) {
65
+ font: inherit;
66
+ }
67
+ :where([data-prose] a),
68
+ [data-link] {
69
+ color: var(--helix-color-primary);
70
+ text-decoration: underline;
71
+ text-decoration-color: color-mix(in oklab, currentColor 35%, transparent);
72
+ text-decoration-thickness: 1px;
73
+ text-underline-offset: 0.25em;
74
+ transition:
75
+ color var(--helix-duration-fast) var(--helix-easing-standard),
76
+ text-decoration-color var(--helix-duration-fast) var(--helix-easing-standard),
77
+ text-decoration-thickness var(--helix-duration-fast) var(--helix-easing-standard);
78
+ }
79
+ :where([data-prose] a):hover,
80
+ [data-link]:hover {
81
+ color: var(--helix-color-primary-hover);
82
+ text-decoration-color: currentColor;
83
+ text-decoration-thickness: 2px;
84
+ }
85
+ [data-link="subtle"],
86
+ [data-link="quiet"] {
87
+ color: var(--helix-color-foreground-muted);
88
+ }
89
+ [data-link="subtle"]:hover {
90
+ color: var(--helix-color-primary);
91
+ }
92
+ [data-link="quiet"] {
93
+ text-decoration: none;
94
+ }
95
+ [data-link="quiet"]:hover {
96
+ color: var(--helix-color-foreground);
97
+ text-decoration: none;
98
+ }
99
+ [data-link-underline="hover"] {
100
+ text-decoration: none;
101
+ }
102
+ [data-link-underline="hover"]:hover {
103
+ text-decoration: underline;
104
+ }
105
+ [data-link-size="xs"] {
106
+ font-size: var(--helix-text-xs);
107
+ }
108
+ [data-link-size="sm"] {
109
+ font-size: var(--helix-text-sm);
110
+ }
111
+ [data-link-size="lg"] {
112
+ font-size: var(--helix-text-lg);
113
+ }
114
+ [data-text="display"] {
115
+ font-family: var(--helix-font-display);
116
+ font-size: var(--helix-text-3xl);
117
+ font-weight: var(--helix-weight-semibold);
118
+ letter-spacing: var(--helix-tracking-tight);
119
+ line-height: var(--helix-leading-heading);
120
+ }
121
+ [data-text="heading"] {
122
+ font-family: var(--helix-font-sans);
123
+ font-size: var(--helix-text-2xl);
124
+ font-weight: var(--helix-weight-semibold);
125
+ letter-spacing: var(--helix-tracking-tight);
126
+ line-height: var(--helix-leading-heading);
127
+ }
128
+ [data-text="subheading"] {
129
+ font-family: var(--helix-font-sans);
130
+ font-size: var(--helix-text-xl);
131
+ font-weight: var(--helix-weight-semibold);
132
+ letter-spacing: var(--helix-tracking-tight);
133
+ line-height: var(--helix-leading-heading);
134
+ }
135
+ [data-text="title"] {
136
+ font-family: var(--helix-font-sans);
137
+ font-size: var(--helix-text-lg);
138
+ font-weight: var(--helix-weight-semibold);
139
+ letter-spacing: var(--helix-tracking-normal);
140
+ line-height: var(--helix-leading-heading);
141
+ }
142
+ [data-text="body"] {
143
+ font-family: var(--helix-font-sans);
144
+ font-size: var(--helix-text-md);
145
+ font-weight: var(--helix-weight-regular);
146
+ letter-spacing: var(--helix-tracking-normal);
147
+ line-height: var(--helix-leading-normal);
148
+ }
149
+ [data-text="body-strong"] {
150
+ font-family: var(--helix-font-sans);
151
+ font-size: var(--helix-text-md);
152
+ font-weight: var(--helix-weight-medium);
153
+ letter-spacing: var(--helix-tracking-normal);
154
+ line-height: var(--helix-leading-normal);
155
+ }
156
+ [data-text="caption"] {
157
+ font-family: var(--helix-font-sans);
158
+ font-size: var(--helix-text-sm);
159
+ font-weight: var(--helix-weight-regular);
160
+ letter-spacing: var(--helix-tracking-normal);
161
+ line-height: var(--helix-leading-normal);
162
+ }
163
+ [data-text="label"] {
164
+ font-family: var(--helix-font-sans);
165
+ font-size: var(--helix-text-xs);
166
+ font-weight: var(--helix-weight-medium);
167
+ letter-spacing: var(--helix-tracking-wide);
168
+ line-height: var(--helix-leading-normal);
169
+ }
170
+ [data-text="code"] {
171
+ font-family: var(--helix-font-mono);
172
+ font-size: var(--helix-text-xs);
173
+ font-weight: var(--helix-weight-regular);
174
+ letter-spacing: var(--helix-tracking-normal);
175
+ line-height: var(--helix-leading-normal);
176
+ }
177
+ [data-tone="muted"],
178
+ helix-text[tone="muted"] {
179
+ color: var(--helix-color-foreground-muted);
180
+ }
181
+ [data-tone="subtle"],
182
+ helix-text[tone="subtle"] {
183
+ color: var(--helix-color-foreground-subtle);
184
+ }
185
+ [data-tone="primary"],
186
+ helix-text[tone="primary"] {
187
+ color: var(--helix-color-primary);
188
+ }
189
+ [data-tone="danger"],
190
+ helix-text[tone="danger"] {
191
+ color: var(--helix-color-danger);
192
+ }
193
+ [data-button] {
194
+ --_button-edge: var(--helix-color-border);
195
+ --_button-fill: var(--_button-tone);
196
+ --_button-fill-hover: var(--_button-tone-hover);
197
+ --_button-on-tone: var(--helix-color-background);
198
+ --_button-tone: var(--helix-color-foreground);
199
+ --_button-tone-hover: color-mix(
200
+ in oklab,
201
+ var(--helix-color-foreground) 86%,
202
+ var(--helix-color-background)
203
+ );
204
+ align-items: center;
205
+ background-color: var(
206
+ --button-background-color,
207
+ color-mix(in oklab, var(--_button-tone) 6%, transparent)
208
+ );
209
+ block-size: var(--button-size, var(--helix-size-control));
210
+ border: var(--helix-border-thin) solid var(--_button-edge);
211
+ border-radius: var(--button-radius, var(--helix-radii-sm));
212
+ color: var(--button-foreground-color, var(--_button-tone));
213
+ cursor: pointer;
214
+ display: inline-flex;
215
+ font-family: var(--helix-font-sans);
216
+ font-size: var(--helix-text-control);
217
+ font-weight: var(--helix-weight-medium);
218
+ gap: var(--button-gap, var(--helix-space-xs));
219
+ justify-content: center;
220
+ letter-spacing: var(--helix-tracking-normal);
221
+ line-height: var(--helix-leading-tight);
222
+ padding-inline: var(--button-padding-inline, var(--helix-space-control));
223
+ text-decoration: none;
224
+ transition:
225
+ background-color var(--helix-duration-fast) var(--helix-easing-standard),
226
+ border-color var(--helix-duration-fast) var(--helix-easing-standard),
227
+ color var(--helix-duration-fast) var(--helix-easing-standard);
228
+ white-space: nowrap;
229
+ }
230
+ [data-button][data-button-tone="primary"] {
231
+ --_button-edge: var(--helix-color-primary);
232
+ --_button-fill: var(--helix-color-primary-surface);
233
+ --_button-fill-hover: var(--helix-color-primary-surface-hover);
234
+ --_button-on-tone: var(--helix-color-foreground-on-accent);
235
+ --_button-tone: var(--helix-color-primary);
236
+ --_button-tone-hover: var(--helix-color-primary-hover);
237
+ }
238
+ [data-button][data-button-tone="accent"] {
239
+ --_button-edge: var(--helix-color-accent);
240
+ --_button-fill: var(--helix-color-accent-surface);
241
+ --_button-fill-hover: var(--helix-color-accent-surface-hover);
242
+ --_button-on-tone: var(--helix-color-foreground-on-accent);
243
+ --_button-tone: var(--helix-color-accent);
244
+ --_button-tone-hover: var(--helix-color-accent-hover);
245
+ }
246
+ [data-button][data-button-tone="danger"] {
247
+ --_button-edge: var(--helix-color-danger);
248
+ --_button-fill: var(--helix-color-danger-surface);
249
+ --_button-fill-hover: var(--helix-color-danger-surface-hover);
250
+ --_button-on-tone: var(--helix-color-foreground-on-accent);
251
+ --_button-tone: var(--helix-color-danger);
252
+ --_button-tone-hover: color-mix(
253
+ in oklab,
254
+ var(--helix-color-danger) 86%,
255
+ var(--helix-color-foreground)
256
+ );
257
+ }
258
+ [data-button]:not(:disabled):hover {
259
+ background-color: var(
260
+ --button-background-color-hover,
261
+ var(--button-background-color, color-mix(in oklab, var(--_button-tone) 12%, transparent))
262
+ );
263
+ }
264
+ [data-button][data-button-width="standard"] {
265
+ min-inline-size: var(--button-inline-size, var(--helix-size-button));
266
+ max-inline-size: 100%;
267
+ }
268
+ [data-button][data-button-width="full"] {
269
+ display: flex;
270
+ inline-size: 100%;
271
+ }
272
+ [data-button="solid"] {
273
+ background-color: var(--button-background-color, var(--_button-fill));
274
+ border-color: transparent;
275
+ color: var(--button-foreground-color, var(--_button-on-tone));
276
+ }
277
+ [data-button="solid"]:not(:disabled):hover {
278
+ background-color: var(
279
+ --button-background-color-hover,
280
+ var(--button-background-color, var(--_button-fill-hover))
281
+ );
282
+ border-color: transparent;
283
+ }
284
+ [data-button="subtle"] {
285
+ background-color: var(
286
+ --button-background-color,
287
+ color-mix(in oklab, var(--_button-tone) 14%, transparent)
288
+ );
289
+ border-color: transparent;
290
+ }
291
+ [data-button="subtle"]:not(:disabled):hover {
292
+ background-color: var(
293
+ --button-background-color-hover,
294
+ var(--button-background-color, color-mix(in oklab, var(--_button-tone) 22%, transparent))
295
+ );
296
+ border-color: transparent;
297
+ }
298
+ helix-button-group:not([variant="spaced"]) > :not(:first-child) [data-button],
299
+ helix-button-group:not([variant="spaced"]) > [data-button]:not(:first-child) {
300
+ border-start-start-radius: 0;
301
+ border-end-start-radius: 0;
302
+ }
303
+ helix-button-group:not([variant="spaced"]) > :not(:last-child) [data-button],
304
+ helix-button-group:not([variant="spaced"]) > [data-button]:not(:last-child) {
305
+ border-start-end-radius: 0;
306
+ border-end-end-radius: 0;
307
+ }
308
+ [data-button="ghost"] {
309
+ background-color: var(--button-background-color, transparent);
310
+ border-color: transparent;
311
+ }
312
+ [data-button="ghost"]:not(:disabled):hover {
313
+ background-color: var(
314
+ --button-background-color-hover,
315
+ var(--button-background-color, color-mix(in oklab, var(--_button-tone) 8%, transparent))
316
+ );
317
+ border-color: transparent;
318
+ }
319
+ [data-density="sm"] helix-checkbox::part(label) {
320
+ font-size: var(--helix-text-xs);
321
+ }
322
+ [data-density="lg"] helix-checkbox::part(label) {
323
+ font-size: var(--helix-text-md);
324
+ }
325
+ [data-button][aria-disabled="true"] {
326
+ cursor: not-allowed;
327
+ opacity: 0.5;
328
+ }
329
+ [data-density] {
330
+ --helix-size-control-tight: calc(var(--helix-size-control) * 0.8);
331
+ --helix-size-control-loose: calc(var(--helix-size-control) * 1.2);
332
+ --helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);
333
+ --helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);
334
+ --helix-size-checkbox-tight: calc(var(--helix-size-checkbox) * 0.8);
335
+ --helix-size-checkbox-loose: calc(var(--helix-size-checkbox) * 1.2);
336
+ --helix-text-control: calc(var(--helix-text-sm) * var(--helix-density, 1));
337
+ --helix-space-control: calc(var(--helix-space-md) * var(--helix-density, 1));
338
+ --helix-size-checkbox: calc(var(--helix-size-checkbox-md) * var(--helix-density, 1));
339
+ --helix-size-icon: calc(var(--helix-size-icon-md) * var(--helix-density, 1));
340
+ --helix-size-control: calc(var(--helix-size-control-md) * var(--helix-density, 1));
341
+ --helix-size-switch: calc(var(--helix-size-switch-md) * var(--helix-density, 1));
342
+ --helix-size-tag: calc(var(--helix-size-tag-md) * var(--helix-density, 1));
343
+ }
344
+ [data-density="sm"] {
345
+ --helix-size-control-tight: calc(var(--helix-size-control) * 0.8);
346
+ --helix-size-control-loose: calc(var(--helix-size-control) * 1.2);
347
+ --helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);
348
+ --helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);
349
+ --helix-size-checkbox-tight: calc(var(--helix-size-checkbox) * 0.8);
350
+ --helix-size-checkbox-loose: calc(var(--helix-size-checkbox) * 1.2);
351
+ --helix-text-control: var(--helix-text-xs);
352
+ --helix-space-control: var(--helix-space-sm);
353
+ --helix-size-checkbox: var(--helix-size-checkbox-sm);
354
+ --helix-size-icon: var(--helix-size-icon-sm);
355
+ --helix-size-control: var(--helix-size-control-sm);
356
+ --helix-size-switch: var(--helix-size-switch-sm);
357
+ --helix-size-tag: var(--helix-size-tag-sm);
358
+ }
359
+ [data-density="md"] {
360
+ --helix-size-control-tight: calc(var(--helix-size-control) * 0.8);
361
+ --helix-size-control-loose: calc(var(--helix-size-control) * 1.2);
362
+ --helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);
363
+ --helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);
364
+ --helix-size-checkbox-tight: calc(var(--helix-size-checkbox) * 0.8);
365
+ --helix-size-checkbox-loose: calc(var(--helix-size-checkbox) * 1.2);
366
+ --helix-text-control: var(--helix-text-sm);
367
+ --helix-space-control: var(--helix-space-md);
368
+ --helix-size-checkbox: var(--helix-size-checkbox-md);
369
+ --helix-size-icon: var(--helix-size-icon-md);
370
+ --helix-size-control: var(--helix-size-control-md);
371
+ --helix-size-switch: var(--helix-size-switch-md);
372
+ --helix-size-tag: var(--helix-size-tag-md);
373
+ }
374
+ [data-density="lg"] {
375
+ --helix-size-control-tight: calc(var(--helix-size-control) * 0.8);
376
+ --helix-size-control-loose: calc(var(--helix-size-control) * 1.2);
377
+ --helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);
378
+ --helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);
379
+ --helix-size-checkbox-tight: calc(var(--helix-size-checkbox) * 0.8);
380
+ --helix-size-checkbox-loose: calc(var(--helix-size-checkbox) * 1.2);
381
+ --helix-text-control: var(--helix-text-md);
382
+ --helix-space-control: var(--helix-space-lg);
383
+ --helix-size-checkbox: var(--helix-size-checkbox-lg);
384
+ --helix-size-icon: var(--helix-size-icon-lg);
385
+ --helix-size-control: var(--helix-size-control-lg);
386
+ --helix-size-switch: var(--helix-size-switch-lg);
387
+ --helix-size-tag: var(--helix-size-tag-lg);
388
+ }
389
+ helix-toggle::part(item) {
390
+ align-items: center;
391
+ background: none;
392
+ block-size: var(--_toggle-height, auto);
393
+ border: none;
394
+ border-radius: var(--_toggle-radius, var(--helix-radii-sm));
395
+ color: var(--helix-color-foreground-muted);
396
+ cursor: pointer;
397
+ display: inline-flex;
398
+ flex: 1 1 auto;
399
+ font-family: var(--helix-font-sans);
400
+ font-size: var(--helix-text-sm);
401
+ font-weight: var(--helix-weight-medium);
402
+ justify-content: center;
403
+ padding-inline: var(--helix-space-sm);
404
+ text-decoration: none;
405
+ background-color: transparent;
406
+ transition:
407
+ background-color var(--helix-duration-fast) var(--helix-easing-standard),
408
+ color var(--helix-duration-fast) var(--helix-easing-standard);
409
+ white-space: nowrap;
410
+ }
411
+ helix-toggle::part(item):hover {
412
+ background-color: color-mix(in oklab, var(--helix-color-foreground) 5%, transparent);
413
+ color: var(--helix-color-foreground);
414
+ }
415
+ helix-toggle-group helix-toggle::part(item):hover {
416
+ background-color: transparent;
417
+ }
418
+ helix-toggle:state(selected)::part(item) {
419
+ background-color: transparent;
420
+ color: var(--helix-color-foreground);
421
+ }
422
+ helix-toggle[disabled]::part(item) {
423
+ cursor: not-allowed;
424
+ opacity: 0.5;
425
+ }
426
+ :where([data-navigation-item], helix-navigation a) {
427
+ align-items: center;
428
+ background: none;
429
+ border: none;
430
+ cursor: pointer;
431
+ font-family: var(--helix-font-sans);
432
+ block-size: 100%;
433
+ min-block-size: var(--helix-size-control-sm);
434
+ border-radius: var(--helix-radii-sm);
435
+ color: var(--helix-color-foreground-muted);
436
+ display: inline-flex;
437
+ font-size: var(--helix-text-sm);
438
+ font-weight: var(--helix-weight-medium);
439
+ justify-content: center;
440
+ padding-inline: var(--helix-space-sm);
441
+ text-decoration: none;
442
+ transition:
443
+ background-color var(--helix-duration-fast) var(--helix-easing-standard),
444
+ color var(--helix-duration-fast) var(--helix-easing-standard);
445
+ white-space: nowrap;
446
+ }
447
+ :where([data-navigation-item], helix-navigation a):hover {
448
+ background-color: color-mix(in oklab, var(--helix-color-foreground) 5%, transparent);
449
+ color: var(--helix-color-foreground);
450
+ }
451
+ [data-dock] {
452
+ --_dock-inset: var(--helix-space-lg);
453
+ position: fixed;
454
+ z-index: var(--helix-layer-sticky);
455
+ }
456
+ [data-dock-within] {
457
+ position: absolute;
458
+ }
459
+ [data-dock$="-end"] {
460
+ inset-inline-end: calc(var(--_dock-inset) + env(safe-area-inset-right));
461
+ }
462
+ [data-dock$="-start"] {
463
+ inset-inline-start: calc(var(--_dock-inset) + env(safe-area-inset-left));
464
+ }
465
+ [data-dock^="bottom"] {
466
+ inset-block-end: calc(var(--_dock-inset) + env(safe-area-inset-bottom));
467
+ }
468
+ [data-dock^="top"] {
469
+ inset-block-start: calc(var(--_dock-inset) + env(safe-area-inset-top));
470
+ }
471
+ [data-dock$="-center"] {
472
+ inset-inline-start: 50%;
473
+ translate: -50% 0;
474
+ }
475
+ [data-megamenu-group] {
476
+ display: flex;
477
+ flex-direction: column;
478
+ gap: var(--helix-space-xs);
479
+ }
480
+ [data-megamenu-heading] {
481
+ align-items: center;
482
+ color: var(--helix-color-foreground-subtle);
483
+ display: flex;
484
+ gap: var(--helix-space-xs);
485
+ font-family: var(--helix-font-sans);
486
+ font-size: var(--helix-text-xs);
487
+ font-weight: var(--helix-weight-medium);
488
+ margin: var(--helix-space-none) var(--helix-space-none) var(--helix-space-2xs);
489
+ padding-inline: var(--helix-space-sm);
490
+ }
491
+ [data-megamenu-heading] > :where(helix-icon, img, svg) {
492
+ --icon-size: var(--helix-size-icon-sm);
493
+ flex: 0 0 auto;
494
+ margin-inline-start: calc(var(--helix-space-sm) - var(--helix-space-xs) - var(--icon-size));
495
+ }
496
+ [data-megamenu-item] {
497
+ align-items: start;
498
+ block-size: auto;
499
+ white-space: normal;
500
+ border-radius: var(--helix-radii-sm);
501
+ color: var(--helix-color-foreground);
502
+ column-gap: var(--helix-space-sm);
503
+ display: grid;
504
+ grid-template-columns: auto minmax(0, 1fr);
505
+ padding: var(--helix-space-sm) var(--helix-space-sm);
506
+ row-gap: var(--helix-space-2xs);
507
+ text-decoration: none;
508
+ transition: background-color var(--helix-duration-fast) var(--helix-easing-standard);
509
+ }
510
+ [data-megamenu-item] + [data-megamenu-item] {
511
+ margin-block-start: calc(var(--helix-space-xs) * -1);
512
+ }
513
+ [data-megamenu-item] > :where(helix-icon, img, svg) {
514
+ --icon-size: var(--helix-size-icon-lg);
515
+ grid-column: 1;
516
+ grid-row: 1 / span 2;
517
+ }
518
+ [data-megamenu-item] > :where(strong, b) {
519
+ grid-column: 2;
520
+ font-size: var(--helix-text-sm);
521
+ font-weight: var(--helix-weight-semibold);
522
+ }
523
+ [data-megamenu-item] > :where(span, p) {
524
+ grid-column: 2;
525
+ color: var(--helix-color-foreground-muted);
526
+ font-size: var(--helix-text-sm);
527
+ font-weight: var(--helix-weight-regular);
528
+ margin: var(--helix-space-none);
529
+ }
530
+ [data-megamenu-group] :where([data-navigation-item], a):hover {
531
+ background-color: transparent;
532
+ }
533
+ [data-megamenu-item]:hover > :where(span, p) {
534
+ color: var(--helix-color-foreground);
535
+ }
536
+ [data-megamenu-item]:not(:has(> :where(helix-icon, img, svg)))::before {
537
+ align-self: center;
538
+ background-color: transparent;
539
+ block-size: var(--helix-space-xs);
540
+ border-radius: var(--helix-radii-full);
541
+ content: "";
542
+ grid-column: 1;
543
+ grid-row: 1;
544
+ inline-size: var(--helix-space-xs);
545
+ }
546
+ [data-megamenu-item][aria-current="page"]:not(:has(> :where(helix-icon, img, svg)))::before {
547
+ animation: helix-current-dot 4s var(--helix-easing-standard) infinite;
548
+ background-color: var(--helix-color-primary);
549
+ }
550
+ @keyframes helix-current-dot {
551
+ 50% {
552
+ opacity: 0.45;
553
+ scale: 0.78;
554
+ }
555
+ }
556
+ [data-megamenu-group] > :where([data-navigation-item], a):not([data-megamenu-item]) {
557
+ block-size: auto;
558
+ justify-content: start;
559
+ padding: var(--helix-space-xs) var(--helix-space-sm);
560
+ white-space: normal;
561
+ }
562
+ :where([data-navigation-item], helix-navigation a)[aria-current="page"] {
563
+ color: var(--helix-color-foreground);
564
+ font-weight: var(--helix-weight-semibold);
565
+ }
566
+ :where([data-navigation-item], helix-navigation a) {
567
+ position: relative;
568
+ z-index: var(--helix-layer-raised);
569
+ }
570
+ :where(helix-navigation a):focus-visible {
571
+ outline-offset: calc(var(--helix-size-focus-offset) * -1);
572
+ }
573
+ :where([data-list-item]) {
574
+ border-radius: var(--helix-radii-sm);
575
+ color: inherit;
576
+ cursor: pointer;
577
+ display: block;
578
+ text-decoration: none;
579
+ transition: background-color var(--helix-duration-fast) var(--helix-easing-standard);
580
+ }
581
+ :where([data-list-item]):hover {
582
+ background-color: color-mix(in oklab, var(--helix-color-foreground) 5%, transparent);
583
+ }
584
+ :where([data-list-item])[aria-current] {
585
+ background-color: color-mix(in oklab, var(--helix-color-foreground) 7%, transparent);
586
+ font-weight: var(--helix-weight-medium);
587
+ }
588
+ [data-material="glass"] {
589
+ backdrop-filter: var(--helix-material-backdrop);
590
+ background-color: var(--helix-material-translucent);
591
+ border: var(--helix-border-thin) solid var(--helix-material-border);
592
+ }
593
+ [data-material="frosted"] {
594
+ backdrop-filter: blur(var(--helix-material-blur-lg));
595
+ background-color: var(--helix-material-translucent-strong);
596
+ border: var(--helix-border-thin) solid var(--helix-material-border);
597
+ }
598
+ [data-material="transparent"] {
599
+ backdrop-filter: none;
600
+ background-color: transparent;
601
+ border-color: transparent;
602
+ }
603
+ [data-separation="elevated"] {
604
+ background-color: var(--helix-color-surface);
605
+ border-color: transparent;
606
+ border-radius: var(--helix-radii-sm);
607
+ box-shadow: var(--helix-shadow-md);
608
+ }
609
+ [data-separation="filled"] {
610
+ background-color: var(--helix-color-surface);
611
+ border-radius: var(--helix-radii-sm);
612
+ color: var(--helix-color-foreground);
613
+ }
614
+ [data-separation="outlined"] {
615
+ border: var(--helix-border-thin) solid var(--helix-color-border);
616
+ border-radius: var(--helix-radii-sm);
617
+ }
618
+ [data-separation="plain"] {
619
+ background-color: transparent;
620
+ border-color: transparent;
621
+ box-shadow: none;
622
+ }
623
+ :where([data-card]) {
624
+ border-radius: var(--card-radius, var(--helix-radii-lg));
625
+ color: inherit;
626
+ display: block;
627
+ outline: var(--helix-border-thin) solid transparent;
628
+ outline-offset: 0;
629
+ text-decoration: none;
630
+ transition: outline-color var(--helix-duration-fast) var(--helix-easing-standard);
631
+ }
632
+ @media (prefers-reduced-motion: reduce) {
633
+ :where([data-card]) {
634
+ transition: none;
635
+ }
636
+ }
637
+ :where([data-card]):hover {
638
+ --card-border-color: var(--helix-color-primary);
639
+ outline-color: var(--helix-color-primary);
640
+ }
641
+ :where([data-card])[aria-current] {
642
+ --card-border-color: var(--helix-color-primary);
643
+ }
644
+ helix-toast:not([data-color-mode]) {
645
+ color-scheme: var(--_helix-mode-inverted);
646
+ }
647
+ :where([data-prose] code, [data-prose] kbd, [data-prose] samp, [data-prose] pre) {
648
+ font-family: var(--helix-font-mono);
649
+ }
650
+ :where(:focus-visible) {
651
+ outline: var(--helix-size-focus-ring) solid var(--helix-color-focus-ring);
652
+ outline-offset: var(--helix-size-focus-offset);
653
+ }
654
+ :where(.helix-scroll) {
655
+ min-inline-size: 0;
656
+ overflow-x: auto;
657
+ }
658
+ @media (prefers-reduced-motion: reduce) {
659
+ *,
660
+ *::before,
661
+ *::after {
662
+ animation-duration: 0.01ms !important;
663
+ animation-iteration-count: 1 !important;
664
+ scroll-behavior: auto !important;
665
+ transition-duration: 0.01ms !important;
666
+ }
667
+ }
668
+ @media (prefers-reduced-motion: reduce) {
669
+ helix-toggle::part(item) {
670
+ transition: none;
671
+ }
672
+ }
673
+ ::highlight(helix-filter-match) {
674
+ background-color: light-dark(
675
+ color-mix(in oklab, var(--helix-color-primary) 22%, transparent),
676
+ color-mix(in oklab, var(--helix-color-primary) 32%, transparent)
677
+ );
678
+ }
679
+ [data-hidden-visually] {
680
+ block-size: 1px;
681
+ border: var(--helix-space-none);
682
+ clip-path: inset(50%);
683
+ inline-size: 1px;
684
+ margin: -1px;
685
+ overflow: hidden;
686
+ padding: var(--helix-space-none);
687
+ position: absolute;
688
+ white-space: nowrap;
689
+ }