@teseor/css 1.0.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/compiled.css +212 -107
  2. package/dist/index.css +276 -171
  3. package/package.json +1 -1
  4. package/src/00-config/tokens/_variables.scss +39 -25
  5. package/src/00-config/tokens/colors/index.scss +22 -21
  6. package/src/02-base/typography/typography.scss +16 -0
  7. package/src/03-layout/cluster/cluster-visual.png +0 -0
  8. package/src/03-layout/cluster/cluster.visual.spec.ts +15 -0
  9. package/src/03-layout/sidebar/sidebar-visual.png +0 -0
  10. package/src/03-layout/sidebar/sidebar.docs.json +62 -0
  11. package/src/03-layout/sidebar/sidebar.visual.spec.ts +14 -0
  12. package/src/03-layout/sidebar-nav/sidebar-nav.api.json +29 -80
  13. package/src/04-components/accordion/accordion.api.json +5 -1
  14. package/src/04-components/alert/alert.api.json +6 -0
  15. package/src/04-components/alert/index.scss +10 -15
  16. package/src/04-components/avatar/avatar.api.json +5 -0
  17. package/src/04-components/badge/index.scss +12 -9
  18. package/src/04-components/breadcrumb/breadcrumb.api.json +5 -0
  19. package/src/04-components/button/button-visual.png +0 -0
  20. package/src/04-components/button/button.api.json +30 -56
  21. package/src/04-components/button/button.docs.json +75 -0
  22. package/src/04-components/button/index.scss +27 -17
  23. package/src/04-components/button-group/button-group-visual.png +0 -0
  24. package/src/04-components/button-group/button-group.api.json +5 -1
  25. package/src/04-components/button-group/button-group.visual.spec.ts +2 -1
  26. package/src/04-components/checkbox/checkbox-visual.png +0 -0
  27. package/src/04-components/checkbox/checkbox.api.json +1 -1
  28. package/src/04-components/code/code.api.json +6 -1
  29. package/src/04-components/data-list/data-list-visual.png +0 -0
  30. package/src/04-components/data-list/data-list.api.json +16 -1
  31. package/src/04-components/data-list/data-list.visual.spec.ts +2 -1
  32. package/src/04-components/data-list/index.scss +3 -2
  33. package/src/04-components/dialog/dialog.api.json +12 -1
  34. package/src/04-components/disclosure/disclosure.api.json +13 -1
  35. package/src/04-components/divider/divider.api.json +3 -0
  36. package/src/04-components/drawer/drawer.api.json +17 -1
  37. package/src/04-components/field/field.api.json +9 -1
  38. package/src/04-components/form-error/form-error-visual.png +0 -0
  39. package/src/04-components/form-error/form-error.api.json +3 -0
  40. package/src/04-components/icon/icon-visual.png +0 -0
  41. package/src/04-components/icon/icon.api.json +7 -6
  42. package/src/04-components/icon/icon.docs.json +86 -22
  43. package/src/04-components/icon/index.scss +6 -19
  44. package/src/04-components/index.scss +1 -0
  45. package/src/04-components/input/input-visual.png +0 -0
  46. package/src/04-components/input/input.api.json +31 -0
  47. package/src/04-components/label/label.api.json +4 -0
  48. package/src/04-components/link/link-visual.png +0 -0
  49. package/src/04-components/link/link.api.json +6 -0
  50. package/src/04-components/menu/menu.api.json +24 -0
  51. package/src/04-components/modal/modal.api.json +12 -1
  52. package/src/04-components/nav/index.scss +142 -0
  53. package/src/04-components/nav/nav-visual.png +0 -0
  54. package/src/04-components/nav/nav.api.json +55 -0
  55. package/src/04-components/nav/nav.docs.json +242 -0
  56. package/src/04-components/nav/nav.visual.spec.ts +14 -0
  57. package/src/04-components/overlay/overlay.api.json +14 -1
  58. package/src/04-components/pagination/pagination.api.json +22 -1
  59. package/src/04-components/popover/popover.api.json +9 -1
  60. package/src/04-components/progress/progress.api.json +20 -1
  61. package/src/04-components/radio/radio-visual.png +0 -0
  62. package/src/04-components/radio/radio.api.json +1 -1
  63. package/src/04-components/select/select.api.json +3 -0
  64. package/src/04-components/skeleton/skeleton.api.json +8 -1
  65. package/src/04-components/status/status.api.json +14 -1
  66. package/src/04-components/table/table.api.json +8 -1
  67. package/src/04-components/tabs/tabs.api.json +17 -0
  68. package/src/04-components/tag/tag.api.json +4 -0
  69. package/src/04-components/textarea/textarea.api.json +3 -0
  70. package/src/04-components/toast/toast.api.json +22 -1
  71. package/src/04-components/toggle/toggle.api.json +5 -0
  72. package/src/04-components/tooltip/tooltip.api.json +11 -1
  73. package/src/testing/page-setup.ts +25 -9
package/dist/index.css CHANGED
@@ -9,26 +9,25 @@
9
9
  /* 00. Config: Layer definitions + Design tokens */
10
10
  /* Fonts (Google Fonts CDN) */
11
11
  :root {
12
- --ui-hue-primary: 220;
13
- --ui-hue-success: 142;
14
- --ui-hue-warning: 38;
15
- --ui-hue-danger: 0;
16
- --ui-color-neutral-50: hsl(var(--ui-hue-primary) 10% 98%);
17
- --ui-color-neutral-100: hsl(var(--ui-hue-primary) 10% 96%);
18
- --ui-color-neutral-200: hsl(var(--ui-hue-primary) 10% 90%);
19
- --ui-color-neutral-300: hsl(var(--ui-hue-primary) 10% 80%);
20
- --ui-color-neutral-400: hsl(var(--ui-hue-primary) 10% 60%);
21
- --ui-color-neutral-500: hsl(var(--ui-hue-primary) 10% 45%);
22
- --ui-color-neutral-600: hsl(var(--ui-hue-primary) 10% 35%);
23
- --ui-color-neutral-700: hsl(var(--ui-hue-primary) 10% 25%);
24
- --ui-color-neutral-800: hsl(var(--ui-hue-primary) 10% 15%);
25
- --ui-color-neutral-900: hsl(var(--ui-hue-primary) 10% 10%);
26
- --ui-color-primary-light: hsl(var(--ui-hue-primary) 85% 65%);
27
- --ui-color-primary: hsl(var(--ui-hue-primary) 85% 50%);
28
- --ui-color-primary-dark: hsl(var(--ui-hue-primary) 85% 40%);
29
- --ui-color-success: hsl(var(--ui-hue-success) 70% 45%);
30
- --ui-color-warning: hsl(var(--ui-hue-warning) 90% 50%);
31
- --ui-color-danger: hsl(var(--ui-hue-danger) 70% 50%);
12
+ --ui-color-primary: oklch(55% 0.22 250);
13
+ --ui-color-success: oklch(60% 0.18 145);
14
+ --ui-color-warning: oklch(75% 0.18 70);
15
+ --ui-color-danger: oklch(60% 0.22 25);
16
+ --ui-color-neutral: oklch(50% 0.02 250);
17
+ --ui-color-primary-light: color-mix(in oklch, var(--ui-color-primary) 50%, white);
18
+ --ui-color-primary-dark: color-mix(in oklch, var(--ui-color-primary) 75%, black);
19
+ --ui-color-primary-subtle: color-mix(in oklch, var(--ui-color-primary) 12%, white);
20
+ --ui-color-primary-hover: color-mix(in oklch, var(--ui-color-primary) 85%, black);
21
+ --ui-color-neutral-50: color-mix(in oklch, var(--ui-color-neutral) 3%, white);
22
+ --ui-color-neutral-100: color-mix(in oklch, var(--ui-color-neutral) 6%, white);
23
+ --ui-color-neutral-200: color-mix(in oklch, var(--ui-color-neutral) 12%, white);
24
+ --ui-color-neutral-300: color-mix(in oklch, var(--ui-color-neutral) 25%, white);
25
+ --ui-color-neutral-400: color-mix(in oklch, var(--ui-color-neutral) 50%, white);
26
+ --ui-color-neutral-500: var(--ui-color-neutral);
27
+ --ui-color-neutral-600: color-mix(in oklch, var(--ui-color-neutral) 85%, black);
28
+ --ui-color-neutral-700: color-mix(in oklch, var(--ui-color-neutral) 70%, black);
29
+ --ui-color-neutral-800: color-mix(in oklch, var(--ui-color-neutral) 50%, black);
30
+ --ui-color-neutral-900: color-mix(in oklch, var(--ui-color-neutral) 35%, black);
32
31
  }
33
32
  :root {
34
33
  --ui-space-px: calc(var(--ui-unit) * 0.125);
@@ -315,6 +314,17 @@
315
314
  padding: 0;
316
315
  background: none;
317
316
  }
317
+ a {
318
+ text-decoration: underline;
319
+ color: var(--ui-color-primary);
320
+ transition: color var(--ui-duration-fast) var(--ui-ease-default);
321
+ }
322
+ a:hover {
323
+ color: var(--ui-color-primary-hover);
324
+ }
325
+ a:visited {
326
+ color: var(--ui-color-primary);
327
+ }
318
328
  @media (width < 45.625rem) {
319
329
  h1 {
320
330
  font-size: var(--ui-font-size-2xl);
@@ -704,13 +714,13 @@
704
714
  .ui-sidebar-nav--collapsed {
705
715
  --ui-_width: var(--ui-sidebar-nav-width-collapsed, var(--ui-row-3));
706
716
  }
707
- .ui-sidebar-nav--collapsed .sidebar-nav__label,
708
- .ui-sidebar-nav--collapsed .sidebar-nav__badge,
709
- .ui-sidebar-nav--collapsed .sidebar-nav__group-label,
710
- .ui-sidebar-nav--collapsed .sidebar-nav__subgroup-label {
717
+ .ui-sidebar-nav--collapsed .ui-sidebar-nav__label,
718
+ .ui-sidebar-nav--collapsed .ui-sidebar-nav__badge,
719
+ .ui-sidebar-nav--collapsed .ui-sidebar-nav__group-label,
720
+ .ui-sidebar-nav--collapsed .ui-sidebar-nav__subgroup-label {
711
721
  display: none;
712
722
  }
713
- .ui-sidebar-nav--collapsed .sidebar-nav__item {
723
+ .ui-sidebar-nav--collapsed .ui-sidebar-nav__item {
714
724
  justify-content: center;
715
725
  padding-inline: var(--ui-space-1);
716
726
  }
@@ -769,30 +779,30 @@
769
779
  outline: var(--ui-_border-width) solid var(--ui-_border-color);
770
780
  outline-offset: calc(var(--ui-_border-width) * -1);
771
781
  }
772
- .ui-accordion > .disclosure {
782
+ .ui-accordion > .ui-disclosure {
773
783
  --ui-_border-width: 0;
774
784
  border: none;
775
785
  border-radius: 0;
776
786
  }
777
- .ui-accordion > .disclosure + .disclosure {
787
+ .ui-accordion > .ui-disclosure + .ui-disclosure {
778
788
  border-block-start: 1px solid var(--ui-_border-color);
779
789
  }
780
- .ui-accordion > .disclosure:first-child .disclosure__trigger {
790
+ .ui-accordion > .ui-disclosure:first-child .ui-disclosure__trigger {
781
791
  border-start-start-radius: var(--ui-_radius);
782
792
  border-start-end-radius: var(--ui-_radius);
783
793
  }
784
- .ui-accordion > .disclosure:last-child .disclosure__trigger {
794
+ .ui-accordion > .ui-disclosure:last-child .ui-disclosure__trigger {
785
795
  border-end-start-radius: var(--ui-_radius);
786
796
  border-end-end-radius: var(--ui-_radius);
787
797
  }
788
- .ui-accordion > .disclosure:last-child .disclosure__content {
798
+ .ui-accordion > .ui-disclosure:last-child .ui-disclosure__content {
789
799
  border-end-start-radius: var(--ui-_radius);
790
800
  border-end-end-radius: var(--ui-_radius);
791
801
  }
792
802
  .ui-accordion--borderless {
793
803
  border: none;
794
804
  }
795
- .ui-accordion--borderless > .disclosure + .disclosure {
805
+ .ui-accordion--borderless > .ui-disclosure + .ui-disclosure {
796
806
  border-block-start: none;
797
807
  }
798
808
  .ui-accordion--separated {
@@ -801,44 +811,37 @@
801
811
  gap: calc(0.5rem * 1);
802
812
  border: none;
803
813
  }
804
- .ui-accordion--separated > .disclosure {
814
+ .ui-accordion--separated > .ui-disclosure {
805
815
  border: 1px solid var(--ui-_border-color);
806
816
  border-radius: var(--ui-_radius);
807
817
  }
808
- .ui-accordion--separated > .disclosure + .disclosure {
818
+ .ui-accordion--separated > .ui-disclosure + .ui-disclosure {
809
819
  border-block-start: 1px solid var(--ui-_border-color);
810
820
  }
811
821
  }
812
822
  @layer components.tokens {
813
823
  .ui-alert {
824
+ --ui-_accent: var(--ui-alert-accent, var(--ui-color-border, hsl(220, 10%, 90%)));
814
825
  --ui-_padding: var(--ui-alert-padding, var(--ui-space-2, 1rem));
815
826
  --ui-_border-width: var(--ui-alert-border-width, var(--ui-border-width-sm, 0.0625rem));
816
827
  --ui-_gap: var(--ui-alert-gap, var(--ui-space-1, 0.5rem));
817
828
  --ui-_radius: var(--ui-alert-radius, var(--ui-radius-md, 0.5rem));
818
- --ui-_bg: var(--ui-alert-bg, var(--ui-color-bg-subtle, hsl(220, 10%, 96%)));
819
- --ui-_border-color: var(--ui-alert-border-color, var(--ui-color-border, hsl(220, 10%, 90%)));
829
+ --ui-_bg: color-mix(in oklch, var(--ui-_accent) 8%, white);
830
+ --ui-_border-color: var(--ui-_accent);
820
831
  --ui-_color: var(--ui-alert-color, var(--ui-color-text, hsl(220, 10%, 10%)));
821
- --ui-_icon-color: var(--ui-alert-icon-color, currentcolor);
832
+ --ui-_icon-color: var(--ui-_accent);
822
833
  }
823
834
  .ui-alert--info {
824
- --ui-_bg: var(--ui-alert-info-bg, var(--ui-color-bg-subtle, hsl(220, 10%, 96%)));
825
- --ui-_border-color: var(--ui-alert-info-border, var(--ui-color-primary, hsl(220, 85%, 50%)));
826
- --ui-_icon-color: var(--ui-alert-info-icon, var(--ui-color-primary, hsl(220, 85%, 50%)));
835
+ --ui-_accent: var(--ui-color-primary, oklch(55% 0.22 250deg));
827
836
  }
828
837
  .ui-alert--success {
829
- --ui-_bg: var(--ui-alert-success-bg, var(--ui-color-bg-subtle, hsl(220, 10%, 96%)));
830
- --ui-_border-color: var(--ui-alert-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
831
- --ui-_icon-color: var(--ui-alert-success-icon, var(--ui-color-success, hsl(142, 70%, 45%)));
838
+ --ui-_accent: var(--ui-color-success, oklch(60% 0.18 145deg));
832
839
  }
833
840
  .ui-alert--warning {
834
- --ui-_bg: var(--ui-alert-warning-bg, var(--ui-color-bg-subtle, hsl(220, 10%, 96%)));
835
- --ui-_border-color: var(--ui-alert-warning-border, var(--ui-color-warning, hsl(38, 90%, 50%)));
836
- --ui-_icon-color: var(--ui-alert-warning-icon, var(--ui-color-warning, hsl(38, 90%, 50%)));
841
+ --ui-_accent: var(--ui-color-warning, oklch(75% 0.18 70deg));
837
842
  }
838
843
  .ui-alert--danger {
839
- --ui-_bg: var(--ui-alert-danger-bg, var(--ui-color-bg-subtle, hsl(220, 10%, 96%)));
840
- --ui-_border-color: var(--ui-alert-danger-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
841
- --ui-_icon-color: var(--ui-alert-danger-icon, var(--ui-color-danger, hsl(0, 70%, 50%)));
844
+ --ui-_accent: var(--ui-color-danger, oklch(60% 0.22 25deg));
842
845
  }
843
846
  }
844
847
  @layer components.styles {
@@ -954,22 +957,23 @@
954
957
  flex-direction: row-reverse;
955
958
  justify-content: flex-end;
956
959
  }
957
- .ui-avatar-group > .avatar {
960
+ .ui-avatar-group > .ui-avatar {
958
961
  margin-inline-start: calc(var(--ui-_size) * -0.25);
959
962
  border: var(--ui-border-width-sm, 0.0625rem) solid var(--ui-color-bg, hsl(220, 10%, 98%));
960
963
  }
961
- .ui-avatar-group > .avatar:last-child {
964
+ .ui-avatar-group > .ui-avatar:last-child {
962
965
  margin-inline-start: 0;
963
966
  }
964
967
  }
965
968
  @layer components.tokens {
966
969
  .ui-badge {
970
+ --ui-_accent: var(--ui-badge-accent, var(--ui-color-bg-muted, hsl(220, 10%, 90%)));
967
971
  --ui-_height: var(--ui-badge-height, calc(var(--ui-row, 1rem) * 1.25));
968
972
  --ui-_padding-x: var(--ui-badge-padding-x, var(--ui-space-1, 0.5rem));
969
973
  --ui-_font-size: var(--ui-badge-font-size, var(--ui-font-size-xs, 0.75rem));
970
974
  --ui-_font-weight: var(--ui-badge-font-weight, var(--ui-weight-medium, 500));
971
975
  --ui-_radius: var(--ui-badge-radius, var(--ui-radius-full, 9999px));
972
- --ui-_bg: var(--ui-badge-bg, var(--ui-color-bg-muted, hsl(220, 10%, 90%)));
976
+ --ui-_bg: var(--ui-_accent);
973
977
  --ui-_text: var(--ui-badge-text, var(--ui-color-text, hsl(220, 10%, 10%)));
974
978
  }
975
979
  .ui-badge--sm {
@@ -978,20 +982,20 @@
978
982
  --ui-_font-size: var(--ui-badge-font-size-sm, calc(var(--ui-font-size-xs, 0.75rem) * 0.85));
979
983
  }
980
984
  .ui-badge--primary {
981
- --ui-_bg: var(--ui-badge-primary-bg, var(--ui-color-primary, hsl(220, 85%, 50%)));
982
- --ui-_text: var(--ui-badge-primary-text, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
985
+ --ui-_accent: var(--ui-color-primary, oklch(55% 0.22 250deg));
986
+ --ui-_text: var(--ui-color-text-inverse, hsl(220, 10%, 98%));
983
987
  }
984
988
  .ui-badge--success {
985
- --ui-_bg: var(--ui-badge-success-bg, var(--ui-color-success, hsl(142, 70%, 45%)));
986
- --ui-_text: var(--ui-badge-success-text, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
989
+ --ui-_accent: var(--ui-color-success, oklch(60% 0.18 145deg));
990
+ --ui-_text: var(--ui-color-text-inverse, hsl(220, 10%, 98%));
987
991
  }
988
992
  .ui-badge--warning {
989
- --ui-_bg: var(--ui-badge-warning-bg, var(--ui-color-warning, hsl(38, 90%, 50%)));
990
- --ui-_text: var(--ui-badge-warning-text, var(--ui-color-text, hsl(220, 10%, 10%)));
993
+ --ui-_accent: var(--ui-color-warning, oklch(75% 0.18 70deg));
994
+ --ui-_text: var(--ui-color-text, hsl(220, 10%, 10%));
991
995
  }
992
996
  .ui-badge--danger {
993
- --ui-_bg: var(--ui-badge-danger-bg, var(--ui-color-danger, hsl(0, 70%, 50%)));
994
- --ui-_text: var(--ui-badge-danger-text, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
997
+ --ui-_accent: var(--ui-color-danger, oklch(60% 0.22 25deg));
998
+ --ui-_text: var(--ui-color-text-inverse, hsl(220, 10%, 98%));
995
999
  }
996
1000
  }
997
1001
  @layer components.styles {
@@ -1051,7 +1055,7 @@
1051
1055
  text-decoration: underline;
1052
1056
  color: var(--ui-color-primary);
1053
1057
  }
1054
- .ui-breadcrumb__item:last-child .breadcrumb__link,
1058
+ .ui-breadcrumb__item:last-child .ui-breadcrumb__link,
1055
1059
  .ui-breadcrumb__current {
1056
1060
  color: var(--ui-_current-color);
1057
1061
  pointer-events: none;
@@ -1065,50 +1069,57 @@
1065
1069
  }
1066
1070
  @layer components.tokens {
1067
1071
  .ui-button {
1072
+ --ui-_accent: var(--ui-button-accent, var(--ui-color-primary, oklch(55% 0.22 250deg)));
1068
1073
  --ui-_height: var(--ui-button-height, var(--ui-row-2, 2rem));
1069
1074
  --ui-_padding-x: var(--ui-button-padding-x, var(--ui-space-2, 1rem));
1070
1075
  --ui-_font-size: var(--ui-button-font-size, var(--ui-font-size-sm, 0.875rem));
1071
1076
  --ui-_font-weight: var(--ui-button-font-weight, var(--ui-weight-medium, 500));
1072
1077
  --ui-_radius: var(--ui-button-radius, var(--ui-radius-md, 0.5rem));
1073
- --ui-_bg: var(--ui-button-bg, var(--ui-color-primary, hsl(220, 85%, 50%)));
1074
- --ui-_bg-hover: var(--ui-button-bg-hover, var(--ui-color-primary-dark, hsl(220, 85%, 40%)));
1078
+ --ui-_bg: var(--ui-_accent);
1079
+ --ui-_bg-hover: color-mix(in oklch, var(--ui-_accent) 80%, black);
1075
1080
  --ui-_text: var(--ui-button-text, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
1076
1081
  }
1077
1082
  .ui-button--sm {
1083
+ --ui-ctx-size: var(--ui-size-sm, 0.75rem);
1078
1084
  --ui-_height: var(--ui-button-height-sm, calc(var(--ui-row, 1rem) * 1.5));
1079
1085
  --ui-_font-size: var(--ui-button-font-size-sm, var(--ui-font-size-xs, 0.75rem));
1080
1086
  }
1087
+ .ui-button--md {
1088
+ --ui-ctx-size: var(--ui-size-md, 1rem);
1089
+ --ui-_height: var(--ui-button-height-md, var(--ui-row-2, 2rem));
1090
+ --ui-_font-size: var(--ui-button-font-size-md, var(--ui-font-size-sm, 0.875rem));
1091
+ }
1081
1092
  .ui-button--lg {
1093
+ --ui-ctx-size: var(--ui-size-lg, 1.25rem);
1082
1094
  --ui-_height: var(--ui-button-height-lg, calc(var(--ui-row, 1rem) * 2.5));
1083
1095
  --ui-_padding-x: var(--ui-button-padding-x-lg, var(--ui-space-3, 1.5rem));
1084
1096
  --ui-_font-size: var(--ui-button-font-size-lg, var(--ui-font-size-md, 1rem));
1085
1097
  }
1086
1098
  .ui-button--secondary {
1087
- --ui-_bg: var(--ui-button-secondary-bg, var(--ui-color-bg-muted, hsl(220, 10%, 90%)));
1088
- --ui-_bg-hover: var(--ui-button-secondary-bg-hover, var(--ui-color-border-strong, hsl(220, 10%, 80%)));
1089
- --ui-_text: var(--ui-button-secondary-text, var(--ui-color-text, hsl(220, 10%, 10%)));
1099
+ --ui-_bg: var(--ui-color-bg-muted, hsl(220, 10%, 90%));
1100
+ --ui-_bg-hover: var(--ui-color-border-strong, hsl(220, 10%, 80%));
1101
+ --ui-_text: var(--ui-color-text, hsl(220, 10%, 10%));
1090
1102
  }
1091
1103
  .ui-button--ghost {
1092
- --ui-_bg: var(--ui-button-ghost-bg, transparent);
1093
- --ui-_bg-hover: var(--ui-button-ghost-bg-hover, var(--ui-color-bg-subtle, hsl(220, 10%, 96%)));
1094
- --ui-_text: var(--ui-button-ghost-text, var(--ui-color-primary, hsl(220, 85%, 50%)));
1104
+ --ui-_bg: transparent;
1105
+ --ui-_bg-hover: color-mix(in oklch, var(--ui-_accent) 10%, transparent);
1106
+ --ui-_text: var(--ui-_accent);
1095
1107
  }
1096
1108
  .ui-button--outline {
1097
- --ui-_bg: var(--ui-button-outline-bg, transparent);
1098
- --ui-_bg-hover: var(--ui-button-outline-bg-hover, var(--ui-color-primary, hsl(220, 85%, 50%)));
1099
- --ui-_text: var(--ui-button-outline-text, var(--ui-color-primary, hsl(220, 85%, 50%)));
1100
- --ui-_text-hover: var(--ui-button-outline-text-hover, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
1101
- --ui-_border: var(--ui-button-outline-border, var(--ui-border-width-sm, 0.0625rem) solid currentColor);
1109
+ --ui-_bg: transparent;
1110
+ --ui-_bg-hover: var(--ui-_accent);
1111
+ --ui-_text: var(--ui-_accent);
1112
+ --ui-_text-hover: var(--ui-color-text-inverse, hsl(220, 10%, 98%));
1113
+ --ui-_border: var(--ui-border-width-sm, 0.0625rem) solid currentColor;
1102
1114
  }
1103
1115
  .ui-button--danger {
1104
- --ui-_bg: var(--ui-button-danger-bg, var(--ui-color-danger, hsl(0, 70%, 50%)));
1105
- --ui-_bg-hover: var(--ui-button-danger-bg-hover, hsl(0, 70%, 40%));
1116
+ --ui-_accent: var(--ui-color-danger, oklch(60% 0.22 25deg));
1106
1117
  }
1107
1118
  .ui-button--link {
1108
1119
  --ui-_bg: transparent;
1109
1120
  --ui-_bg-hover: transparent;
1110
- --ui-_text: var(--ui-button-link-text, var(--ui-color-primary, hsl(220, 85%, 50%)));
1111
- --ui-_text-hover: var(--ui-button-link-text-hover, var(--ui-color-primary-dark, hsl(220, 85%, 40%)));
1121
+ --ui-_text: var(--ui-_accent);
1122
+ --ui-_text-hover: color-mix(in oklch, var(--ui-_accent) 70%, black);
1112
1123
  --ui-_height: auto;
1113
1124
  --ui-_padding-x: 0;
1114
1125
  --ui-_radius: 0;
@@ -1156,7 +1167,7 @@
1156
1167
  background: var(--ui-_bg-hover);
1157
1168
  }
1158
1169
  .ui-button:focus-visible, .ui-button--focus {
1159
- outline: var(--ui-border-width-md, 0.125rem) solid var(--ui-color-focus, hsl(220, 85%, 65%));
1170
+ outline: var(--ui-border-width-md, 0.125rem) solid var(--ui-color-focus, oklch(75% 0.15 250deg));
1160
1171
  outline-offset: var(--ui-border-width-md, 0.125rem);
1161
1172
  }
1162
1173
  .ui-button:active, .ui-button--active {
@@ -1224,48 +1235,48 @@
1224
1235
  .ui-button-group {
1225
1236
  display: inline-flex;
1226
1237
  }
1227
- .ui-button-group > .button:not(:first-child, :last-child) {
1238
+ .ui-button-group > .ui-button:not(:first-child, :last-child) {
1228
1239
  border-radius: 0;
1229
1240
  }
1230
- .ui-button-group > .button:first-child:not(:last-child) {
1241
+ .ui-button-group > .ui-button:first-child:not(:last-child) {
1231
1242
  border-start-end-radius: 0;
1232
1243
  border-end-end-radius: 0;
1233
1244
  }
1234
- .ui-button-group > .button:last-child:not(:first-child) {
1245
+ .ui-button-group > .ui-button:last-child:not(:first-child) {
1235
1246
  border-start-start-radius: 0;
1236
1247
  border-end-start-radius: 0;
1237
1248
  }
1238
- .ui-button-group > .button + .button {
1249
+ .ui-button-group > .ui-button + .ui-button {
1239
1250
  margin-inline-start: calc(0.5rem / -8);
1240
1251
  }
1241
- .ui-button-group > .button:focus-visible {
1252
+ .ui-button-group > .ui-button:focus-visible {
1242
1253
  z-index: 1;
1243
1254
  }
1244
1255
  .ui-button-group--vertical {
1245
1256
  flex-direction: column;
1246
1257
  }
1247
- .ui-button-group--vertical > .button:not(:first-child, :last-child) {
1258
+ .ui-button-group--vertical > .ui-button:not(:first-child, :last-child) {
1248
1259
  border-radius: 0;
1249
1260
  }
1250
- .ui-button-group--vertical > .button:first-child:not(:last-child) {
1261
+ .ui-button-group--vertical > .ui-button:first-child:not(:last-child) {
1251
1262
  border-end-start-radius: 0;
1252
1263
  border-end-end-radius: 0;
1253
1264
  }
1254
- .ui-button-group--vertical > .button:last-child:not(:first-child) {
1265
+ .ui-button-group--vertical > .ui-button:last-child:not(:first-child) {
1255
1266
  border-start-start-radius: 0;
1256
1267
  border-start-end-radius: 0;
1257
1268
  }
1258
- .ui-button-group--vertical > .button + .button {
1269
+ .ui-button-group--vertical > .ui-button + .ui-button {
1259
1270
  margin-block-start: calc(0.5rem / -8);
1260
1271
  margin-inline-start: 0;
1261
1272
  }
1262
- .ui-button-group--attached > .button {
1273
+ .ui-button-group--attached > .ui-button {
1263
1274
  border-inline-end-width: 0;
1264
1275
  }
1265
- .ui-button-group--attached > .button:last-child {
1276
+ .ui-button-group--attached > .ui-button:last-child {
1266
1277
  border-inline-end-width: 1px;
1267
1278
  }
1268
- .ui-button-group--attached > .button + .button {
1279
+ .ui-button-group--attached > .ui-button + .ui-button {
1269
1280
  margin-inline-start: 0;
1270
1281
  }
1271
1282
  }
@@ -1308,17 +1319,17 @@
1308
1319
  --ui-_size: var(--ui-checkbox-size, calc(0.5rem * 2));
1309
1320
  --ui-_radius: var(--ui-checkbox-radius, var(--ui-radius-sm, 0.25rem));
1310
1321
  --ui-_bg: var(--ui-checkbox-bg, var(--ui-color-bg, hsl(220, 10%, 98%)));
1311
- --ui-_bg-checked: var(--ui-checkbox-bg-checked, var(--ui-color-primary, hsl(220, 85%, 50%)));
1322
+ --ui-_bg-checked: var(--ui-checkbox-bg-checked, var(--ui-color-primary, oklch(55% 0.22 250deg)));
1312
1323
  --ui-_border-color: var(--ui-checkbox-border-color, var(--ui-color-border-strong, hsl(220, 10%, 80%)));
1313
- --ui-_border-color-focus: var(--ui-checkbox-border-color-focus, var(--ui-color-primary, hsl(220, 85%, 50%)));
1324
+ --ui-_border-color-focus: var(--ui-checkbox-border-color-focus, var(--ui-color-primary, oklch(55% 0.22 250deg)));
1314
1325
  --ui-_check-color: var(--ui-checkbox-check-color, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
1315
1326
  }
1316
1327
  .ui-checkbox--lg {
1317
1328
  --ui-_size: var(--ui-checkbox-size-lg, calc(0.5rem * 3));
1318
1329
  }
1319
1330
  .ui-checkbox--error {
1320
- --ui-_border-color: var(--ui-checkbox-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
1321
- --ui-_border-color-focus: var(--ui-checkbox-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
1331
+ --ui-_border-color: var(--ui-checkbox-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
1332
+ --ui-_border-color-focus: var(--ui-checkbox-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
1322
1333
  }
1323
1334
  }
1324
1335
  @layer components.styles {
@@ -1353,7 +1364,7 @@
1353
1364
  .ui-checkbox:focus-visible {
1354
1365
  border-color: var(--ui-_border-color-focus);
1355
1366
  outline: none;
1356
- box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, hsl(220, 85%, 65%));
1367
+ box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, oklch(75% 0.15 250deg));
1357
1368
  }
1358
1369
  .ui-checkbox:checked {
1359
1370
  background: var(--ui-_bg-checked);
@@ -1453,27 +1464,27 @@
1453
1464
  line-height: var(--ui-row-1, 1rem);
1454
1465
  color: var(--ui-_value-color);
1455
1466
  }
1456
- .ui-data-list--horizontal .data-list__item {
1467
+ .ui-data-list--horizontal .ui-data-list__item {
1457
1468
  flex-direction: row;
1458
1469
  align-items: baseline;
1459
1470
  justify-content: space-between;
1460
1471
  gap: calc(0.5rem * 2);
1461
1472
  }
1462
- .ui-data-list--horizontal .data-list__label {
1473
+ .ui-data-list--horizontal .ui-data-list__label {
1463
1474
  flex-shrink: 0;
1464
1475
  }
1465
- .ui-data-list--horizontal .data-list__value {
1476
+ .ui-data-list--horizontal .ui-data-list__value {
1466
1477
  text-align: end;
1467
1478
  }
1468
- .ui-data-list--divided .data-list__item {
1469
- padding-block-end: var(--ui-_gap);
1470
- border-block-end: 1px solid var(--ui-color-border, hsl(220, 10%, 90%));
1479
+ .ui-data-list--divided .ui-data-list__item {
1480
+ padding-block-end: calc(var(--ui-_gap) - var(--ui-border-width-sm, 0.0625rem));
1481
+ border-block-end: var(--ui-border-width-sm, 0.0625rem) solid var(--ui-color-border, hsl(220, 10%, 90%));
1471
1482
  }
1472
- .ui-data-list--divided .data-list__item:last-child {
1483
+ .ui-data-list--divided .ui-data-list__item:last-child {
1473
1484
  padding-block-end: 0;
1474
1485
  border-block-end: none;
1475
1486
  }
1476
- .ui-data-list--striped .data-list__item:nth-child(odd) {
1487
+ .ui-data-list--striped .ui-data-list__item:nth-child(odd) {
1477
1488
  padding: calc(0.5rem * 1);
1478
1489
  background: var(--ui-color-bg-subtle, hsl(220, 10%, 96%));
1479
1490
  border-radius: var(--ui-radius-sm, 0.25rem);
@@ -1498,7 +1509,7 @@
1498
1509
  }
1499
1510
  }
1500
1511
  @layer components.styles {
1501
- .ui-dialog .modal__content {
1512
+ .ui-dialog .ui-modal__content {
1502
1513
  padding: 0;
1503
1514
  }
1504
1515
  .ui-dialog__header {
@@ -1534,10 +1545,10 @@
1534
1545
  padding: var(--ui-_footer-padding);
1535
1546
  border-block-start: 1px solid var(--ui-_border-color);
1536
1547
  }
1537
- .ui-dialog--borderless .dialog__header {
1548
+ .ui-dialog--borderless .ui-dialog__header {
1538
1549
  border-block-end: none;
1539
1550
  }
1540
- .ui-dialog--borderless .dialog__footer {
1551
+ .ui-dialog--borderless .ui-dialog__footer {
1541
1552
  border-block-start: none;
1542
1553
  }
1543
1554
  }
@@ -1588,13 +1599,13 @@
1588
1599
  flex-shrink: 0;
1589
1600
  transition: transform var(--ui-duration-fast, 100ms) var(--ui-ease-default, ease);
1590
1601
  }
1591
- .ui-disclosure[open] .disclosure__icon {
1602
+ .ui-disclosure[open] .ui-disclosure__icon {
1592
1603
  transform: rotate(180deg);
1593
1604
  }
1594
1605
  .ui-disclosure__content {
1595
1606
  padding: 0 var(--ui-_padding-x) var(--ui-_padding-y);
1596
1607
  }
1597
- .ui-disclosure--animate .disclosure__content {
1608
+ .ui-disclosure--animate .ui-disclosure__content {
1598
1609
  animation: disclosure-open var(--ui-duration-normal, 200ms) var(--ui-ease-default, ease);
1599
1610
  }
1600
1611
  @keyframes disclosure-open {
@@ -1612,10 +1623,10 @@
1612
1623
  border: none;
1613
1624
  border-radius: 0;
1614
1625
  }
1615
- .ui-disclosure--flush .disclosure__trigger {
1626
+ .ui-disclosure--flush .ui-disclosure__trigger {
1616
1627
  padding-inline: 0;
1617
1628
  }
1618
- .ui-disclosure--flush .disclosure__content {
1629
+ .ui-disclosure--flush .ui-disclosure__content {
1619
1630
  padding-inline: 0;
1620
1631
  }
1621
1632
  }
@@ -1684,8 +1695,8 @@
1684
1695
  .ui-divider--dashed::after {
1685
1696
  background: repeating-linear-gradient(90deg, var(--ui-_color) 0, var(--ui-_color) calc(0.5rem / 2), transparent calc(0.5rem / 2), transparent 0.5rem);
1686
1697
  }
1687
- .ui-divider--vertical.divider--dashed::before,
1688
- .ui-divider--vertical.divider--dashed::after {
1698
+ .ui-divider--vertical.ui-divider--dashed::before,
1699
+ .ui-divider--vertical.ui-divider--dashed::after {
1689
1700
  background: repeating-linear-gradient(180deg, var(--ui-_color) 0, var(--ui-_color) calc(0.5rem / 2), transparent calc(0.5rem / 2), transparent 0.5rem);
1690
1701
  }
1691
1702
  }
@@ -1895,12 +1906,12 @@
1895
1906
  flex-wrap: wrap;
1896
1907
  align-items: flex-start;
1897
1908
  }
1898
- .ui-field--horizontal > .field__label {
1909
+ .ui-field--horizontal > .ui-field__label {
1899
1910
  flex: 0 0 auto;
1900
1911
  min-inline-size: calc(0.5rem * 15);
1901
1912
  padding-block-start: calc(0.5rem * 1);
1902
1913
  }
1903
- .ui-field--horizontal > .field__control {
1914
+ .ui-field--horizontal > .ui-field__control {
1904
1915
  flex: 1 1 0;
1905
1916
  min-inline-size: calc(0.5rem * 20);
1906
1917
  }
@@ -1989,23 +2000,23 @@
1989
2000
  }
1990
2001
  @layer components.tokens {
1991
2002
  .ui-icon {
1992
- --ui-_size: var(--ui-icon-size, 1em);
2003
+ --ui-_size: var(--ui-icon-size, var(--ui-ctx-size, 1rem));
1993
2004
  --ui-_stroke: var(--ui-icon-stroke, 2);
1994
2005
  }
1995
2006
  .ui-icon--xs {
1996
- --ui-_size: var(--ui-icon-size-xs, calc(0.5rem * 2));
2007
+ --ui-_size: var(--ui-icon-size-xs, var(--ui-size-xs, 0.5rem));
1997
2008
  }
1998
2009
  .ui-icon--sm {
1999
- --ui-_size: var(--ui-icon-size-sm, calc(0.5rem * 3));
2010
+ --ui-_size: var(--ui-icon-size-sm, var(--ui-size-sm, 0.75rem));
2000
2011
  }
2001
2012
  .ui-icon--md {
2002
- --ui-_size: var(--ui-icon-size-md, calc(0.5rem * 4));
2013
+ --ui-_size: var(--ui-icon-size-md, var(--ui-size-md, 1rem));
2003
2014
  }
2004
2015
  .ui-icon--lg {
2005
- --ui-_size: var(--ui-icon-size-lg, calc(0.5rem * 5));
2016
+ --ui-_size: var(--ui-icon-size-lg, var(--ui-size-lg, 1.25rem));
2006
2017
  }
2007
2018
  .ui-icon--xl {
2008
- --ui-_size: var(--ui-icon-size-xl, calc(0.5rem * 6));
2019
+ --ui-_size: var(--ui-icon-size-xl, var(--ui-size-xl, 1.5rem));
2009
2020
  }
2010
2021
  .ui-icon--stroke-thin {
2011
2022
  --ui-_stroke: var(--ui-icon-stroke-thin, 1);
@@ -2049,7 +2060,7 @@
2049
2060
  --ui-_radius: var(--ui-input-radius, var(--ui-radius-md, 0.5rem));
2050
2061
  --ui-_bg: var(--ui-input-bg, var(--ui-color-bg, hsl(220, 10%, 98%)));
2051
2062
  --ui-_border-color: var(--ui-input-border-color, var(--ui-color-border-strong, hsl(220, 10%, 80%)));
2052
- --ui-_border-color-focus: var(--ui-input-border-color-focus, var(--ui-color-primary, hsl(220, 85%, 50%)));
2063
+ --ui-_border-color-focus: var(--ui-input-border-color-focus, var(--ui-color-primary, oklch(55% 0.22 250deg)));
2053
2064
  --ui-_text: var(--ui-input-text, var(--ui-color-text, hsl(220, 10%, 10%)));
2054
2065
  --ui-_placeholder: var(--ui-input-placeholder, var(--ui-color-text-muted, hsl(220, 10%, 45%)));
2055
2066
  }
@@ -2071,12 +2082,12 @@
2071
2082
  --ui-_border-color: transparent;
2072
2083
  }
2073
2084
  .ui-input--error {
2074
- --ui-_border-color: var(--ui-input-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
2075
- --ui-_border-color-focus: var(--ui-input-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
2085
+ --ui-_border-color: var(--ui-input-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2086
+ --ui-_border-color-focus: var(--ui-input-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2076
2087
  }
2077
2088
  .ui-input--success {
2078
- --ui-_border-color: var(--ui-input-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
2079
- --ui-_border-color-focus: var(--ui-input-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
2089
+ --ui-_border-color: var(--ui-input-success-border, var(--ui-color-success, oklch(60% 0.18 145deg)));
2090
+ --ui-_border-color-focus: var(--ui-input-success-border, var(--ui-color-success, oklch(60% 0.18 145deg)));
2080
2091
  }
2081
2092
  }
2082
2093
  @layer components.styles {
@@ -2103,7 +2114,7 @@
2103
2114
  .ui-input:focus, .ui-input--focus {
2104
2115
  border-color: var(--ui-_border-color-focus);
2105
2116
  outline: none;
2106
- box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, hsl(220, 85%, 65%));
2117
+ box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, oklch(75% 0.15 250deg));
2107
2118
  }
2108
2119
  .ui-input:disabled, .ui-input--disabled {
2109
2120
  opacity: 0.5;
@@ -2120,13 +2131,13 @@
2120
2131
  align-items: stretch;
2121
2132
  position: relative;
2122
2133
  }
2123
- .ui-input-group .input {
2134
+ .ui-input-group .ui-input {
2124
2135
  flex: 1;
2125
2136
  }
2126
- .ui-input-group--has-prefix .input {
2137
+ .ui-input-group--has-prefix .ui-input {
2127
2138
  padding-inline-start: calc(var(--ui-_height) + var(--ui-space-half, 0.25rem));
2128
2139
  }
2129
- .ui-input-group--has-suffix .input {
2140
+ .ui-input-group--has-suffix .ui-input {
2130
2141
  padding-inline-end: calc(var(--ui-_height) + var(--ui-space-half, 0.25rem));
2131
2142
  }
2132
2143
  .ui-input-group__addon {
@@ -2154,7 +2165,7 @@
2154
2165
  .ui-label {
2155
2166
  --ui-_font-size: var(--ui-label-font-size, var(--ui-font-size-sm, 0.875rem));
2156
2167
  --ui-_color: var(--ui-label-color, var(--ui-color-text, hsl(220, 10%, 10%)));
2157
- --ui-_required-color: var(--ui-label-required-color, var(--ui-color-danger, hsl(0, 70%, 50%)));
2168
+ --ui-_required-color: var(--ui-label-required-color, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2158
2169
  }
2159
2170
  .ui-label--lg {
2160
2171
  --ui-_font-size: var(--ui-label-font-size-lg, var(--ui-font-size-md, 1rem));
@@ -2294,10 +2305,10 @@
2294
2305
  outline: none;
2295
2306
  }
2296
2307
  .ui-menu__item--danger {
2297
- color: var(--ui-color-danger, hsl(0, 70%, 50%));
2308
+ color: var(--ui-color-danger, oklch(60% 0.22 25deg));
2298
2309
  }
2299
2310
  .ui-menu__item--danger:hover, .ui-menu__item--danger:focus-visible {
2300
- color: var(--ui-color-danger, hsl(0, 70%, 50%));
2311
+ color: var(--ui-color-danger, oklch(60% 0.22 25deg));
2301
2312
  }
2302
2313
  .ui-menu__item--disabled,
2303
2314
  .ui-menu__item[aria-disabled=true] {
@@ -2390,17 +2401,17 @@
2390
2401
  flex: 1 1 auto;
2391
2402
  overflow-y: auto;
2392
2403
  }
2393
- .ui-modal--entering .modal__content,
2394
- .ui-modal--visible .modal__content {
2404
+ .ui-modal--entering .ui-modal__content,
2405
+ .ui-modal--visible .ui-modal__content {
2395
2406
  opacity: 1;
2396
2407
  transform: scale(1);
2397
2408
  }
2398
- .ui-modal--exiting .modal__content,
2399
- .ui-modal--hidden .modal__content {
2409
+ .ui-modal--exiting .ui-modal__content,
2410
+ .ui-modal--hidden .ui-modal__content {
2400
2411
  opacity: 0;
2401
2412
  transform: scale(0.95);
2402
2413
  }
2403
- .ui-modal--animate .modal__content {
2414
+ .ui-modal--animate .ui-modal__content {
2404
2415
  transition: opacity var(--ui-duration-normal, 200ms) var(--ui-ease-default, ease), transform var(--ui-duration-normal, 200ms) var(--ui-ease-default, ease);
2405
2416
  }
2406
2417
  .ui-modal--hidden {
@@ -2408,6 +2419,100 @@
2408
2419
  pointer-events: none;
2409
2420
  }
2410
2421
  }
2422
+ @layer components.tokens {
2423
+ .ui-nav {
2424
+ --ui-_gap: var(--ui-nav-gap, var(--ui-space-1, 0.5rem));
2425
+ --ui-_item-height: var(--ui-nav-item-height, var(--ui-row-2, 2rem));
2426
+ --ui-_item-padding-x: var(--ui-nav-item-padding-x, var(--ui-space-2, 1rem));
2427
+ --ui-_item-font-size: var(--ui-nav-item-font-size, var(--ui-font-size-sm, 0.875rem));
2428
+ --ui-_item-font-weight: var(--ui-nav-item-font-weight, var(--ui-weight-medium, 500));
2429
+ --ui-_item-color: var(--ui-nav-item-color, var(--ui-color-text-muted, hsl(220, 10%, 45%)));
2430
+ --ui-_item-color-hover: var(--ui-nav-item-color-hover, var(--ui-color-text, hsl(220, 10%, 10%)));
2431
+ --ui-_item-color-active: var(--ui-nav-item-color-active, var(--ui-color-primary, oklch(55% 0.22 250deg)));
2432
+ --ui-_item-radius: var(--ui-nav-item-radius, var(--ui-radius-sm, 0.25rem));
2433
+ --ui-_border-color: var(--ui-nav-border-color, var(--ui-color-border, hsl(220, 10%, 90%)));
2434
+ }
2435
+ .ui-nav--pills {
2436
+ --ui-_item-bg-hover: var(--ui-nav-item-bg-hover, var(--ui-color-bg-muted, hsl(220, 10%, 90%)));
2437
+ --ui-_item-bg-active: var(--ui-nav-item-bg-active, var(--ui-color-primary, oklch(55% 0.22 250deg)));
2438
+ --ui-_item-color-active: var(--ui-nav-item-color-active, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
2439
+ }
2440
+ }
2441
+ @layer components.styles {
2442
+ .ui-nav__list {
2443
+ display: flex;
2444
+ align-items: stretch;
2445
+ gap: var(--ui-_gap);
2446
+ box-sizing: border-box;
2447
+ block-size: var(--ui-_item-height);
2448
+ padding: 0;
2449
+ margin: 0;
2450
+ list-style: none;
2451
+ box-shadow: inset 0 calc(var(--ui-border-width-sm, 0.0625rem) * -1) 0 var(--ui-_border-color);
2452
+ }
2453
+ .ui-nav__item {
2454
+ display: inline-flex;
2455
+ align-items: center;
2456
+ box-sizing: border-box;
2457
+ block-size: var(--ui-_item-height);
2458
+ padding-inline: var(--ui-_item-padding-x);
2459
+ font-family: var(--ui-font-sans, Noto Sans, system-ui, -apple-system, sans-serif);
2460
+ font-size: var(--ui-_item-font-size);
2461
+ font-weight: var(--ui-_item-font-weight);
2462
+ line-height: 1;
2463
+ text-decoration: none;
2464
+ white-space: nowrap;
2465
+ color: var(--ui-_item-color);
2466
+ background: transparent;
2467
+ border: none;
2468
+ box-shadow: inset 0 calc(var(--ui-border-width-md, 0.125rem) * -1) 0 transparent;
2469
+ cursor: pointer;
2470
+ transition: color var(--ui-duration-base) var(--ui-ease-default), background var(--ui-duration-base) var(--ui-ease-default), box-shadow var(--ui-duration-base) var(--ui-ease-default);
2471
+ }
2472
+ .ui-nav__item:hover {
2473
+ color: var(--ui-_item-color-hover);
2474
+ }
2475
+ .ui-nav__item--active {
2476
+ color: var(--ui-_item-color-active);
2477
+ box-shadow: inset 0 calc(var(--ui-border-width-md, 0.125rem) * -1) 0 var(--ui-_item-color-active);
2478
+ }
2479
+ .ui-nav__item--disabled {
2480
+ opacity: 0.5;
2481
+ pointer-events: none;
2482
+ }
2483
+ .ui-nav--pills .ui-nav__list {
2484
+ box-shadow: none;
2485
+ }
2486
+ .ui-nav--pills .ui-nav__item {
2487
+ border-radius: var(--ui-_item-radius);
2488
+ box-shadow: none;
2489
+ }
2490
+ .ui-nav--pills .ui-nav__item:hover {
2491
+ background: var(--ui-_item-bg-hover);
2492
+ }
2493
+ .ui-nav--pills .ui-nav__item--active {
2494
+ color: var(--ui-_item-color-active);
2495
+ background: var(--ui-_item-bg-active);
2496
+ }
2497
+ .ui-nav--vertical .ui-nav__list {
2498
+ flex-direction: column;
2499
+ align-items: stretch;
2500
+ block-size: auto;
2501
+ box-shadow: inset calc(var(--ui-border-width-sm, 0.0625rem) * -1) 0 0 var(--ui-_border-color);
2502
+ }
2503
+ .ui-nav--vertical .ui-nav__item {
2504
+ box-shadow: inset calc(var(--ui-border-width-md, 0.125rem) * -1) 0 0 transparent;
2505
+ }
2506
+ .ui-nav--vertical .ui-nav__item--active {
2507
+ box-shadow: inset calc(var(--ui-border-width-md, 0.125rem) * -1) 0 0 var(--ui-_item-color-active);
2508
+ }
2509
+ .ui-nav--vertical.ui-nav--pills .ui-nav__list {
2510
+ box-shadow: none;
2511
+ }
2512
+ .ui-nav--vertical.ui-nav--pills .ui-nav__item {
2513
+ box-shadow: none;
2514
+ }
2515
+ }
2411
2516
  @layer components.tokens {
2412
2517
  .ui-overlay {
2413
2518
  --ui-_bg: var(--ui-overlay-bg, rgb(0 0 0 / 0.5));
@@ -2634,7 +2739,7 @@
2634
2739
  border-radius: var(--ui-_radius);
2635
2740
  transition: inline-size var(--ui-duration-normal, 200ms) var(--ui-ease-default, ease);
2636
2741
  }
2637
- .ui-progress--indeterminate .progress__bar {
2742
+ .ui-progress--indeterminate .ui-progress__bar {
2638
2743
  inline-size: 30%;
2639
2744
  animation: progress-indeterminate 1.5s infinite ease-in-out;
2640
2745
  }
@@ -2646,11 +2751,11 @@
2646
2751
  transform: translateX(400%);
2647
2752
  }
2648
2753
  }
2649
- .ui-progress--striped .progress__bar {
2754
+ .ui-progress--striped .ui-progress__bar {
2650
2755
  background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
2651
2756
  background-size: 0.5rem 0.5rem;
2652
2757
  }
2653
- .ui-progress--animated .progress__bar {
2758
+ .ui-progress--animated .ui-progress__bar {
2654
2759
  animation: progress-stripes 1s linear infinite;
2655
2760
  }
2656
2761
  @keyframes progress-stripes {
@@ -2675,17 +2780,17 @@
2675
2780
  .ui-radio {
2676
2781
  --ui-_size: var(--ui-radio-size, calc(0.5rem * 2));
2677
2782
  --ui-_bg: var(--ui-radio-bg, var(--ui-color-bg, hsl(220, 10%, 98%)));
2678
- --ui-_bg-checked: var(--ui-radio-bg-checked, var(--ui-color-primary, hsl(220, 85%, 50%)));
2783
+ --ui-_bg-checked: var(--ui-radio-bg-checked, var(--ui-color-primary, oklch(55% 0.22 250deg)));
2679
2784
  --ui-_border-color: var(--ui-radio-border-color, var(--ui-color-border-strong, hsl(220, 10%, 80%)));
2680
- --ui-_border-color-focus: var(--ui-radio-border-color-focus, var(--ui-color-primary, hsl(220, 85%, 50%)));
2785
+ --ui-_border-color-focus: var(--ui-radio-border-color-focus, var(--ui-color-primary, oklch(55% 0.22 250deg)));
2681
2786
  --ui-_dot-color: var(--ui-radio-dot-color, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
2682
2787
  }
2683
2788
  .ui-radio--lg {
2684
2789
  --ui-_size: var(--ui-radio-size-lg, calc(0.5rem * 3));
2685
2790
  }
2686
2791
  .ui-radio--error {
2687
- --ui-_border-color: var(--ui-radio-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
2688
- --ui-_border-color-focus: var(--ui-radio-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
2792
+ --ui-_border-color: var(--ui-radio-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2793
+ --ui-_border-color-focus: var(--ui-radio-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2689
2794
  }
2690
2795
  }
2691
2796
  @layer components.styles {
@@ -2721,7 +2826,7 @@
2721
2826
  .ui-radio:focus-visible {
2722
2827
  border-color: var(--ui-_border-color-focus);
2723
2828
  outline: none;
2724
- box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, hsl(220, 85%, 65%));
2829
+ box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, oklch(75% 0.15 250deg));
2725
2830
  }
2726
2831
  .ui-radio:checked {
2727
2832
  background: var(--ui-_bg-checked);
@@ -2744,7 +2849,7 @@
2744
2849
  --ui-_radius: var(--ui-select-radius, var(--ui-radius-md, 0.5rem));
2745
2850
  --ui-_bg: var(--ui-select-bg, var(--ui-color-bg, hsl(220, 10%, 98%)));
2746
2851
  --ui-_border-color: var(--ui-select-border-color, var(--ui-color-border-strong, hsl(220, 10%, 80%)));
2747
- --ui-_border-color-focus: var(--ui-select-border-color-focus, var(--ui-color-primary, hsl(220, 85%, 50%)));
2852
+ --ui-_border-color-focus: var(--ui-select-border-color-focus, var(--ui-color-primary, oklch(55% 0.22 250deg)));
2748
2853
  --ui-_text: var(--ui-select-text, var(--ui-color-text, hsl(220, 10%, 10%)));
2749
2854
  --ui-_icon-color: var(--ui-select-icon-color, var(--ui-color-text-muted, hsl(220, 10%, 45%)));
2750
2855
  }
@@ -2766,12 +2871,12 @@
2766
2871
  --ui-_border-color: transparent;
2767
2872
  }
2768
2873
  .ui-select--error {
2769
- --ui-_border-color: var(--ui-select-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
2770
- --ui-_border-color-focus: var(--ui-select-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
2874
+ --ui-_border-color: var(--ui-select-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2875
+ --ui-_border-color-focus: var(--ui-select-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
2771
2876
  }
2772
2877
  .ui-select--success {
2773
- --ui-_border-color: var(--ui-select-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
2774
- --ui-_border-color-focus: var(--ui-select-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
2878
+ --ui-_border-color: var(--ui-select-success-border, var(--ui-color-success, oklch(60% 0.18 145deg)));
2879
+ --ui-_border-color-focus: var(--ui-select-success-border, var(--ui-color-success, oklch(60% 0.18 145deg)));
2775
2880
  }
2776
2881
  }
2777
2882
  @layer components.styles {
@@ -2801,7 +2906,7 @@
2801
2906
  .ui-select:focus, .ui-select--focus {
2802
2907
  border-color: var(--ui-_border-color-focus);
2803
2908
  outline: none;
2804
- box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, hsl(220, 85%, 65%));
2909
+ box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, oklch(75% 0.15 250deg));
2805
2910
  }
2806
2911
  .ui-select:disabled, .ui-select--disabled {
2807
2912
  opacity: 0.5;
@@ -2953,10 +3058,10 @@
2953
3058
  background: var(--ui-_color);
2954
3059
  border-radius: 50%;
2955
3060
  }
2956
- .ui-status--pulse .status__dot {
3061
+ .ui-status--pulse .ui-status__dot {
2957
3062
  position: relative;
2958
3063
  }
2959
- .ui-status--pulse .status__dot::before {
3064
+ .ui-status--pulse .ui-status__dot::before {
2960
3065
  content: "";
2961
3066
  position: absolute;
2962
3067
  inset: 0;
@@ -3065,9 +3170,9 @@
3065
3170
  color: var(--ui-color-text, hsl(220, 10%, 10%));
3066
3171
  }
3067
3172
  .ui-tabs__tab--active {
3068
- color: var(--ui-color-primary, hsl(220, 85%, 50%));
3173
+ color: var(--ui-color-primary, oklch(55% 0.22 250deg));
3069
3174
  background: var(--ui-_tab-bg-active);
3070
- box-shadow: inset 0 calc(var(--ui-border-width-md, 0.125rem) * -1) 0 var(--ui-color-primary, hsl(220, 85%, 50%));
3175
+ box-shadow: inset 0 calc(var(--ui-border-width-md, 0.125rem) * -1) 0 var(--ui-color-primary, oklch(55% 0.22 250deg));
3071
3176
  }
3072
3177
  .ui-tabs__panel {
3073
3178
  display: none;
@@ -3094,19 +3199,19 @@
3094
3199
  --ui-_font-size: var(--ui-tag-font-size-sm, var(--ui-font-size-xs, 0.75rem));
3095
3200
  }
3096
3201
  .ui-tag--primary {
3097
- --ui-_bg: var(--ui-tag-primary-bg, var(--ui-color-primary, hsl(220, 85%, 50%)));
3202
+ --ui-_bg: var(--ui-tag-primary-bg, var(--ui-color-primary, oklch(55% 0.22 250deg)));
3098
3203
  --ui-_color: var(--ui-tag-primary-color, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
3099
3204
  }
3100
3205
  .ui-tag--success {
3101
- --ui-_bg: var(--ui-tag-success-bg, var(--ui-color-success, hsl(142, 70%, 45%)));
3206
+ --ui-_bg: var(--ui-tag-success-bg, var(--ui-color-success, oklch(60% 0.18 145deg)));
3102
3207
  --ui-_color: var(--ui-tag-success-color, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
3103
3208
  }
3104
3209
  .ui-tag--warning {
3105
- --ui-_bg: var(--ui-tag-warning-bg, var(--ui-color-warning, hsl(38, 90%, 50%)));
3210
+ --ui-_bg: var(--ui-tag-warning-bg, var(--ui-color-warning, oklch(75% 0.18 70deg)));
3106
3211
  --ui-_color: var(--ui-tag-warning-color, var(--ui-color-text, hsl(220, 10%, 10%)));
3107
3212
  }
3108
3213
  .ui-tag--danger {
3109
- --ui-_bg: var(--ui-tag-danger-bg, var(--ui-color-danger, hsl(0, 70%, 50%)));
3214
+ --ui-_bg: var(--ui-tag-danger-bg, var(--ui-color-danger, oklch(60% 0.22 25deg)));
3110
3215
  --ui-_color: var(--ui-tag-danger-color, var(--ui-color-text-inverse, hsl(220, 10%, 98%)));
3111
3216
  }
3112
3217
  }
@@ -3160,7 +3265,7 @@
3160
3265
  --ui-_radius: var(--ui-textarea-radius, var(--ui-radius-md, 0.5rem));
3161
3266
  --ui-_bg: var(--ui-textarea-bg, var(--ui-color-bg, hsl(220, 10%, 98%)));
3162
3267
  --ui-_border-color: var(--ui-textarea-border-color, var(--ui-color-border-strong, hsl(220, 10%, 80%)));
3163
- --ui-_border-color-focus: var(--ui-textarea-border-color-focus, var(--ui-color-primary, hsl(220, 85%, 50%)));
3268
+ --ui-_border-color-focus: var(--ui-textarea-border-color-focus, var(--ui-color-primary, oklch(55% 0.22 250deg)));
3164
3269
  --ui-_text: var(--ui-textarea-text, var(--ui-color-text, hsl(220, 10%, 10%)));
3165
3270
  --ui-_placeholder: var(--ui-textarea-placeholder, var(--ui-color-text-muted, hsl(220, 10%, 45%)));
3166
3271
  }
@@ -3183,12 +3288,12 @@
3183
3288
  --ui-_border-color: transparent;
3184
3289
  }
3185
3290
  .ui-textarea--error {
3186
- --ui-_border-color: var(--ui-textarea-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
3187
- --ui-_border-color-focus: var(--ui-textarea-error-border, var(--ui-color-danger, hsl(0, 70%, 50%)));
3291
+ --ui-_border-color: var(--ui-textarea-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
3292
+ --ui-_border-color-focus: var(--ui-textarea-error-border, var(--ui-color-danger, oklch(60% 0.22 25deg)));
3188
3293
  }
3189
3294
  .ui-textarea--success {
3190
- --ui-_border-color: var(--ui-textarea-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
3191
- --ui-_border-color-focus: var(--ui-textarea-success-border, var(--ui-color-success, hsl(142, 70%, 45%)));
3295
+ --ui-_border-color: var(--ui-textarea-success-border, var(--ui-color-success, oklch(60% 0.18 145deg)));
3296
+ --ui-_border-color-focus: var(--ui-textarea-success-border, var(--ui-color-success, oklch(60% 0.18 145deg)));
3192
3297
  }
3193
3298
  }
3194
3299
  @layer components.styles {
@@ -3219,7 +3324,7 @@
3219
3324
  }
3220
3325
  .ui-textarea:focus, .ui-textarea--focus {
3221
3326
  outline-color: var(--ui-_border-color-focus);
3222
- box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, hsl(220, 85%, 65%));
3327
+ box-shadow: 0 0 0 var(--ui-border-width-md, 0.125rem) var(--ui-color-focus, oklch(75% 0.15 250deg));
3223
3328
  }
3224
3329
  .ui-textarea:disabled, .ui-textarea--disabled {
3225
3330
  opacity: 0.5;
@@ -3437,22 +3542,22 @@
3437
3542
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
3438
3543
  transition: transform var(--ui-duration-fast, 100ms) var(--ui-ease-default, ease);
3439
3544
  }
3440
- .ui-toggle__input:checked ~ .toggle__track {
3545
+ .ui-toggle__input:checked ~ .ui-toggle__track {
3441
3546
  background: var(--ui-_track-bg-checked);
3442
3547
  }
3443
- .ui-toggle__input:checked ~ .toggle__thumb {
3548
+ .ui-toggle__input:checked ~ .ui-toggle__thumb {
3444
3549
  transform: translateX(calc(var(--ui-_track-width) - var(--ui-_thumb-size) - var(--ui-_thumb-offset) * 2));
3445
3550
  }
3446
- .ui-toggle__input:focus-visible ~ .toggle__track {
3551
+ .ui-toggle__input:focus-visible ~ .ui-toggle__track {
3447
3552
  outline: 2px solid var(--ui-color-focus, var(--ui-color-primary));
3448
3553
  outline-offset: calc(0.5rem / 4);
3449
3554
  }
3450
- .ui-toggle__input:disabled ~ .toggle__track,
3451
- .ui-toggle__input:disabled ~ .toggle__thumb {
3555
+ .ui-toggle__input:disabled ~ .ui-toggle__track,
3556
+ .ui-toggle__input:disabled ~ .ui-toggle__thumb {
3452
3557
  opacity: 0.5;
3453
3558
  cursor: not-allowed;
3454
3559
  }
3455
- .ui-toggle:has(.toggle__input:disabled) {
3560
+ .ui-toggle:has(.ui-toggle__input:disabled) {
3456
3561
  cursor: not-allowed;
3457
3562
  }
3458
3563
  }