@fusion.dev/helix-styles 0.228.0 → 0.229.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/base.css CHANGED
@@ -83,33 +83,37 @@ helix-card > [slot="media"] {
83
83
  color var(--helix-duration-fast) var(--helix-easing-standard),
84
84
  text-decoration-color var(--helix-duration-fast) var(--helix-easing-standard),
85
85
  text-decoration-thickness var(--helix-duration-fast) var(--helix-easing-standard);
86
- }
86
+ }@media (hover: hover) {
87
87
  :where([data-prose] a):hover,
88
88
  [data-link]:hover {
89
89
  color: var(--helix-color-primary-hover);
90
90
  text-decoration-color: currentColor;
91
91
  text-decoration-thickness: 2px;
92
92
  }
93
+ }
93
94
  [data-link="subtle"],
94
95
  [data-link="quiet"] {
95
96
  color: var(--helix-color-foreground-muted);
96
- }
97
+ }@media (hover: hover) {
97
98
  [data-link="subtle"]:hover {
98
99
  color: var(--helix-color-primary);
99
100
  }
101
+ }
100
102
  [data-link="quiet"] {
101
103
  text-decoration: none;
102
- }
104
+ }@media (hover: hover) {
103
105
  [data-link="quiet"]:hover {
104
106
  color: var(--helix-color-foreground);
105
107
  text-decoration: none;
106
108
  }
109
+ }
107
110
  [data-link-underline="hover"] {
108
111
  text-decoration: none;
109
- }
112
+ }@media (hover: hover) {
110
113
  [data-link-underline="hover"]:hover {
111
114
  text-decoration: underline;
112
115
  }
116
+ }
113
117
  [data-link-size="xs"] {
114
118
  font-size: var(--helix-text-xs);
115
119
  }
@@ -243,16 +247,16 @@ helix-text[tone="warning"][emphasis="muted"] {
243
247
  --_button-ink: color-mix(in oklab, var(--_button-tone) 78%, var(--helix-color-foreground));
244
248
  --_button-on-tone: var(--helix-color-background);
245
249
  --_button-tone: var(--helix-color-foreground);
246
- --_button-tone-hover: color-mix(
247
- in oklab,
248
- var(--helix-color-foreground) 86%,
249
- var(--helix-color-background)
250
+ --_button-tone-hover: light-dark(
251
+ color-mix(in oklab, var(--helix-color-foreground) 72%, var(--helix-color-background)),
252
+ color-mix(in oklab, var(--helix-color-foreground) 90%, var(--helix-color-background))
250
253
  );
251
- align-items: center;
252
- background-color: var(
253
- --button-background-color,
254
- color-mix(in oklab, var(--_button-tone) 6%, transparent)
254
+ --_button-fill-press: light-dark(
255
+ color-mix(in oklab, var(--helix-color-foreground) 60%, var(--helix-color-background)),
256
+ color-mix(in oklab, var(--helix-color-foreground) 80%, var(--helix-color-background))
255
257
  );
258
+ align-items: center;
259
+ background-color: var(--button-background-color, transparent);
256
260
  block-size: var(--button-size, var(--helix-size-control));
257
261
  border: var(--helix-border-thin) solid var(--_button-edge);
258
262
  border-radius: var(--button-radius, var(--helix-radii-sm));
@@ -278,6 +282,7 @@ helix-text[tone="warning"][emphasis="muted"] {
278
282
  --_button-edge: var(--helix-color-primary);
279
283
  --_button-fill: var(--helix-color-primary-surface);
280
284
  --_button-fill-hover: var(--helix-color-primary-surface-hover);
285
+ --_button-fill-press: var(--helix-color-primary-surface-active);
281
286
  --_button-on-tone: var(--helix-color-foreground-on-primary);
282
287
  --_button-tone: var(--helix-color-primary);
283
288
  --_button-tone-hover: var(--helix-color-primary-hover);
@@ -286,6 +291,7 @@ helix-text[tone="warning"][emphasis="muted"] {
286
291
  --_button-edge: var(--helix-color-accent);
287
292
  --_button-fill: var(--helix-color-accent-surface);
288
293
  --_button-fill-hover: var(--helix-color-accent-surface-hover);
294
+ --_button-fill-press: oklch(from var(--helix-color-accent-surface-hover) calc(l - 0.05) c h);
289
295
  --_button-on-tone: var(--helix-color-foreground-on-accent);
290
296
  --_button-tone: var(--helix-color-accent);
291
297
  --_button-tone-hover: var(--helix-color-accent-hover);
@@ -294,6 +300,7 @@ helix-text[tone="warning"][emphasis="muted"] {
294
300
  --_button-edge: var(--helix-color-danger);
295
301
  --_button-fill: var(--helix-color-danger-surface);
296
302
  --_button-fill-hover: var(--helix-color-danger-surface-hover);
303
+ --_button-fill-press: oklch(from var(--helix-color-danger-surface-hover) calc(l - 0.05) c h);
297
304
  --_button-on-tone: var(--helix-color-foreground-on-status);
298
305
  --_button-tone: var(--helix-color-danger);
299
306
  --_button-tone-hover: color-mix(
@@ -306,6 +313,7 @@ helix-text[tone="warning"][emphasis="muted"] {
306
313
  --_button-edge: var(--helix-color-info);
307
314
  --_button-fill: var(--helix-color-info-surface);
308
315
  --_button-fill-hover: var(--helix-color-info-surface-hover);
316
+ --_button-fill-press: oklch(from var(--helix-color-info-surface-hover) calc(l - 0.05) c h);
309
317
  --_button-on-tone: var(--helix-color-foreground-on-status);
310
318
  --_button-tone: var(--helix-color-info);
311
319
  --_button-tone-hover: color-mix(
@@ -318,6 +326,7 @@ helix-text[tone="warning"][emphasis="muted"] {
318
326
  --_button-edge: var(--helix-color-success);
319
327
  --_button-fill: var(--helix-color-success-surface);
320
328
  --_button-fill-hover: var(--helix-color-success-surface-hover);
329
+ --_button-fill-press: oklch(from var(--helix-color-success-surface-hover) calc(l - 0.05) c h);
321
330
  --_button-on-tone: var(--helix-color-foreground-on-status);
322
331
  --_button-tone: var(--helix-color-success);
323
332
  --_button-tone-hover: color-mix(
@@ -330,6 +339,7 @@ helix-text[tone="warning"][emphasis="muted"] {
330
339
  --_button-edge: var(--helix-color-warning);
331
340
  --_button-fill: var(--helix-color-warning-surface);
332
341
  --_button-fill-hover: var(--helix-color-warning-surface-hover);
342
+ --_button-fill-press: oklch(from var(--helix-color-warning-surface-hover) calc(l - 0.05) c h);
333
343
  --_button-on-tone: var(--helix-color-foreground-on-status);
334
344
  --_button-tone: var(--helix-color-warning);
335
345
  --_button-tone-hover: color-mix(
@@ -337,13 +347,20 @@ helix-text[tone="warning"][emphasis="muted"] {
337
347
  var(--helix-color-warning) 86%,
338
348
  var(--helix-color-foreground)
339
349
  );
340
- }
350
+ }@media (hover: hover) {
341
351
  [data-button]:not(:disabled):hover {
342
352
  background-color: var(
343
353
  --button-background-color-hover,
344
354
  var(--button-background-color, color-mix(in oklab, var(--_button-tone) 12%, transparent))
345
355
  );
346
356
  }
357
+ }
358
+ [data-button]:not(:disabled):active {
359
+ background-color: var(
360
+ --button-background-color,
361
+ color-mix(in oklab, var(--_button-tone) 16%, transparent)
362
+ );
363
+ }
347
364
  [data-button][data-button-width="full"] {
348
365
  display: flex;
349
366
  inline-size: 100%;
@@ -352,7 +369,7 @@ helix-text[tone="warning"][emphasis="muted"] {
352
369
  background-color: var(--button-background-color, var(--_button-fill));
353
370
  border-color: transparent;
354
371
  color: var(--button-foreground-color, var(--_button-on-tone));
355
- }
372
+ }@media (hover: hover) {
356
373
  [data-button="solid"]:not(:disabled):hover {
357
374
  background-color: var(
358
375
  --button-background-color-hover,
@@ -360,6 +377,7 @@ helix-text[tone="warning"][emphasis="muted"] {
360
377
  );
361
378
  border-color: transparent;
362
379
  }
380
+ }
363
381
  [data-button="subtle"] {
364
382
  background-color: var(
365
383
  --button-background-color,
@@ -367,7 +385,7 @@ helix-text[tone="warning"][emphasis="muted"] {
367
385
  );
368
386
  border-color: transparent;
369
387
  color: var(--button-foreground-color, var(--_button-ink));
370
- }
388
+ }@media (hover: hover) {
371
389
  [data-button="subtle"]:not(:disabled):hover {
372
390
  background-color: var(
373
391
  --button-background-color-hover,
@@ -375,6 +393,7 @@ helix-text[tone="warning"][emphasis="muted"] {
375
393
  );
376
394
  border-color: transparent;
377
395
  }
396
+ }
378
397
  helix-button-group:not([variant="spaced"], [orientation="vertical"])
379
398
  > :not(:first-child)
380
399
  [data-button],
@@ -427,7 +446,7 @@ helix-button-group[orientation="vertical"]:not([variant="spaced"]) > button:not(
427
446
  background-color: var(--button-background-color, transparent);
428
447
  border-color: transparent;
429
448
  color: var(--button-foreground-color, var(--_button-tone));
430
- }
449
+ }@media (hover: hover) {
431
450
  [data-button="ghost"]:not(:disabled):hover {
432
451
  background-color: var(
433
452
  --button-background-color-hover,
@@ -436,25 +455,40 @@ helix-button-group[orientation="vertical"]:not([variant="spaced"]) > button:not(
436
455
  border-color: transparent;
437
456
  color: var(--button-foreground-color, var(--_button-ink));
438
457
  }
439
- [data-density="sm"] helix-checkbox::part(label) {
440
- font-size: var(--helix-text-xs);
441
458
  }
442
- [data-density="lg"] helix-checkbox::part(label) {
443
- font-size: var(--helix-text-md);
459
+ [data-button="solid"]:not(:disabled):active {
460
+ background-color: var(--button-background-color, var(--_button-fill-press));
461
+ }
462
+ [data-button="subtle"]:not(:disabled):active {
463
+ background-color: var(
464
+ --button-background-color,
465
+ color-mix(in oklab, var(--_button-tone) 30%, transparent)
466
+ );
467
+ }
468
+ [data-button="ghost"]:not(:disabled):active {
469
+ background-color: var(
470
+ --button-background-color,
471
+ color-mix(in oklab, var(--_button-tone) 16%, transparent)
472
+ );
444
473
  }
445
474
  [data-button][aria-disabled="true"] {
446
475
  cursor: not-allowed;
447
- opacity: 0.5;
476
+ opacity: var(--helix-opacity-disabled);
448
477
  }
449
478
  [data-density] {
450
- --helix-size-control-tight: calc(var(--helix-size-control) * 0.8);
479
+ --helix-size-control-tight: round(calc(var(--helix-size-control) * 0.8), 1px);
451
480
  --helix-size-control-loose: calc(var(--helix-size-control) * 1.2);
452
481
  --helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);
453
482
  --helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);
454
483
  --helix-size-checkbox-tight: calc(var(--helix-size-checkbox) * 0.8);
455
484
  --helix-size-checkbox-loose: calc(var(--helix-size-checkbox) * 1.2);
456
- --helix-text-control: calc(var(--helix-text-sm) * var(--helix-density, 1));
485
+ }
486
+ [data-density] {
487
+ --helix-text-control: calc(var(--helix-text-control-md) * var(--helix-density, 1));
457
488
  --helix-space-control: calc(var(--helix-space-md) * var(--helix-density, 1));
489
+ --helix-text-field: calc(var(--helix-text-md) * var(--helix-density, 1));
490
+ --helix-text-field-label: calc(var(--helix-text-sm) * var(--helix-density, 1));
491
+ --helix-space-field: calc(var(--helix-space-sm) * var(--helix-density, 1));
458
492
  --helix-size-checkbox: calc(var(--helix-size-checkbox-md) * var(--helix-density, 1));
459
493
  --helix-size-icon: calc(var(--helix-size-icon-md) * var(--helix-density, 1));
460
494
  --helix-size-control: calc(var(--helix-size-control-md) * var(--helix-density, 1));
@@ -462,14 +496,11 @@ helix-button-group[orientation="vertical"]:not([variant="spaced"]) > button:not(
462
496
  --helix-size-tag: calc(var(--helix-size-tag-md) * var(--helix-density, 1));
463
497
  }
464
498
  [data-density="sm"] {
465
- --helix-size-control-tight: calc(var(--helix-size-control) * 0.8);
466
- --helix-size-control-loose: calc(var(--helix-size-control) * 1.2);
467
- --helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);
468
- --helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);
469
- --helix-size-checkbox-tight: calc(var(--helix-size-checkbox) * 0.8);
470
- --helix-size-checkbox-loose: calc(var(--helix-size-checkbox) * 1.2);
471
- --helix-text-control: var(--helix-text-xs);
499
+ --helix-text-control: var(--helix-text-control-sm);
472
500
  --helix-space-control: var(--helix-space-sm);
501
+ --helix-text-field: var(--helix-text-sm);
502
+ --helix-text-field-label: var(--helix-text-xs);
503
+ --helix-space-field: var(--helix-space-xs);
473
504
  --helix-size-checkbox: var(--helix-size-checkbox-sm);
474
505
  --helix-size-icon: var(--helix-size-icon-sm);
475
506
  --helix-size-control: var(--helix-size-control-sm);
@@ -477,14 +508,11 @@ helix-button-group[orientation="vertical"]:not([variant="spaced"]) > button:not(
477
508
  --helix-size-tag: var(--helix-size-tag-sm);
478
509
  }
479
510
  [data-density="md"] {
480
- --helix-size-control-tight: calc(var(--helix-size-control) * 0.8);
481
- --helix-size-control-loose: calc(var(--helix-size-control) * 1.2);
482
- --helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);
483
- --helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);
484
- --helix-size-checkbox-tight: calc(var(--helix-size-checkbox) * 0.8);
485
- --helix-size-checkbox-loose: calc(var(--helix-size-checkbox) * 1.2);
486
- --helix-text-control: var(--helix-text-sm);
511
+ --helix-text-control: var(--helix-text-control-md);
487
512
  --helix-space-control: var(--helix-space-md);
513
+ --helix-text-field: var(--helix-text-md);
514
+ --helix-text-field-label: var(--helix-text-sm);
515
+ --helix-space-field: var(--helix-space-sm);
488
516
  --helix-size-checkbox: var(--helix-size-checkbox-md);
489
517
  --helix-size-icon: var(--helix-size-icon-md);
490
518
  --helix-size-control: var(--helix-size-control-md);
@@ -492,14 +520,11 @@ helix-button-group[orientation="vertical"]:not([variant="spaced"]) > button:not(
492
520
  --helix-size-tag: var(--helix-size-tag-md);
493
521
  }
494
522
  [data-density="lg"] {
495
- --helix-size-control-tight: calc(var(--helix-size-control) * 0.8);
496
- --helix-size-control-loose: calc(var(--helix-size-control) * 1.2);
497
- --helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);
498
- --helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);
499
- --helix-size-checkbox-tight: calc(var(--helix-size-checkbox) * 0.8);
500
- --helix-size-checkbox-loose: calc(var(--helix-size-checkbox) * 1.2);
501
- --helix-text-control: var(--helix-text-md);
523
+ --helix-text-control: var(--helix-text-control-lg);
502
524
  --helix-space-control: var(--helix-space-lg);
525
+ --helix-text-field: var(--helix-text-md);
526
+ --helix-text-field-label: var(--helix-text-sm);
527
+ --helix-space-field: var(--helix-space-md);
503
528
  --helix-size-checkbox: var(--helix-size-checkbox-lg);
504
529
  --helix-size-icon: var(--helix-size-icon-lg);
505
530
  --helix-size-control: var(--helix-size-control-lg);
@@ -517,8 +542,11 @@ helix-toggle::part(item) {
517
542
  display: inline-flex;
518
543
  flex: 1 1 auto;
519
544
  font-family: var(--helix-font-sans);
520
- font-size: var(--helix-text-sm);
545
+ font-size: var(--helix-text-control);
521
546
  font-weight: var(--helix-weight-medium);
547
+ min-inline-size: 0;
548
+ overflow: hidden;
549
+ text-overflow: ellipsis;
522
550
  justify-content: center;
523
551
  padding-inline: var(--toggle-item-padding-inline, var(--helix-space-sm));
524
552
  text-decoration: none;
@@ -527,14 +555,19 @@ helix-toggle::part(item) {
527
555
  background-color var(--helix-duration-fast) var(--helix-easing-standard),
528
556
  color var(--helix-duration-fast) var(--helix-easing-standard);
529
557
  white-space: nowrap;
530
- }
558
+ }@media (hover: hover) {
531
559
  helix-toggle:not([disabled])::part(item):hover {
532
560
  background-color: color-mix(in oklab, var(--helix-color-foreground) 5%, transparent);
533
561
  color: var(--helix-color-foreground);
534
562
  }
563
+ }@media (hover: hover) {
535
564
  helix-toggle-group helix-toggle::part(item):hover {
536
565
  background-color: transparent;
537
566
  }
567
+ }
568
+ helix-toggle:not([disabled])::part(item):active {
569
+ background-color: var(--helix-color-press);
570
+ }
538
571
  helix-toggle:state(selected)::part(item) {
539
572
  background-color: transparent;
540
573
  color: var(--toggle-item-color-selected, var(--helix-color-foreground));
@@ -542,9 +575,16 @@ helix-toggle:state(selected)::part(item) {
542
575
  helix-toggle:state(pressed)::part(item) {
543
576
  color: var(--toggle-item-color-selected, var(--helix-color-foreground));
544
577
  }
578
+ @media (forced-colors: active) {
579
+ helix-toggle:state(selected)::part(item),
580
+ helix-toggle:state(pressed)::part(item) {
581
+ color: HighlightText;
582
+ forced-color-adjust: none;
583
+ }
584
+ }
545
585
  helix-toggle[disabled]::part(item) {
546
586
  cursor: not-allowed;
547
- opacity: 0.5;
587
+ opacity: var(--helix-opacity-disabled);
548
588
  }
549
589
  :where([data-navigation-item], helix-navigation a) {
550
590
  align-items: center;
@@ -570,12 +610,29 @@ helix-toggle[disabled]::part(item) {
570
610
  :where(helix-navigation[orientation="vertical"]) :where([data-navigation-item], a) {
571
611
  justify-content: start;
572
612
  }
613
+ :where(helix-navigation:not([orientation="vertical"])) :where([data-navigation-item], a) {
614
+ position: relative;
615
+ }
616
+ :where(helix-navigation:not([orientation="vertical"])) :where([data-navigation-item], a)::after {
617
+ content: "";
618
+ inset-block: calc((var(--helix-size-target) - 100%) / -2);
619
+ inset-inline: 0;
620
+ position: absolute;
621
+ }
622
+ @media (pointer: coarse) {
623
+ :where(helix-navigation[orientation="vertical"]) :where([data-navigation-item], a) {
624
+ min-block-size: var(--helix-size-target);
625
+ }
626
+ }
573
627
  :where(helix-navigation[variant="segmented"]) :where([data-navigation-item], a) {
574
628
  min-block-size: 0;
575
629
  }
576
630
  :where(helix-navigation[orientation="vertical"]) :where(li) > :where([data-navigation-item], a) {
577
631
  display: flex;
578
632
  }
633
+ :where([data-navigation-item], helix-navigation a):active {
634
+ background-color: var(--helix-color-press);
635
+ }@media (hover: hover) {
579
636
  :where([data-navigation-item], helix-navigation a):hover {
580
637
  background-color: var(
581
638
  --navigation-item-hover-background-color,
@@ -583,6 +640,7 @@ helix-toggle[disabled]::part(item) {
583
640
  );
584
641
  color: var(--navigation-item-hover-color, var(--helix-color-foreground));
585
642
  }
643
+ }
586
644
  :where(helix-outline) :where(ul, ol) {
587
645
  list-style: none;
588
646
  margin: 0;
@@ -611,7 +669,7 @@ helix-toggle[disabled]::part(item) {
611
669
  overflow: hidden;
612
670
  text-overflow: ellipsis;
613
671
  white-space: nowrap;
614
- }
672
+ }@media (hover: hover) {
615
673
  :where(helix-outline) :where(li) > :where(a):hover {
616
674
  background-color: var(
617
675
  --outline-link-hover-background-color,
@@ -619,6 +677,7 @@ helix-toggle[disabled]::part(item) {
619
677
  );
620
678
  color: var(--outline-link-hover-color, var(--helix-color-foreground));
621
679
  }
680
+ }
622
681
  :where(helix-outline) :where(li) > :where(a[aria-current]) {
623
682
  color: var(--outline-link-current-color, var(--helix-color-foreground));
624
683
  font-weight: var(--outline-link-current-weight, var(--helix-weight-semibold));
@@ -701,13 +760,15 @@ helix-toggle[disabled]::part(item) {
701
760
  font-size: var(--helix-text-sm);
702
761
  font-weight: var(--helix-weight-regular);
703
762
  margin: var(--helix-space-none);
704
- }
763
+ }@media (hover: hover) {
705
764
  [data-megamenu-group] :where([data-navigation-item], a):hover {
706
765
  background-color: transparent;
707
766
  }
767
+ }@media (hover: hover) {
708
768
  [data-megamenu-item]:hover > :where(span, p) {
709
769
  color: var(--helix-color-foreground);
710
770
  }
771
+ }
711
772
  [data-megamenu-item]:not(:has(> :where(helix-icon, img, svg)))::before {
712
773
  align-self: center;
713
774
  background-color: transparent;
@@ -752,10 +813,11 @@ helix-toggle[disabled]::part(item) {
752
813
  display: block;
753
814
  text-decoration: none;
754
815
  transition: background-color var(--helix-duration-fast) var(--helix-easing-standard);
755
- }
816
+ }@media (hover: hover) {
756
817
  :where([data-list-item]):hover {
757
818
  background-color: color-mix(in oklab, var(--helix-color-foreground) 5%, transparent);
758
819
  }
820
+ }
759
821
  :where([data-list-item])[aria-current] {
760
822
  background-color: color-mix(in oklab, var(--helix-color-foreground) 7%, transparent);
761
823
  font-weight: var(--helix-weight-medium);
@@ -796,18 +858,19 @@ helix-toggle[disabled]::part(item) {
796
858
  box-shadow: none;
797
859
  }
798
860
  :where([data-card]) {
799
- border-radius: var(--card-radius, var(--helix-radii-lg));
861
+ border-radius: var(--card-radius, var(--helix-radii-md));
800
862
  color: inherit;
801
863
  display: block;
802
864
  outline: var(--helix-border-thin) solid transparent;
803
865
  outline-offset: 0;
804
866
  text-decoration: none;
805
867
  transition: outline-color var(--helix-duration-fast) var(--helix-easing-standard);
806
- }
868
+ }@media (hover: hover) {
807
869
  :where([data-card]):hover {
808
870
  --card-border-color: var(--helix-color-primary);
809
871
  outline-color: var(--helix-color-primary);
810
872
  }
873
+ }
811
874
  :where([data-card])[aria-current] {
812
875
  --card-border-color: var(--helix-color-primary);
813
876
  }
package/dist/elements.css CHANGED
@@ -503,7 +503,7 @@ helix-table:not(:defined) > helix-table-row > helix-table-cell {
503
503
  border-block-end: var(--helix-border-thin) solid var(--helix-color-border);
504
504
  box-sizing: border-box;
505
505
  display: flex;
506
- font-size: var(--helix-text-sm);
506
+ font-size: var(--helix-text-control);
507
507
  min-inline-size: 0;
508
508
  padding-inline: var(--helix-space-none) var(--helix-space-md);
509
509
  }
@@ -518,9 +518,14 @@ helix-table:not(:defined) > helix-table-column::part(column) {
518
518
  padding: 0;
519
519
  }
520
520
  helix-table:not(:defined) > helix-table-row > helix-table-cell {
521
+ font-variant-numeric: tabular-nums;
521
522
  min-block-size: var(--helix-size-control);
522
523
  overflow-wrap: anywhere;
523
- padding-block: var(--helix-space-xs);
524
+ padding-block: calc(var(--helix-space-control) * 0.5);
525
+ }
526
+ helix-table:not(:defined) > helix-table-column:last-of-type,
527
+ helix-table:not(:defined) > helix-table-row > helix-table-cell:last-child {
528
+ padding-inline-end: var(--helix-space-none);
524
529
  }
525
530
  helix-table:not(:defined) > helix-table-row > helix-table-cell[header] {
526
531
  font-weight: var(--helix-weight-medium);
@@ -551,13 +556,16 @@ helix-data-table:not(:defined):has(> helix-table-row) > helix-table-column:not([
551
556
  color: var(--data-table-heading-color, var(--helix-color-foreground-muted));
552
557
  display: flex;
553
558
  font-family: var(--helix-font-sans);
554
- font-size: var(--data-table-text, var(--helix-text-sm));
559
+ font-size: var(--data-table-text, var(--helix-text-control));
555
560
  font-weight: var(--helix-weight-semibold);
556
561
  min-block-size: var(--helix-size-control-loose);
557
562
  min-inline-size: 0;
558
563
  padding-block: var(--data-table-padding-block, var(--helix-space-none));
559
564
  padding-inline: var(--data-table-padding-inline, var(--helix-space-none) var(--helix-space-md));
560
565
  }
566
+ helix-data-table:not(:defined):has(> helix-table-row) > helix-table-column:last-of-type {
567
+ padding-inline: var(--data-table-padding-inline, var(--helix-space-none));
568
+ }
561
569
  helix-data-table:not(:defined):has(> helix-table-row) > helix-table-column[text-align="center"] {
562
570
  justify-content: center;
563
571
  }
@@ -579,7 +587,8 @@ helix-data-table > helix-table-row > helix-table-cell {
579
587
  color: var(--data-table-color, var(--helix-color-foreground));
580
588
  display: block;
581
589
  font-family: var(--helix-font-sans);
582
- font-size: var(--data-table-text, var(--helix-text-sm));
590
+ font-size: var(--data-table-text, var(--helix-text-control));
591
+ font-variant-numeric: tabular-nums;
583
592
  font-weight: inherit;
584
593
  min-block-size: auto;
585
594
  min-inline-size: auto;
@@ -587,6 +596,9 @@ helix-data-table > helix-table-row > helix-table-cell {
587
596
  padding-block: var(--data-table-padding-block, var(--helix-space-sm));
588
597
  padding-inline: var(--data-table-padding-inline, var(--helix-space-none) var(--helix-space-md));
589
598
  }
599
+ helix-data-table > helix-table-row > helix-table-cell:last-child {
600
+ padding-inline: var(--data-table-padding-inline, var(--helix-space-none));
601
+ }
590
602
  helix-data-table > helix-table-row:last-of-type > helix-table-cell {
591
603
  border-block-end-color: transparent;
592
604
  }
@@ -3,7 +3,7 @@
3
3
  [data-helix-theme] {
4
4
  --_helix-unset: initial;
5
5
  --_helix-seed-brand: var(--helix-seed-brand, var(--_helix-unset));
6
- --_helix-series-origin: var(--helix-seed-brand, oklch(0.539 0.19 258));
6
+ --_helix-series-origin: var(--helix-seed-brand, oklch(0.539 0.19 270));
7
7
  --helix-seed-accent-hue: 0;
8
8
  --_helix-accent-lightness: var(--helix-seed-accent-lightness, l);
9
9
  --_helix-seed-accent: var(
@@ -24,6 +24,7 @@
24
24
  --_helix-neutral-50: oklch(0.985 var(--_helix-neutral-cast));
25
25
  --_helix-neutral-100: oklch(0.97 var(--_helix-neutral-cast));
26
26
  --_helix-neutral-200: oklch(0.96 var(--_helix-neutral-cast));
27
+ --_helix-neutral-225: oklch(0.94 var(--_helix-neutral-cast));
27
28
  --_helix-neutral-300: oklch(0.91 var(--_helix-neutral-cast));
28
29
  --_helix-neutral-400: oklch(0.71 var(--_helix-neutral-cast));
29
30
  --_helix-neutral-450: oklch(0.67 var(--_helix-neutral-cast));
@@ -34,6 +35,7 @@
34
35
  --_helix-neutral-800: oklch(0.21 var(--_helix-neutral-cast));
35
36
  --_helix-neutral-900: oklch(0.182 var(--_helix-neutral-cast));
36
37
  --_helix-neutral-950: oklch(0.15 var(--_helix-neutral-cast));
38
+ --_helix-neutral-925: oklch(0.154 var(--_helix-neutral-cast));
37
39
  --_helix-series-hue-1: 0;
38
40
  --_helix-series-hue-2: 135;
39
41
  --_helix-series-hue-3: 270;
@@ -45,6 +47,7 @@
45
47
  --_helix-brand-500: var(--_helix-seed-brand);
46
48
  --_helix-brand-600: oklch(from var(--_helix-seed-brand) calc(l - 0.05) c h);
47
49
  --_helix-brand-700: oklch(from var(--_helix-seed-brand) calc(l - 0.1) c h);
50
+ --_helix-brand-800: oklch(from var(--_helix-brand-700) calc(l - 0.05) c h);
48
51
  --_helix-brand-400: oklch(from var(--_helix-seed-brand) calc(l + 0.13) c h);
49
52
  --_helix-brand-300: oklch(from var(--_helix-seed-brand) calc(l + 0.18) c h);
50
53
  --_helix-brand-200: oklch(from var(--_helix-seed-brand) calc(l + 0.23) c h);
@@ -52,7 +55,12 @@
52
55
  --_helix-brand-900: oklch(from var(--_helix-seed-brand) 0.28 calc(c * 0.5) h);
53
56
  --_helix-brand-quiet-500: oklch(from var(--_helix-brand-500) l calc(c * 0.5) h);
54
57
  --_helix-brand-quiet-400: oklch(from var(--_helix-brand-400) l calc(c * 0.5) h);
55
- --_helix-brand-on: oklch(from var(--_helix-seed-brand) 1 0 0);
58
+ --_helix-brand-on: oklch(from var(--_helix-seed-brand) clamp(0, (0.68 - l) * 1000, 1) 0 0);
59
+ --_helix-brand-wash: color-mix(
60
+ in oklab,
61
+ light-dark(var(--_helix-brand-500), var(--_helix-brand-400)) 20%,
62
+ transparent
63
+ );
56
64
  --_helix-ink-500: var(--_helix-neutral-800);
57
65
  --_helix-ink-600: oklch(from var(--_helix-ink-500) calc(l - 0.05) c h);
58
66
  --_helix-ink-700: oklch(from var(--_helix-ink-500) calc(l - 0.1) c h);
@@ -62,13 +70,19 @@
62
70
  --_helix-ink-200: var(--_helix-neutral-0);
63
71
  --_helix-ink-50: oklch(0.95 var(--_helix-neutral-cast));
64
72
  --_helix-ink-900: oklch(0.28 var(--_helix-neutral-cast));
73
+ --_helix-ink-surface-hover: oklch(from var(--_helix-ink-500) calc(l + 0.09) c h);
74
+ --_helix-ink-surface-hover-dark: oklch(from var(--_helix-ink-400) calc(l - 0.09) c h);
75
+ --_helix-ink-surface-active: oklch(from var(--_helix-ink-500) calc(l + 0.16) c h);
76
+ --_helix-ink-surface-active-dark: oklch(from var(--_helix-ink-400) calc(l - 0.17) c h);
65
77
  --_helix-accent-500: var(--_helix-seed-accent);
66
78
  --_helix-accent-600: oklch(from var(--_helix-seed-accent) calc(l - 0.05) c h);
67
79
  --_helix-accent-700: oklch(from var(--_helix-seed-accent) calc(l - 0.1) c h);
68
80
  --_helix-accent-400: oklch(from var(--_helix-seed-accent) calc(l + 0.13) c h);
81
+ --_helix-accent-300: oklch(from var(--_helix-seed-accent) calc(l + 0.18) c h);
82
+ --_helix-accent-200: oklch(from var(--_helix-seed-accent) calc(l + 0.23) c h);
69
83
  --_helix-accent-50: oklch(from var(--_helix-seed-accent) 0.95 calc(c * 0.25) h);
70
84
  --_helix-accent-900: oklch(from var(--_helix-seed-accent) 0.28 calc(c * 0.5) h);
71
- --_helix-accent-on: oklch(from var(--_helix-seed-accent) 1 0 0);
85
+ --_helix-accent-on: oklch(from var(--_helix-seed-accent) clamp(0, (0.68 - l) * 1000, 1) 0 0);
72
86
  --_helix-accent-quiet-500: oklch(from var(--_helix-accent-500) l calc(c * 0.5) h);
73
87
  --_helix-accent-quiet-400: oklch(from var(--_helix-accent-400) l calc(c * 0.5) h);
74
88
  --_helix-info-500: oklch(0.58 0.16 245);
package/dist/tokens.css CHANGED
@@ -36,32 +36,48 @@
36
36
  }
37
37
  }
38
38
  :root {
39
+ --_helix-size-target: 1.5rem;
39
40
  --_helix-text-field-min: 0px;
41
+ --_helix-text-control-sm: var(--helix-text-xs);
42
+ --_helix-text-control-md: var(--helix-text-sm);
43
+ --_helix-text-control-lg: var(--helix-text-md);
40
44
  }
41
45
  @media (pointer: coarse) {
42
46
  :root {
47
+ --_helix-size-target: 2.75rem;
43
48
  --_helix-text-field-min: 16px;
49
+ --_helix-text-control-sm: var(--helix-text-sm);
50
+ --_helix-text-control-md: var(--helix-text-md);
44
51
  }
45
52
  }
46
53
  :root,
47
54
  [data-helix-theme] {
48
55
  --helix-color-background: light-dark(var(--_helix-neutral-0), var(--_helix-neutral-1000));
49
- --helix-color-surface: light-dark(var(--_helix-neutral-50), var(--_helix-neutral-900));
56
+ --helix-color-surface: light-dark(var(--_helix-neutral-50), var(--_helix-neutral-925));
50
57
  --helix-color-surface-raised: light-dark(var(--_helix-neutral-100), var(--_helix-neutral-800));
51
58
  --helix-color-surface-overlay: light-dark(var(--_helix-neutral-0), var(--_helix-neutral-800));
52
- --helix-color-surface-sunken: light-dark(var(--_helix-neutral-200), var(--_helix-neutral-950));
59
+ --helix-color-surface-sunken: light-dark(var(--_helix-neutral-225), var(--_helix-neutral-900));
53
60
  --helix-color-well: color-mix(in oklab, var(--helix-color-foreground) 5%, transparent);
54
61
  --helix-color-hover: light-dark(
55
62
  color-mix(in oklab, var(--helix-color-foreground) 8%, transparent),
56
63
  color-mix(in oklab, var(--helix-color-foreground) 12%, transparent)
57
64
  );
65
+ --helix-color-primary-wash: var(
66
+ --_helix-brand-wash,
67
+ color-mix(in oklab, var(--helix-color-primary) 14%, transparent)
68
+ );
69
+ --helix-color-press: light-dark(
70
+ color-mix(in oklab, var(--helix-color-foreground) 16%, transparent),
71
+ color-mix(in oklab, var(--helix-color-foreground) 20%, transparent)
72
+ );
73
+ --helix-color-selected: color-mix(in oklab, var(--helix-color-foreground) 14%, transparent);
58
74
  --helix-color-overlay: light-dark(
59
75
  color-mix(in oklab, var(--_helix-neutral-950) 40%, transparent),
60
76
  color-mix(in oklab, var(--_helix-neutral-950) 64%, transparent)
61
77
  );
62
78
  --helix-color-foreground: light-dark(var(--_helix-neutral-1000), var(--_helix-neutral-0));
63
79
  --helix-color-foreground-muted: light-dark(var(--_helix-neutral-600), var(--_helix-neutral-400));
64
- --helix-color-foreground-subtle: light-dark(var(--_helix-neutral-550), var(--_helix-neutral-450));
80
+ --helix-color-foreground-subtle: light-dark(var(--_helix-neutral-500), var(--_helix-neutral-550));
65
81
  --helix-color-foreground-on-primary: var(--_helix-brand-on, var(--helix-color-background));
66
82
  --helix-color-foreground-on-accent: var(--_helix-accent-on, var(--helix-color-background));
67
83
  --helix-color-foreground-on-status: var(--_helix-neutral-0);
@@ -87,7 +103,7 @@
87
103
  );
88
104
  --helix-color-primary-subtle: light-dark(
89
105
  var(--_helix-brand-50, var(--_helix-ink-50)),
90
- var(--_helix-brand-900, var(--_helix-ink-900))
106
+ oklch(from var(--_helix-brand-900, var(--_helix-ink-900)) l calc(c * 0.5) h)
91
107
  );
92
108
  --helix-color-accent: light-dark(
93
109
  var(--_helix-accent-500, var(--_helix-ink-500)),
@@ -95,15 +111,15 @@
95
111
  );
96
112
  --helix-color-accent-hover: light-dark(
97
113
  var(--_helix-accent-600, var(--_helix-ink-600)),
98
- var(--_helix-accent-600, var(--_helix-ink-300))
114
+ var(--_helix-accent-300, var(--_helix-ink-300))
99
115
  );
100
116
  --helix-color-accent-active: light-dark(
101
117
  var(--_helix-accent-700, var(--_helix-ink-700)),
102
- var(--_helix-accent-700, var(--_helix-ink-200))
118
+ var(--_helix-accent-200, var(--_helix-ink-200))
103
119
  );
104
120
  --helix-color-accent-subtle: light-dark(
105
121
  var(--_helix-accent-50, var(--_helix-ink-50)),
106
- var(--_helix-accent-900, var(--_helix-ink-900))
122
+ oklch(from var(--_helix-accent-900, var(--_helix-ink-900)) l calc(c * 0.5) h)
107
123
  );
108
124
  --helix-color-accent-surface: light-dark(
109
125
  var(--_helix-accent-600, var(--_helix-ink-500)),
@@ -118,8 +134,16 @@
118
134
  var(--_helix-brand-600, var(--_helix-ink-400))
119
135
  );
120
136
  --helix-color-primary-surface-hover: light-dark(
121
- var(--_helix-brand-700, var(--_helix-ink-600)),
122
- var(--_helix-brand-700, var(--_helix-ink-450))
137
+ var(--_helix-brand-700, var(--_helix-ink-surface-hover)),
138
+ var(--_helix-brand-700, var(--_helix-ink-surface-hover-dark))
139
+ );
140
+ --helix-color-primary-surface-active: light-dark(
141
+ var(--_helix-brand-800, var(--_helix-ink-surface-active)),
142
+ var(--_helix-brand-800, var(--_helix-ink-surface-active-dark))
143
+ );
144
+ --helix-color-border-hover: light-dark(
145
+ var(--_helix-brand-500, var(--_helix-neutral-450)),
146
+ var(--_helix-brand-400, var(--_helix-neutral-550))
123
147
  );
124
148
  --helix-color-focus-ring: var(--helix-color-primary);
125
149
  --helix-color-brand-mark: light-dark(
@@ -170,11 +194,11 @@
170
194
  );
171
195
  --helix-color-series-2: light-dark(
172
196
  oklch(
173
- from var(--_helix-series-origin) 0.645 calc(0.238 * var(--_helix-seed-chroma-scale))
197
+ from var(--_helix-series-origin) 0.645 calc(0.18 * var(--_helix-seed-chroma-scale))
174
198
  calc(h + var(--_helix-series-hue-2))
175
199
  ),
176
200
  oklch(
177
- from var(--_helix-series-origin) 0.645 calc(0.238 * var(--_helix-seed-chroma-scale))
201
+ from var(--_helix-series-origin) 0.645 calc(0.18 * var(--_helix-seed-chroma-scale))
178
202
  calc(h + var(--_helix-series-hue-2))
179
203
  )
180
204
  );
@@ -401,6 +425,10 @@
401
425
  --helix-color-info: light-dark(var(--_helix-info-600), var(--_helix-info-400));
402
426
  --helix-color-success: light-dark(var(--_helix-success-600), var(--_helix-success-400));
403
427
  --helix-color-warning: light-dark(var(--_helix-warning-600), var(--_helix-warning-400));
428
+ --helix-color-warning-mark: light-dark(
429
+ oklch(from var(--helix-color-warning) calc(l + 0.11) calc(c * 1.25) h),
430
+ var(--helix-color-warning)
431
+ );
404
432
  --helix-color-danger: light-dark(var(--_helix-danger-600), var(--_helix-danger-400));
405
433
  --helix-color-rise: var(--helix-color-success);
406
434
  --helix-color-fall: var(--helix-color-danger);
@@ -484,21 +512,31 @@
484
512
  --helix-shadow-lg: 0 12px 32px var(--_helix-shadow-ink-lg);
485
513
  --helix-shadow-surface: var(--helix-shadow-none);
486
514
  --helix-shadow-floating: var(--helix-shadow-lg);
515
+ --helix-shadow-raised: var(--helix-shadow-floating);
487
516
  --helix-material-backdrop: blur(var(--helix-material-blur-md)) saturate(1.5);
488
517
  --helix-material-opacity: 1;
518
+ --helix-opacity-disabled: 0.5;
519
+ --helix-opacity-busy: 0.5;
489
520
  --helix-material-blur-sm: 8px;
490
521
  --helix-material-blur-md: 16px;
491
522
  --helix-material-blur-lg: 32px;
492
- --helix-material-translucent: color-mix(
493
- in oklab,
494
- light-dark(var(--_helix-neutral-0), var(--_helix-neutral-900)) 30%,
495
- transparent
523
+ --helix-material-translucent: light-dark(
524
+ color-mix(in oklab, var(--_helix-neutral-0) 30%, transparent),
525
+ color-mix(in oklab, var(--_helix-neutral-900) 60%, transparent)
496
526
  );
497
527
  --helix-material-translucent-strong: color-mix(
498
528
  in oklab,
499
529
  light-dark(var(--_helix-neutral-0), var(--_helix-neutral-900)) 88%,
500
530
  transparent
501
531
  );
532
+ --helix-material-modal: light-dark(
533
+ var(--helix-material-translucent-strong),
534
+ var(--helix-material-translucent)
535
+ );
536
+ --helix-material-panel: light-dark(
537
+ color-mix(in oklab, var(--_helix-neutral-0) 72%, transparent),
538
+ var(--helix-material-translucent)
539
+ );
502
540
  --helix-material-border: light-dark(
503
541
  color-mix(in oklab, var(--_helix-neutral-950) 14%, transparent),
504
542
  color-mix(in oklab, var(--_helix-neutral-0) 12%, transparent)
@@ -529,11 +567,18 @@
529
567
  --helix-size-control-md: calc(2.5rem * var(--_helix-seed-density));
530
568
  --helix-size-control-sm: calc(2rem * var(--_helix-seed-density));
531
569
  --helix-size-control: var(--helix-size-control-md);
532
- --helix-text-control: var(--helix-text-sm);
570
+ --helix-text-control-sm: var(--_helix-text-control-sm);
571
+ --helix-text-control-md: var(--_helix-text-control-md);
572
+ --helix-text-control-lg: var(--_helix-text-control-lg);
573
+ --helix-text-control: var(--helix-text-control-md);
574
+ --helix-text-field: var(--helix-text-md);
575
+ --helix-text-field-label: var(--helix-text-sm);
576
+ --helix-space-field: var(--helix-space-sm);
533
577
  --helix-text-field-min: var(--_helix-text-field-min);
534
578
  --helix-space-control: var(--helix-space-md);
579
+ --helix-size-target: var(--_helix-size-target);
535
580
  --helix-size-control-lg: calc(3rem * var(--_helix-seed-density));
536
- --helix-size-control-tight: calc(var(--helix-size-control) * 0.8);
581
+ --helix-size-control-tight: round(calc(var(--helix-size-control) * 0.8), 1px);
537
582
  --helix-size-control-loose: calc(var(--helix-size-control) * 1.2);
538
583
  --helix-size-icon-tight: calc(var(--helix-size-icon) * 0.8);
539
584
  --helix-size-icon-loose: calc(var(--helix-size-icon) * 1.2);
package/dist/tokens.json CHANGED
@@ -12,12 +12,13 @@
12
12
  "border",
13
13
  "shadow",
14
14
  "material",
15
+ "opacity",
15
16
  "duration",
16
17
  "easing",
17
18
  "size",
18
19
  "layer"
19
20
  ],
20
- "count": 200,
21
+ "count": 218,
21
22
  "groups": {
22
23
  "separation-policy": ["border-surface", "shadow-surface", "border-floating", "shadow-floating"],
23
24
  "surface-ladder": [
@@ -39,11 +40,11 @@
39
40
  "category": "color",
40
41
  "description": "A surface on the page, such as a card or a panel. The separation policy sets it apart with a fill, a border, or a shadow.",
41
42
  "name": "--helix-color-surface",
42
- "value": "light-dark(var(--_helix-neutral-50), var(--_helix-neutral-900))"
43
+ "value": "light-dark(var(--_helix-neutral-50), var(--_helix-neutral-925))"
43
44
  },
44
45
  {
45
46
  "category": "color",
46
- "description": "A raised surface on the page, such as a selected tab or a hovered row. Its fill is one step down the ramp.",
47
+ "description": "A panel raised inside a surface, such as a card inside a card. Its fill is one step down the ramp.",
47
48
  "name": "--helix-color-surface-raised",
48
49
  "value": "light-dark(var(--_helix-neutral-100), var(--_helix-neutral-800))"
49
50
  },
@@ -55,9 +56,9 @@
55
56
  },
56
57
  {
57
58
  "category": "color",
58
- "description": "A recessed surface that holds a value, such as an input, a track, or a groove. Its fill sets it apart.",
59
+ "description": "A recessed surface, such as a track or a groove. Its fill sets it apart. A field reads `well`.",
59
60
  "name": "--helix-color-surface-sunken",
60
- "value": "light-dark(var(--_helix-neutral-200), var(--_helix-neutral-950))"
61
+ "value": "light-dark(var(--_helix-neutral-225), var(--_helix-neutral-900))"
61
62
  },
62
63
  {
63
64
  "category": "color",
@@ -69,6 +70,24 @@
69
70
  "name": "--helix-color-hover",
70
71
  "value": "light-dark( color-mix(in oklab, var(--helix-color-foreground) 8%, transparent), color-mix(in oklab, var(--helix-color-foreground) 12%, transparent) )"
71
72
  },
73
+ {
74
+ "category": "color",
75
+ "description": "A wash of the primary color, such as the bubble of your own Chat message.",
76
+ "name": "--helix-color-primary-wash",
77
+ "value": "var(--_helix-brand-wash, color-mix(in oklab, var(--helix-color-primary) 14%, transparent))"
78
+ },
79
+ {
80
+ "category": "color",
81
+ "description": "A wash under a control being pressed, a step past the hover wash.",
82
+ "name": "--helix-color-press",
83
+ "value": "light-dark( color-mix(in oklab, var(--helix-color-foreground) 16%, transparent), color-mix(in oklab, var(--helix-color-foreground) 20%, transparent) )"
84
+ },
85
+ {
86
+ "category": "color",
87
+ "description": "A wash under something chosen that keeps its ground, such as a range of days.",
88
+ "name": "--helix-color-selected",
89
+ "value": "color-mix(in oklab, var(--helix-color-foreground) 14%, transparent)"
90
+ },
72
91
  {
73
92
  "category": "color",
74
93
  "name": "--helix-color-overlay",
@@ -87,9 +106,9 @@
87
106
  },
88
107
  {
89
108
  "category": "color",
90
- "description": "A mark that is not text, such as a separator, a chevron, or a grip, and the text of a disabled control. Its contrast is not guaranteed.",
109
+ "description": "A mark that is not text, such as a separator, a chevron, or a grip. Its contrast is not guaranteed.",
91
110
  "name": "--helix-color-foreground-subtle",
92
- "value": "light-dark(var(--_helix-neutral-550), var(--_helix-neutral-450))"
111
+ "value": "light-dark(var(--_helix-neutral-500), var(--_helix-neutral-550))"
93
112
  },
94
113
  {
95
114
  "category": "color",
@@ -149,7 +168,7 @@
149
168
  {
150
169
  "category": "color",
151
170
  "name": "--helix-color-primary-subtle",
152
- "value": "light-dark(var(--_helix-brand-50, var(--_helix-ink-50)), var(--_helix-brand-900, var(--_helix-ink-900)))"
171
+ "value": "light-dark(var(--_helix-brand-50, var(--_helix-ink-50)), oklch(from var(--_helix-brand-900, var(--_helix-ink-900)) l calc(c * 0.5) h))"
153
172
  },
154
173
  {
155
174
  "category": "color",
@@ -159,17 +178,17 @@
159
178
  {
160
179
  "category": "color",
161
180
  "name": "--helix-color-accent-hover",
162
- "value": "light-dark(var(--_helix-accent-600, var(--_helix-ink-600)), var(--_helix-accent-600, var(--_helix-ink-300)))"
181
+ "value": "light-dark(var(--_helix-accent-600, var(--_helix-ink-600)), var(--_helix-accent-300, var(--_helix-ink-300)))"
163
182
  },
164
183
  {
165
184
  "category": "color",
166
185
  "name": "--helix-color-accent-active",
167
- "value": "light-dark(var(--_helix-accent-700, var(--_helix-ink-700)), var(--_helix-accent-700, var(--_helix-ink-200)))"
186
+ "value": "light-dark(var(--_helix-accent-700, var(--_helix-ink-700)), var(--_helix-accent-200, var(--_helix-ink-200)))"
168
187
  },
169
188
  {
170
189
  "category": "color",
171
190
  "name": "--helix-color-accent-subtle",
172
- "value": "light-dark(var(--_helix-accent-50, var(--_helix-ink-50)), var(--_helix-accent-900, var(--_helix-ink-900)))"
191
+ "value": "light-dark(var(--_helix-accent-50, var(--_helix-ink-50)), oklch(from var(--_helix-accent-900, var(--_helix-ink-900)) l calc(c * 0.5) h))"
173
192
  },
174
193
  {
175
194
  "category": "color",
@@ -189,7 +208,18 @@
189
208
  {
190
209
  "category": "color",
191
210
  "name": "--helix-color-primary-surface-hover",
192
- "value": "light-dark(var(--_helix-brand-700, var(--_helix-ink-600)), var(--_helix-brand-700, var(--_helix-ink-450)))"
211
+ "value": "light-dark(var(--_helix-brand-700, var(--_helix-ink-surface-hover)), var(--_helix-brand-700, var(--_helix-ink-surface-hover-dark)))"
212
+ },
213
+ {
214
+ "category": "color",
215
+ "name": "--helix-color-primary-surface-active",
216
+ "value": "light-dark(var(--_helix-brand-800, var(--_helix-ink-surface-active)), var(--_helix-brand-800, var(--_helix-ink-surface-active-dark)))"
217
+ },
218
+ {
219
+ "category": "color",
220
+ "description": "The edge of a field under the pointer.",
221
+ "name": "--helix-color-border-hover",
222
+ "value": "light-dark(var(--_helix-brand-500, var(--_helix-neutral-450)), var(--_helix-brand-400, var(--_helix-neutral-550)))"
193
223
  },
194
224
  {
195
225
  "category": "color",
@@ -249,7 +279,7 @@
249
279
  {
250
280
  "category": "color",
251
281
  "name": "--helix-color-series-2",
252
- "value": "light-dark( oklch( from var(--_helix-series-origin) 0.645 calc(0.238 * var(--_helix-seed-chroma-scale)) calc(h + var(--_helix-series-hue-2)) ), oklch( from var(--_helix-series-origin) 0.645 calc(0.238 * var(--_helix-seed-chroma-scale)) calc(h + var(--_helix-series-hue-2)) ) )"
282
+ "value": "light-dark( oklch( from var(--_helix-series-origin) 0.645 calc(0.18 * var(--_helix-seed-chroma-scale)) calc(h + var(--_helix-series-hue-2)) ), oklch( from var(--_helix-series-origin) 0.645 calc(0.18 * var(--_helix-seed-chroma-scale)) calc(h + var(--_helix-series-hue-2)) ) )"
253
283
  },
254
284
  {
255
285
  "category": "color",
@@ -376,6 +406,12 @@
376
406
  "name": "--helix-color-warning",
377
407
  "value": "light-dark(var(--_helix-warning-600), var(--_helix-warning-400))"
378
408
  },
409
+ {
410
+ "category": "color",
411
+ "description": "Warning as a mark that is not text, such as a star or a Meter fill.",
412
+ "name": "--helix-color-warning-mark",
413
+ "value": "light-dark(oklch(from var(--helix-color-warning) calc(l + 0.11) calc(c * 1.25) h), var(--helix-color-warning))"
414
+ },
379
415
  {
380
416
  "category": "color",
381
417
  "name": "--helix-color-danger",
@@ -722,9 +758,15 @@
722
758
  "name": "--helix-shadow-floating",
723
759
  "value": "var(--helix-shadow-lg)"
724
760
  },
761
+ {
762
+ "category": "shadow",
763
+ "description": "The shadow of a control lifted over content.",
764
+ "name": "--helix-shadow-raised",
765
+ "value": "var(--helix-shadow-floating)"
766
+ },
725
767
  {
726
768
  "category": "material",
727
- "description": "The tint behind a modal.",
769
+ "description": "The blur and saturation behind a translucent surface.",
728
770
  "name": "--helix-material-backdrop",
729
771
  "value": "blur(var(--helix-material-blur-md)) saturate(1.5)"
730
772
  },
@@ -734,6 +776,18 @@
734
776
  "name": "--helix-material-opacity",
735
777
  "value": "1"
736
778
  },
779
+ {
780
+ "category": "opacity",
781
+ "description": "How far a disabled control fades.",
782
+ "name": "--helix-opacity-disabled",
783
+ "value": "0.5"
784
+ },
785
+ {
786
+ "category": "opacity",
787
+ "description": "How far rows fade while a new set loads.",
788
+ "name": "--helix-opacity-busy",
789
+ "value": "0.5"
790
+ },
737
791
  {
738
792
  "category": "material",
739
793
  "description": "The lightest backdrop blur.",
@@ -756,7 +810,7 @@
756
810
  "category": "material",
757
811
  "description": "The translucent background, for a surface that shows what is behind it.",
758
812
  "name": "--helix-material-translucent",
759
- "value": "color-mix( in oklab, light-dark(var(--_helix-neutral-0), var(--_helix-neutral-900)) 30%, transparent )"
813
+ "value": "light-dark( color-mix(in oklab, var(--_helix-neutral-0) 30%, transparent), color-mix(in oklab, var(--_helix-neutral-900) 60%, transparent) )"
760
814
  },
761
815
  {
762
816
  "category": "material",
@@ -764,6 +818,18 @@
764
818
  "name": "--helix-material-translucent-strong",
765
819
  "value": "color-mix( in oklab, light-dark(var(--_helix-neutral-0), var(--_helix-neutral-900)) 88%, transparent )"
766
820
  },
821
+ {
822
+ "category": "material",
823
+ "description": "The glass of a Dialog or Drawer, which sits over its own scrim.",
824
+ "name": "--helix-material-modal",
825
+ "value": "light-dark(var(--helix-material-translucent-strong), var(--helix-material-translucent))"
826
+ },
827
+ {
828
+ "category": "material",
829
+ "description": "The glass of a panel over the page, such as a Menu, Popover, or Tooltip.",
830
+ "name": "--helix-material-panel",
831
+ "value": "light-dark( color-mix(in oklab, var(--_helix-neutral-0) 72%, transparent), var(--helix-material-translucent) )"
832
+ },
767
833
  {
768
834
  "category": "material",
769
835
  "description": "The border a translucent surface needs to keep a visible edge.",
@@ -830,11 +896,41 @@
830
896
  "name": "--helix-size-control",
831
897
  "value": "var(--helix-size-control-md)"
832
898
  },
899
+ {
900
+ "category": "text",
901
+ "name": "--helix-text-control-sm",
902
+ "value": "var(--_helix-text-control-sm)"
903
+ },
904
+ {
905
+ "category": "text",
906
+ "name": "--helix-text-control-md",
907
+ "value": "var(--_helix-text-control-md)"
908
+ },
909
+ {
910
+ "category": "text",
911
+ "name": "--helix-text-control-lg",
912
+ "value": "var(--_helix-text-control-lg)"
913
+ },
833
914
  {
834
915
  "category": "text",
835
916
  "name": "--helix-text-control",
917
+ "value": "var(--helix-text-control-md)"
918
+ },
919
+ {
920
+ "category": "text",
921
+ "name": "--helix-text-field",
922
+ "value": "var(--helix-text-md)"
923
+ },
924
+ {
925
+ "category": "text",
926
+ "name": "--helix-text-field-label",
836
927
  "value": "var(--helix-text-sm)"
837
928
  },
929
+ {
930
+ "category": "space",
931
+ "name": "--helix-space-field",
932
+ "value": "var(--helix-space-sm)"
933
+ },
838
934
  {
839
935
  "category": "text",
840
936
  "name": "--helix-text-field-min",
@@ -845,6 +941,11 @@
845
941
  "name": "--helix-space-control",
846
942
  "value": "var(--helix-space-md)"
847
943
  },
944
+ {
945
+ "category": "size",
946
+ "name": "--helix-size-target",
947
+ "value": "var(--_helix-size-target)"
948
+ },
848
949
  {
849
950
  "category": "size",
850
951
  "name": "--helix-size-control-lg",
@@ -853,7 +954,7 @@
853
954
  {
854
955
  "category": "size",
855
956
  "name": "--helix-size-control-tight",
856
- "value": "calc(var(--helix-size-control) * 0.8)"
957
+ "value": "round(calc(var(--helix-size-control) * 0.8), 1px)"
857
958
  },
858
959
  {
859
960
  "category": "size",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fusion.dev/helix-styles",
3
3
  "description": "Design tokens and base layer. Pure CSS, no JavaScript.",
4
- "version": "0.228.0",
4
+ "version": "0.229.0",
5
5
  "license": "MIT",
6
6
  "author": "Fusion Development Group",
7
7
  "repository": {