@auronui/styles 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/DATA_ATTRIBUTES.md +163 -0
  2. package/LICENSE +21 -0
  3. package/README.md +54 -0
  4. package/base/base.css +40 -0
  5. package/components/accordion.css +201 -0
  6. package/components/alert-dialog.css +307 -0
  7. package/components/alert.css +143 -0
  8. package/components/aspect-ratio.css +8 -0
  9. package/components/autocomplete.css +685 -0
  10. package/components/avatar.css +78 -0
  11. package/components/badge.css +186 -0
  12. package/components/breadcrumbs.css +76 -0
  13. package/components/button-group.css +126 -0
  14. package/components/button.css +282 -0
  15. package/components/calendar-year-picker.css +193 -0
  16. package/components/calendar.css +332 -0
  17. package/components/card.css +225 -0
  18. package/components/checkbox-group.css +7 -0
  19. package/components/checkbox.css +268 -0
  20. package/components/chip.css +227 -0
  21. package/components/close-button.css +65 -0
  22. package/components/collapsible-group.css +7 -0
  23. package/components/collapsible.css +74 -0
  24. package/components/color-area.css +81 -0
  25. package/components/color-field.css +99 -0
  26. package/components/color-input-group.css +153 -0
  27. package/components/color-picker.css +121 -0
  28. package/components/color-slider.css +266 -0
  29. package/components/color-swatch-picker.css +247 -0
  30. package/components/color-swatch.css +42 -0
  31. package/components/combo-box.css +203 -0
  32. package/components/date-input-group.css +125 -0
  33. package/components/date-input.css +529 -0
  34. package/components/date-picker.css +86 -0
  35. package/components/date-range-field.css +538 -0
  36. package/components/date-range-picker.css +93 -0
  37. package/components/description.css +4 -0
  38. package/components/drawer.css +222 -0
  39. package/components/dropdown.css +67 -0
  40. package/components/empty-state.css +4 -0
  41. package/components/error-message.css +13 -0
  42. package/components/field-error.css +19 -0
  43. package/components/fieldset.css +39 -0
  44. package/components/header.css +7 -0
  45. package/components/index.css +164 -0
  46. package/components/input-otp.css +124 -0
  47. package/components/input.css +603 -0
  48. package/components/kbd.css +27 -0
  49. package/components/label.css +28 -0
  50. package/components/link.css +144 -0
  51. package/components/list-box-item.css +29 -0
  52. package/components/list-box-section.css +13 -0
  53. package/components/list-box.css +11 -0
  54. package/components/menu-item.css +68 -0
  55. package/components/menu-section.css +18 -0
  56. package/components/menu.css +7 -0
  57. package/components/meter.css +104 -0
  58. package/components/modal.css +335 -0
  59. package/components/number-field.css +395 -0
  60. package/components/pagination.css +157 -0
  61. package/components/popover.css +96 -0
  62. package/components/progress-bar.css +126 -0
  63. package/components/progress-circle.css +82 -0
  64. package/components/radio-group.css +47 -0
  65. package/components/radio.css +157 -0
  66. package/components/range-calendar.css +402 -0
  67. package/components/scroll-area.css +70 -0
  68. package/components/scroll-shadow.css +77 -0
  69. package/components/select.css +649 -0
  70. package/components/separator.css +59 -0
  71. package/components/skeleton.css +48 -0
  72. package/components/slider.css +155 -0
  73. package/components/spinner.css +42 -0
  74. package/components/splitter.css +74 -0
  75. package/components/stepper.css +160 -0
  76. package/components/surface.css +23 -0
  77. package/components/switch-group.css +17 -0
  78. package/components/switch.css +194 -0
  79. package/components/table.css +341 -0
  80. package/components/tabs.css +262 -0
  81. package/components/tag-group.css +66 -0
  82. package/components/tag.css +99 -0
  83. package/components/textarea.css +536 -0
  84. package/components/time-field.css +530 -0
  85. package/components/toast.css +267 -0
  86. package/components/toggle-button-group.css +174 -0
  87. package/components/toggle-button.css +149 -0
  88. package/components/toolbar.css +32 -0
  89. package/components/tooltip.css +47 -0
  90. package/components/tree.css +81 -0
  91. package/index.css +29 -0
  92. package/package.json +415 -0
  93. package/src/components/accordion/accordion.styles.ts +46 -0
  94. package/src/components/accordion/index.ts +1 -0
  95. package/src/components/alert/alert.styles.ts +37 -0
  96. package/src/components/alert/index.ts +1 -0
  97. package/src/components/alert-dialog/alert-dialog.styles.ts +72 -0
  98. package/src/components/alert-dialog/index.ts +1 -0
  99. package/src/components/aspect-ratio/aspect-ratio.styles.ts +10 -0
  100. package/src/components/aspect-ratio/index.ts +1 -0
  101. package/src/components/autocomplete/autocomplete.styles.ts +86 -0
  102. package/src/components/autocomplete/index.ts +1 -0
  103. package/src/components/avatar/avatar.styles.ts +53 -0
  104. package/src/components/avatar/index.ts +1 -0
  105. package/src/components/badge/badge.styles.ts +77 -0
  106. package/src/components/badge/index.ts +1 -0
  107. package/src/components/breadcrumbs/breadcrumbs.styles.ts +14 -0
  108. package/src/components/breadcrumbs/index.ts +1 -0
  109. package/src/components/button/__tests__/button.styles.test.ts +79 -0
  110. package/src/components/button/button.styles.ts +65 -0
  111. package/src/components/button/index.ts +1 -0
  112. package/src/components/button-group/button-group.styles.ts +32 -0
  113. package/src/components/button-group/index.ts +1 -0
  114. package/src/components/calendar/calendar.styles.ts +60 -0
  115. package/src/components/calendar/index.ts +1 -0
  116. package/src/components/calendar-year-picker/calendar-year-picker.styles.ts +15 -0
  117. package/src/components/calendar-year-picker/index.ts +1 -0
  118. package/src/components/card/card.styles.ts +65 -0
  119. package/src/components/card/index.ts +1 -0
  120. package/src/components/checkbox/checkbox.styles.ts +27 -0
  121. package/src/components/checkbox/index.ts +1 -0
  122. package/src/components/checkbox-group/checkbox-group.styles.ts +18 -0
  123. package/src/components/checkbox-group/index.ts +1 -0
  124. package/src/components/chip/chip.styles.ts +65 -0
  125. package/src/components/chip/index.ts +1 -0
  126. package/src/components/close-button/close-button.styles.ts +17 -0
  127. package/src/components/close-button/index.ts +1 -0
  128. package/src/components/collapsible/collapsible.styles.ts +25 -0
  129. package/src/components/collapsible/index.ts +1 -0
  130. package/src/components/collapsible-group/collapsible-group.styles.ts +13 -0
  131. package/src/components/collapsible-group/index.ts +1 -0
  132. package/src/components/color-area/color-area.styles.ts +23 -0
  133. package/src/components/color-area/index.ts +1 -0
  134. package/src/components/color-field/color-field.styles.ts +18 -0
  135. package/src/components/color-field/index.ts +1 -0
  136. package/src/components/color-input-group/color-input-group.styles.ts +34 -0
  137. package/src/components/color-input-group/index.ts +1 -0
  138. package/src/components/color-picker/color-picker.styles.ts +13 -0
  139. package/src/components/color-picker/index.ts +1 -0
  140. package/src/components/color-slider/color-slider.styles.ts +14 -0
  141. package/src/components/color-slider/index.ts +1 -0
  142. package/src/components/color-swatch/color-swatch.styles.ts +26 -0
  143. package/src/components/color-swatch/index.ts +1 -0
  144. package/src/components/color-swatch-picker/color-swatch-picker.styles.ts +54 -0
  145. package/src/components/color-swatch-picker/index.ts +1 -0
  146. package/src/components/combo-box/combo-box.styles.ts +26 -0
  147. package/src/components/combo-box/index.ts +1 -0
  148. package/src/components/date-input/date-input.styles.ts +86 -0
  149. package/src/components/date-input/index.ts +1 -0
  150. package/src/components/date-picker/date-picker.styles.ts +14 -0
  151. package/src/components/date-picker/index.ts +1 -0
  152. package/src/components/date-range-field/date-range-field.styles.ts +87 -0
  153. package/src/components/date-range-field/index.ts +1 -0
  154. package/src/components/date-range-picker/date-range-picker.styles.ts +14 -0
  155. package/src/components/date-range-picker/index.ts +1 -0
  156. package/src/components/description/description.styles.ts +9 -0
  157. package/src/components/description/index.ts +1 -0
  158. package/src/components/drawer/drawer.styles.ts +55 -0
  159. package/src/components/drawer/index.ts +1 -0
  160. package/src/components/dropdown/dropdown.styles.ts +14 -0
  161. package/src/components/dropdown/index.ts +1 -0
  162. package/src/components/empty-state/empty-state.styles.ts +9 -0
  163. package/src/components/empty-state/index.ts +1 -0
  164. package/src/components/error-message/error-message.styles.ts +9 -0
  165. package/src/components/error-message/index.ts +1 -0
  166. package/src/components/fieldset/fieldset.styles.ts +29 -0
  167. package/src/components/fieldset/index.ts +1 -0
  168. package/src/components/header/header.styles.ts +5 -0
  169. package/src/components/header/index.ts +1 -0
  170. package/src/components/index.ts +84 -0
  171. package/src/components/input/index.ts +1 -0
  172. package/src/components/input/input.styles.ts +87 -0
  173. package/src/components/input-otp/index.ts +1 -0
  174. package/src/components/input-otp/input-otp.styles.ts +30 -0
  175. package/src/components/kbd/index.ts +1 -0
  176. package/src/components/kbd/kbd.styles.ts +20 -0
  177. package/src/components/label/index.ts +1 -0
  178. package/src/components/label/label.styles.ts +25 -0
  179. package/src/components/link/index.ts +1 -0
  180. package/src/components/link/link.styles.ts +38 -0
  181. package/src/components/list-box/index.ts +1 -0
  182. package/src/components/list-box/list-box.styles.ts +18 -0
  183. package/src/components/list-box-item/index.ts +1 -0
  184. package/src/components/list-box-item/list-box-item.styles.ts +25 -0
  185. package/src/components/list-box-section/index.ts +1 -0
  186. package/src/components/list-box-section/list-box-section.styles.ts +13 -0
  187. package/src/components/menu/index.ts +1 -0
  188. package/src/components/menu/menu.styles.ts +9 -0
  189. package/src/components/menu-item/index.ts +1 -0
  190. package/src/components/menu-item/menu-item.styles.ts +26 -0
  191. package/src/components/menu-section/index.ts +1 -0
  192. package/src/components/menu-section/menu-section.styles.ts +14 -0
  193. package/src/components/meter/index.ts +1 -0
  194. package/src/components/meter/meter.styles.ts +48 -0
  195. package/src/components/modal/index.ts +1 -0
  196. package/src/components/modal/modal.styles.ts +70 -0
  197. package/src/components/number-field/index.ts +1 -0
  198. package/src/components/number-field/number-field.styles.ts +80 -0
  199. package/src/components/pagination/index.ts +1 -0
  200. package/src/components/pagination/pagination.styles.ts +32 -0
  201. package/src/components/popover/index.ts +1 -0
  202. package/src/components/popover/popover.styles.ts +14 -0
  203. package/src/components/progress-bar/index.ts +1 -0
  204. package/src/components/progress-bar/progress-bar.styles.ts +97 -0
  205. package/src/components/progress-circle/index.ts +1 -0
  206. package/src/components/progress-circle/progress-circle.styles.ts +74 -0
  207. package/src/components/radio/index.ts +1 -0
  208. package/src/components/radio/radio.styles.ts +14 -0
  209. package/src/components/radio-group/index.ts +1 -0
  210. package/src/components/radio-group/radio-group.styles.ts +18 -0
  211. package/src/components/range-calendar/index.ts +1 -0
  212. package/src/components/range-calendar/range-calendar.styles.ts +60 -0
  213. package/src/components/scroll-shadow/index.ts +1 -0
  214. package/src/components/scroll-shadow/scroll-shadow.styles.ts +37 -0
  215. package/src/components/select/index.ts +1 -0
  216. package/src/components/select/select.styles.ts +86 -0
  217. package/src/components/separator/index.ts +1 -0
  218. package/src/components/separator/separator.styles.ts +25 -0
  219. package/src/components/skeleton/index.ts +1 -0
  220. package/src/components/skeleton/skeleton.styles.ts +21 -0
  221. package/src/components/slider/index.ts +1 -0
  222. package/src/components/slider/slider.styles.ts +40 -0
  223. package/src/components/spinner/index.ts +1 -0
  224. package/src/components/spinner/spinner.styles.ts +28 -0
  225. package/src/components/splitter/index.ts +1 -0
  226. package/src/components/splitter/splitter.styles.ts +28 -0
  227. package/src/components/stepper/index.ts +1 -0
  228. package/src/components/stepper/stepper.styles.ts +57 -0
  229. package/src/components/surface/index.ts +1 -0
  230. package/src/components/surface/surface.styles.ts +20 -0
  231. package/src/components/switch/index.ts +1 -0
  232. package/src/components/switch/switch.styles.ts +31 -0
  233. package/src/components/switch-group/index.ts +1 -0
  234. package/src/components/switch-group/switch-group.styles.ts +25 -0
  235. package/src/components/table/index.ts +1 -0
  236. package/src/components/table/table.styles.ts +47 -0
  237. package/src/components/tabs/index.ts +1 -0
  238. package/src/components/tabs/tabs.styles.ts +31 -0
  239. package/src/components/tag/index.ts +1 -0
  240. package/src/components/tag/tag.styles.ts +37 -0
  241. package/src/components/tag-group/index.ts +1 -0
  242. package/src/components/tag-group/tag-group.styles.ts +12 -0
  243. package/src/components/text/index.ts +1 -0
  244. package/src/components/text/text.styles.ts +29 -0
  245. package/src/components/textarea/index.ts +1 -0
  246. package/src/components/textarea/textarea.styles.ts +86 -0
  247. package/src/components/time-field/index.ts +1 -0
  248. package/src/components/time-field/time-field.styles.ts +86 -0
  249. package/src/components/toast/index.ts +1 -0
  250. package/src/components/toast/toast.styles.ts +67 -0
  251. package/src/components/toggle-button/index.ts +1 -0
  252. package/src/components/toggle-button/toggle-button.styles.ts +28 -0
  253. package/src/components/toggle-button-group/index.ts +1 -0
  254. package/src/components/toggle-button-group/toggle-button-group.styles.ts +39 -0
  255. package/src/components/toolbar/index.ts +1 -0
  256. package/src/components/toolbar/toolbar.styles.ts +23 -0
  257. package/src/components/tooltip/index.ts +1 -0
  258. package/src/components/tooltip/tooltip.styles.ts +12 -0
  259. package/src/components/tree/index.ts +1 -0
  260. package/src/components/tree/tree.styles.ts +33 -0
  261. package/src/index.ts +5 -0
  262. package/src/utils/index.ts +15 -0
  263. package/themes/default/components/index.css +6 -0
  264. package/themes/default/index.css +8 -0
  265. package/themes/default/variables.css +168 -0
  266. package/themes/shared/theme.css +196 -0
  267. package/utilities/index.css +244 -0
  268. package/variants/index.css +106 -0
@@ -0,0 +1,144 @@
1
+ /* Base link styles */
2
+ .link {
3
+ @apply relative inline-flex h-fit w-fit items-center rounded-xl text-sm font-medium text-link underline decoration-separator-tertiary decoration-[1.5px] underline-offset-4 no-highlight;
4
+
5
+ /**
6
+ * Transitions
7
+ * CRITICAL: motion-reduce must be AFTER transition for correct override specificity
8
+ */
9
+ transition:
10
+ color 300ms var(--ease-smooth),
11
+ text-decoration-color 300ms var(--ease-out),
12
+ background-color 300ms var(--ease-smooth),
13
+ box-shadow 300ms var(--ease-out),
14
+ opacity 300ms var(--ease-out);
15
+ @apply motion-reduce:transition-none;
16
+
17
+ /* Cursor */
18
+ cursor: var(--cursor-interactive);
19
+
20
+ /* Hover state */
21
+ @media (hover: hover) {
22
+ &:hover,
23
+ &[data-hovered="true"] {
24
+ @apply decoration-muted;
25
+
26
+ .link__icon {
27
+ @apply opacity-100;
28
+ }
29
+ }
30
+ }
31
+
32
+ /* Focus state */
33
+ &:focus-visible:not(:focus),
34
+ &[data-focus-visible="true"] {
35
+ @apply status-focused;
36
+
37
+ .link__icon {
38
+ @apply opacity-100;
39
+ }
40
+ }
41
+
42
+ /* Disabled state */
43
+ &[aria-disabled="true"] {
44
+ @apply status-disabled;
45
+ }
46
+
47
+ .link__icon {
48
+ @apply pointer-events-none inline-flex size-2 shrink-0 items-center justify-center text-current opacity-60;
49
+
50
+ /**
51
+ * Transitions
52
+ * CRITICAL: motion-reduce must be AFTER transition for correct override specificity
53
+ */
54
+ transition: opacity 300ms var(--ease-out);
55
+ @apply motion-reduce:transition-none;
56
+
57
+ & svg {
58
+ @apply transform-gpu;
59
+ }
60
+ }
61
+
62
+ .link__icon[data-default-icon="true"] {
63
+ @apply ml-1 pb-1.5;
64
+ }
65
+
66
+ /* Handle Link with Button Variants */
67
+ &.button {
68
+ @apply gap-0 no-underline;
69
+ }
70
+ }
71
+
72
+ /* ====================== */
73
+ /* = Color variants = */
74
+ /* ====================== */
75
+
76
+ .link--color-default {
77
+ color: var(--color-default-foreground);
78
+ }
79
+
80
+ .link--color-primary {
81
+ color: var(--color-accent);
82
+ }
83
+
84
+ .link--color-success {
85
+ color: var(--color-success);
86
+ }
87
+
88
+ .link--color-warning {
89
+ color: var(--color-warning);
90
+ }
91
+
92
+ .link--color-danger {
93
+ color: var(--color-danger);
94
+ }
95
+
96
+ .link--color-foreground {
97
+ color: var(--color-foreground);
98
+ }
99
+
100
+ /* ========================= */
101
+ /* = Underline variants = */
102
+ /* ========================= */
103
+
104
+ /* none: never underlined */
105
+ .link--underline-none {
106
+ @apply no-underline;
107
+ }
108
+
109
+ /* hover: underline only on hover */
110
+ .link--underline-hover {
111
+ @apply no-underline;
112
+
113
+ @media (hover: hover) {
114
+ &:hover,
115
+ &[data-hovered="true"] {
116
+ @apply underline decoration-current;
117
+ }
118
+ }
119
+ }
120
+
121
+ /* always: always underlined (default base already underlines, this is explicit) */
122
+ .link--underline-always {
123
+ @apply underline decoration-current;
124
+ }
125
+
126
+ /* active: underline only while pressed */
127
+ .link--underline-active {
128
+ @apply no-underline;
129
+
130
+ &:active,
131
+ &[data-pressed="true"] {
132
+ @apply underline decoration-current;
133
+ }
134
+ }
135
+
136
+ /* focus: underline only when focused */
137
+ .link--underline-focus {
138
+ @apply no-underline;
139
+
140
+ &:focus-visible,
141
+ &[data-focus-visible="true"] {
142
+ @apply underline decoration-current;
143
+ }
144
+ }
@@ -0,0 +1,29 @@
1
+ /* ==========================================================================
2
+ List-box item
3
+ ========================================================================== */
4
+
5
+ .list-box-item {
6
+ @apply list-item min-h-8 gap-2 rounded-lg text-sm;
7
+
8
+ &:has(.list-box-item__indicator) {
9
+ @apply pr-7;
10
+ }
11
+
12
+ &[aria-selected="true"],
13
+ &[data-state="checked"] {
14
+ @apply bg-default font-medium text-foreground;
15
+ }
16
+ }
17
+
18
+ .list-box-item__indicator {
19
+ @apply list-item-indicator right-2 text-foreground;
20
+
21
+ [data-slot="list-box-item-indicator--checkmark"] {
22
+ @apply size-3;
23
+ }
24
+ }
25
+
26
+ .list-box-item--danger {
27
+ .list-box-item__indicator { @apply text-danger; }
28
+ [data-slot="label"] { @apply text-danger; }
29
+ }
@@ -0,0 +1,13 @@
1
+ /* ==========================================================================
2
+ List-box section
3
+ ========================================================================== */
4
+
5
+ .list-box-section {
6
+ @apply list-section;
7
+ }
8
+ .list-box-section__label {
9
+ @apply list-section-label;
10
+ }
11
+ .list-box-section__separator {
12
+ @apply list-section-separator;
13
+ }
@@ -0,0 +1,11 @@
1
+ /* ==========================================================================
2
+ List-box container
3
+ ========================================================================== */
4
+
5
+ .list-box {
6
+ @apply list-container gap-0.5 text-sm text-foreground surface-card;
7
+
8
+ [data-slot="separator"][data-orientation="horizontal"] {
9
+ @apply mx-1 my-0.5 h-px bg-separator;
10
+ }
11
+ }
@@ -0,0 +1,68 @@
1
+ /* ==========================================================================
2
+ Menu item
3
+ ========================================================================== */
4
+
5
+ .menu-item {
6
+ @apply list-item min-h-9 gap-3 rounded-lg text-sm;
7
+
8
+ [data-slot="submenu-indicator"] svg {
9
+ @apply size-3.5;
10
+ }
11
+
12
+ &:has(.menu-item__indicator) {
13
+ @apply pl-7;
14
+ }
15
+
16
+ &[data-has-submenu="true"]:has(.menu-item__indicator) {
17
+ @apply pr-7 pl-2;
18
+ }
19
+
20
+ &[aria-checked="true"],
21
+ &[aria-selected="true"],
22
+ &[data-state="checked"] {
23
+ @apply bg-default font-medium text-foreground;
24
+
25
+ [data-slot="menu-item-indicator--checkmark"] {
26
+ transition: stroke-dashoffset 300ms linear;
27
+ @apply motion-reduce:transition-none;
28
+ }
29
+
30
+ [data-slot="menu-item-indicator--dot"] {
31
+ @apply scale-100 opacity-100;
32
+ }
33
+ }
34
+ }
35
+
36
+ .menu-item__indicator {
37
+ @apply list-item-indicator left-2 text-muted;
38
+
39
+ .menu-item[data-has-submenu="true"] & {
40
+ @apply right-2 left-auto;
41
+ }
42
+
43
+ [data-slot="menu-item-indicator--checkmark"] {
44
+ @apply size-2.5;
45
+
46
+ .menu-item[data-selection-mode="multiple"] & {
47
+ @apply transition-all duration-300 motion-reduce:transition-none;
48
+ }
49
+ }
50
+
51
+ [data-slot="menu-item-indicator--dot"] {
52
+ @apply size-2 scale-70 opacity-0;
53
+
54
+ .menu-item[data-selection-mode="multiple"] & {
55
+ @apply transition-all duration-300 motion-reduce:transition-none;
56
+ }
57
+ }
58
+ }
59
+
60
+ .menu-item__indicator--submenu {
61
+ @apply text-muted;
62
+ svg { @apply size-3; }
63
+ }
64
+
65
+ .menu-item--danger {
66
+ .menu-item__indicator { @apply text-danger; }
67
+ [data-slot="label"] { @apply text-danger; }
68
+ }
@@ -0,0 +1,18 @@
1
+ /* ==========================================================================
2
+ Menu section
3
+ ========================================================================== */
4
+
5
+ .menu-section {
6
+ @apply list-section py-1;
7
+
8
+ /* & + .menu-section {
9
+ @apply mt-0.5 border-t border-border pt-1.5;
10
+ } */
11
+ }
12
+
13
+ .menu-section__label {
14
+ @apply list-section-label;
15
+ }
16
+ .menu-section__separator {
17
+ @apply list-section-separator;
18
+ }
@@ -0,0 +1,7 @@
1
+ /* ==========================================================================
2
+ Menu container
3
+ ========================================================================== */
4
+
5
+ .menu, .dropdown__menu {
6
+ @apply list-container relative gap-1 overflow-clip surface-card;
7
+ }
@@ -0,0 +1,104 @@
1
+ /* ==========================================================================
2
+ Meter - A quantity indicator within a known range
3
+ ========================================================================== */
4
+
5
+ /* Base styles */
6
+ .meter {
7
+ @apply grid w-full gap-1;
8
+ grid-template-areas:
9
+ "label output"
10
+ "track track";
11
+ grid-template-columns: 1fr auto;
12
+
13
+ /* Default color tokens (accent) */
14
+ --meter-fill: var(--color-accent);
15
+
16
+ [data-slot="label"] {
17
+ @apply w-fit text-sm font-medium;
18
+
19
+ grid-area: label;
20
+ }
21
+
22
+ .meter__output {
23
+ @apply text-sm font-medium tabular-nums;
24
+
25
+ grid-area: output;
26
+ }
27
+
28
+ .meter__track {
29
+ @apply relative overflow-hidden rounded-full bg-default;
30
+
31
+ grid-area: track;
32
+
33
+ /* Default height (matches --md) */
34
+ @apply h-2;
35
+ }
36
+
37
+ .meter__fill {
38
+ @apply absolute top-0 left-0 h-full rounded-full;
39
+
40
+ background-color: var(--meter-fill);
41
+
42
+ /**
43
+ * Transitions
44
+ * CRITICAL: motion-reduce must be AFTER transition for correct override specificity
45
+ */
46
+ transition: width 300ms var(--ease-out);
47
+ @apply motion-reduce:transition-none;
48
+ }
49
+
50
+ /* Disabled state */
51
+ &:disabled,
52
+ &[data-disabled],
53
+ &[aria-disabled="true"] {
54
+ @apply status-disabled;
55
+
56
+ [data-slot="label"] {
57
+ @apply opacity-100;
58
+ }
59
+ }
60
+ }
61
+
62
+ /* ==========================================================================
63
+ Size variants
64
+ ========================================================================== */
65
+
66
+ .meter--sm {
67
+ .meter__track {
68
+ @apply h-1;
69
+ }
70
+ }
71
+
72
+ .meter--md {
73
+ /* No styles as this is the default size */
74
+ }
75
+
76
+ .meter--lg {
77
+ .meter__track {
78
+ @apply h-3;
79
+ }
80
+ }
81
+
82
+ /* ==========================================================================
83
+ Color variants
84
+ ========================================================================== */
85
+
86
+ .meter--default {
87
+ --meter-fill: var(--color-default-foreground);
88
+ }
89
+
90
+ .meter--accent {
91
+ --meter-fill: var(--color-accent);
92
+ }
93
+
94
+ .meter--success {
95
+ --meter-fill: var(--color-success);
96
+ }
97
+
98
+ .meter--warning {
99
+ --meter-fill: var(--color-warning);
100
+ }
101
+
102
+ .meter--danger {
103
+ --meter-fill: var(--color-danger);
104
+ }