@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,163 @@
1
+ # DATA_ATTRIBUTES.md
2
+
3
+ Data-attribute mapping document for `@auronui/styles` — documents every React Aria → Reka UI
4
+ attribute substitution applied during the INFRA-07 audit.
5
+
6
+ ## Mapping Table
7
+
8
+ | React Aria Attribute | Reka UI Equivalent | CSS Selector | Components Affected |
9
+ |---|---|---|---|
10
+ | `[data-disabled="true"]` | `[data-disabled]` (boolean presence) | `[data-disabled]` | All interactive components |
11
+ | `[data-hovered="true"]` | `:hover` CSS pseudo-class | `:hover` | All interactive components |
12
+ | `[data-pressed="true"]` | `:active` CSS pseudo-class | `:active` | All interactive components |
13
+ | `[data-focus-visible="true"]` | `:focus-visible` CSS pseudo-class | `:focus-visible` | All interactive components |
14
+ | `[data-focused="true"]` | `:focus` or `:focus-within` CSS pseudo-class | `:focus`, `:focus-within` | Input, Textarea, DateInput, etc. |
15
+ | `[data-selected="true"]` — Checkbox/Radio/Switch | `[data-state="checked"]` | `[data-state="checked"]` | Checkbox, Radio, Switch, ListBoxItem, Select |
16
+ | `[data-selected="true"]` — Tabs tab | `[data-state="active"]` | `[data-state="active"]` | Tabs |
17
+ | `[data-selected="true"]` — Toggle | `[data-state="on"]` | `[data-state="on"]` | ToggleButton |
18
+ | `[data-selected="true"]` — ColorSwatchPicker | `[data-state="checked"]` | `[data-state="checked"]` | ColorSwatchPicker |
19
+ | `[data-indeterminate="true"]` | `[data-state="indeterminate"]` | `[data-state="indeterminate"]` | Checkbox |
20
+ | `[data-expanded="true"]` | `[data-state="open"]` | `[data-state="open"]` | Accordion, Disclosure, Popover, Dropdown |
21
+ | `[data-open="true"]` | `[data-state="open"]` | `[data-state="open"]` | Modal, Drawer, Popover, Tooltip |
22
+ | `[data-invalid="true"]` | `[aria-invalid="true"]` | `[aria-invalid="true"]` | Input, Textarea, NumberField, DateField, etc. |
23
+ | `[data-required="true"]` | `[aria-required="true"]` | `[aria-required="true"]` | Input, Textarea, etc. |
24
+ | `[data-entering="true"]` | (removed — use Vue `<Transition>` classes) | N/A | Modal, Drawer, Popover, Tooltip |
25
+ | `[data-exiting="true"]` | (removed — use Vue `<Transition>` classes) | N/A | Modal, Drawer, Popover, Tooltip |
26
+
27
+ ## Updated CSS Files (83 files audited)
28
+
29
+ The following 83 CSS files in `packages/styles/components/` were audited and updated
30
+ during the INFRA-07 data-attribute audit. Files with no React Aria data-attributes were
31
+ confirmed clean; files with attributes were updated per the mapping table above.
32
+
33
+ ### Confirmed Updated Files (52 files originally listed as requiring changes):
34
+
35
+ 1. `accordion.css` — `data-expanded` → `[data-state="open"]`
36
+ 2. `alert-dialog.css` — `data-open` → `[data-state="open"]`
37
+ 3. `autocomplete.css` — `data-hovered`, `data-pressed`, `data-focused`
38
+ 4. `breadcrumbs.css` — `data-hovered`, `data-disabled`
39
+ 5. `button.css` — `data-hovered`, `data-pressed`, `data-focus-visible`, `data-disabled`
40
+ 6. `button-group.css` — `data-pressed` → `:active`, `data-focus-visible` → `:focus-visible`
41
+ 7. `calendar.css` — `data-hovered`, `data-pressed`, `data-disabled`, `data-selected`
42
+ 8. `calendar-year-picker.css` — `data-hovered`, `data-selected` → `[data-state="checked"]`
43
+ 9. `checkbox.css` — `data-hovered` → `:hover`, `data-pressed` → `:active`, `data-focus-visible` → `:focus-visible`, `data-selected` → `[data-state="checked"]`, `data-indeterminate` → `[data-state="indeterminate"]`, `data-disabled`
44
+ 10. `checkbox-group.css` — `data-selected` → `[data-state="checked"]`, `data-disabled`
45
+ 11. `close-button.css` — `data-hovered`, `data-pressed`, `data-focus-visible`
46
+ 12. `color-area.css` — `data-hovered`, `data-pressed`, `data-focus-visible`, `data-disabled`
47
+ 13. `color-field.css` — `data-focused`, `data-invalid`
48
+ 14. `color-input-group.css` — `data-focused`, `data-disabled`
49
+ 15. `color-picker.css` — `data-disabled`
50
+ 16. `color-slider.css` — `data-hovered`, `data-pressed`, `data-focus-visible`, `data-disabled`
51
+ 17. `color-swatch-picker.css` — `data-selected` → `[data-state="checked"]`
52
+ 18. `combo-box.css` — `data-expanded` → `[data-state="open"]`, `data-focused`, `data-invalid`
53
+ 19. `date-field.css` — `data-focused`, `data-invalid`, `data-disabled`
54
+ 20. `date-input-group.css` — shared field shell used by DateField, TimeField, DateRangeField; `[data-focus-within]`, `[aria-invalid]`, `[data-disabled]`
55
+ 21. `date-picker.css` — `data-expanded` → `[data-state="open"]`
56
+ 22. `date-range-picker.css` — `data-expanded` → `[data-state="open"]`, `data-focused`
57
+ 23. `disclosure.css` — `data-expanded` → `[data-state="open"]`
58
+ 24. `disclosure-group.css` — `data-expanded` → `[data-state="open"]`
59
+ 25. `drawer.css` — `data-open` → `[data-state="open"]`, `data-entering`, `data-exiting`
60
+ 26. `dropdown.css` — `data-expanded` → `[data-state="open"]`
61
+ 27. `input.css` — `data-focused` → `:focus`, `data-focus-visible` → `:focus-visible`, `data-invalid`, `data-disabled`
62
+ 28. `input-group.css` — `data-disabled`, `data-focused`
63
+ 29. `input-otp.css` — `data-hovered`, `data-focused`, `data-invalid`
64
+ 30. `label.css` — `data-invalid`, `data-required` → `[aria-required="true"]`, `data-disabled`
65
+ 31. `link.css` — `data-hovered`, `data-pressed`, `data-focus-visible`
66
+ 32. `list-box-item.css` — `data-hovered` → `:hover`, `data-pressed` → `:active`, `data-selected` → `[data-state="checked"]`, `data-disabled`, `data-focused`
67
+ 33. `menu-item.css` — `data-hovered`, `data-pressed`, `data-focus-visible`, `data-disabled`, `data-selected`
68
+ 34. `modal.css` — `data-open` → `[data-state="open"]`, `data-entering`, `data-exiting`
69
+ 35. `number-field.css` — `data-hovered`, `data-pressed`, `data-focused`, `data-invalid`, `data-disabled`
70
+ 36. `pagination.css` — `data-hovered`, `data-pressed`, `data-focus-visible`, `data-selected`, `data-disabled`
71
+ 37. `popover.css` — `data-open` → `[data-state="open"]`, `data-entering`, `data-exiting`
72
+ 38. `progress-bar.css` — (no React Aria attrs in original — confirmed clean)
73
+ 39. `radio.css` — `data-hovered` → `:hover`, `data-pressed` → `:active`, `data-focus-visible` → `:focus-visible`, `data-selected` → `[data-state="checked"]`, `data-disabled`
74
+ 40. `radio-group.css` — `data-hovered` → `:hover`, `data-selected` → `[data-state="checked"]`, `data-disabled`
75
+ 41. `range-calendar.css` — `data-hovered`, `data-pressed`, `data-selected`, `data-disabled`
76
+ 42. `scroll-shadow.css` — (no React Aria attrs — confirmed clean)
77
+ 44. `select.css` — `data-expanded` → `[data-state="open"]`, `data-selected` → `[data-state="checked"]`, `data-focused`, `data-invalid`, `data-disabled`
78
+ 45. `slider.css` — `data-hovered`, `data-pressed`, `data-focus-visible`, `data-disabled`
79
+ 46. `switch.css` — `data-hovered` → `:hover`, `data-pressed` → `:active`, `data-focus-visible` → `:focus-visible`, `data-selected` → `[data-state="checked"]`, `data-disabled`
80
+ 47. `switch-group.css` — `data-disabled`
81
+ 48. `table.css` — `data-hovered` → `:hover`, `data-selected`, `data-disabled`, `data-focus-visible`
82
+ 49. `tabs.css` — `data-selected` → `[data-state="active"]`, `data-focus-visible`, `data-disabled`
83
+ 50. `tag.css` — `data-hovered` → `:hover`, `data-pressed` → `:active`, `data-selected` → `[data-state="checked"]`, `data-disabled`
84
+ 51. `textarea.css` — `data-focused` → `:focus`, `data-focus-visible` → `:focus-visible`, `data-invalid`, `data-disabled`
85
+ 53. `time-field.css` — `data-focused`, `data-invalid`, `data-disabled`
86
+ 54. `toast.css` — `data-open` → `[data-state="open"]`, `data-entering`, `data-exiting`
87
+ 55. `toggle-button.css` — `data-selected` → `[data-state="on"]`, `data-hovered`, `data-pressed`, `data-focus-visible`
88
+ 56. `toggle-button-group.css` — `data-pressed` → `:active`, `data-focus-visible` → `:focus-visible`
89
+ 57. `toolbar.css` — `data-focused`, `data-disabled`
90
+ 58. `tooltip.css` — `data-open` → `[data-state="open"]`, `data-entering`, `data-exiting`
91
+
92
+ ### Additional files in components/ (confirmed clean or passthrough):
93
+ - `alert.css`, `avatar.css`, `badge.css`, `card.css`, `chip.css`, `color-swatch.css`,
94
+ `description.css`, `empty-state.css`, `error-message.css`, `field-error.css`,
95
+ `fieldset.css`, `header.css`, `index.css`, `kbd.css`, `list-box.css`,
96
+ `list-box-section.css`, `menu.css`, `menu-section.css`, `meter.css`,
97
+ `progress-circle.css`, `separator.css`, `skeleton.css`, `spinner.css`,
98
+ `surface.css`, `tag-group.css`, `text/` — no React Aria data-attributes found
99
+
100
+ ## Custom Auron Attributes
101
+
102
+ Auron component implementations must manually set them on elements, as they control CSS visual states:
103
+
104
+ | Attribute | Usage | Set by |
105
+ |---|---|---|
106
+ | `data-pending="true"` | Button loading/pending state spinner | Auron component (manual) |
107
+ | `data-dragging="true"` | Drag state on DragAndDrop items | Auron component (manual) |
108
+ | `data-outside-month="true"` | Calendar day outside current month | Auron component (manual) |
109
+ | `data-today="true"` | Calendar current day indicator | Auron component (manual) |
110
+ | `data-highlighted="true"` | Highlighted range in RangeCalendar | Reka UI emits this natively |
111
+ | `data-allows-sorting="true"` | Table sortable column header | Auron component (manual) |
112
+ | `data-slot="*"` | Component slot identification | Auron component (manual) |
113
+ | `data-active="true"` | Active navigation item | Auron component (manual) |
114
+ | `data-filled="true"` | Input has value (label float) | Auron component (manual) |
115
+ | `data-color="*"` | Color variant identifier | Auron component (manual) |
116
+ | `data-type="*"` | Input type identifier | Auron component (manual) |
117
+
118
+ ## Unchanged Attributes
119
+
120
+ The following Reka UI data-attributes were already correct and required no changes:
121
+
122
+ | Attribute | Description | Source |
123
+ |---|---|---|
124
+ | `data-state="open"` | Open/expanded state | Reka UI native |
125
+ | `data-state="closed"` | Closed/collapsed state | Reka UI native |
126
+ | `data-state="checked"` | Checked state (checkbox, radio, listbox) | Reka UI native |
127
+ | `data-state="unchecked"` | Unchecked state | Reka UI native |
128
+ | `data-state="indeterminate"` | Indeterminate checkbox state | Reka UI native (was `data-indeterminate="true"`) |
129
+ | `data-state="active"` | Active tab | Reka UI native |
130
+ | `data-state="inactive"` | Inactive tab | Reka UI native |
131
+ | `data-state="on"` | Toggle button ON state | Reka UI native |
132
+ | `data-state="off"` | Toggle button OFF state | Reka UI native |
133
+ | `data-disabled` | Disabled boolean (no value) | Reka UI native |
134
+ | `data-orientation="horizontal"` | Horizontal layout | Reka UI native |
135
+ | `data-orientation="vertical"` | Vertical layout | Reka UI native |
136
+ | `data-side="top"/"bottom"/"left"/"right"` | Popover side placement | Reka UI native |
137
+ | `data-align="start"/"center"/"end"` | Popover alignment | Reka UI native |
138
+ | `data-highlighted` | Highlighted item in list | Reka UI native |
139
+ | `aria-invalid="true"` | Invalid input (ARIA attribute) | HTML/ARIA standard |
140
+ | `aria-required="true"` | Required input (ARIA attribute) | HTML/ARIA standard |
141
+ | `aria-checked="true"` | Checked state (ARIA attribute) | HTML/ARIA standard |
142
+ | `aria-disabled="true"` | Disabled state (ARIA attribute) | HTML/ARIA standard |
143
+
144
+ ## Verification Commands
145
+
146
+ ```bash
147
+ # Verify zero React Aria data-attributes remain
148
+ cd packages/styles/components
149
+ grep -r 'data-disabled="true"' . --include="*.css" | wc -l # must be 0
150
+ grep -r 'data-hovered="true"' . --include="*.css" | wc -l # must be 0
151
+ grep -r 'data-pressed="true"' . --include="*.css" | wc -l # must be 0
152
+ grep -r 'data-focus-visible="true"' . --include="*.css" | wc -l # must be 0
153
+ grep -r 'data-focused="true"' . --include="*.css" | wc -l # must be 0
154
+ grep -r 'data-selected="true"' . --include="*.css" | wc -l # must be 0
155
+ grep -r 'data-expanded="true"' . --include="*.css" | wc -l # must be 0
156
+
157
+ # Verify Reka UI replacements are present
158
+ grep -r 'data-state="checked"' . --include="*.css" | wc -l # should be many
159
+ grep -r 'data-state="open"' . --include="*.css" | wc -l # should be many
160
+ grep -r 'data-state="active"' . --include="*.css" | wc -l # should be > 0 (tabs)
161
+ grep -r 'data-state="on"' . --include="*.css" | wc -l # should be > 0 (toggle-button)
162
+ grep -r '\[data-disabled\]' . --include="*.css" | wc -l # should be many
163
+ ```
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Auron Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,54 @@
1
+ # @auronui/styles
2
+
3
+ Core styles for Auron UI — CSS layers, theme variables, component styles, and Tailwind CSS variants for all 85+ components.
4
+
5
+ This package is framework-agnostic. It provides the visual foundation consumed by `@auronui/vue` (and future `@auronui/react` / `@auronui/angular` packages).
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ pnpm add @auronui/styles
11
+ ```
12
+
13
+ ## Usage
14
+
15
+ Import the full stylesheet in your app entry:
16
+
17
+ ```css
18
+ @import "@auronui/styles";
19
+ ```
20
+
21
+ Or import individual component styles:
22
+
23
+ ```css
24
+ @import "@auronui/styles/components/button.css" layer(components);
25
+ @import "@auronui/styles/components/chip.css" layer(components);
26
+ @import "@auronui/styles/themes.css" layer(base);
27
+ ```
28
+
29
+ ## Structure
30
+
31
+ ```
32
+ @auronui/styles/
33
+ index.css # Full bundle (base + themes + components + variants)
34
+ base/base.css # CSS reset and base layer
35
+ themes/default/ # Default theme variables
36
+ components/ # Per-component CSS (button.css, card.css, …)
37
+ variants/ # Tailwind CSS custom variant definitions
38
+ src/ # TypeScript tailwind-variants slot definitions
39
+ ```
40
+
41
+ ## Theming
42
+
43
+ Override CSS custom properties to customise the design tokens:
44
+
45
+ ```css
46
+ :root {
47
+ --auron-primary: oklch(55% 0.2 262);
48
+ --auron-radius-medium: 0.5rem;
49
+ }
50
+ ```
51
+
52
+ ## License
53
+
54
+ MIT
package/base/base.css ADDED
@@ -0,0 +1,40 @@
1
+ /*
2
+ * Native scrollbars — hidden by default.
3
+ * Use the <ScrollArea/> component (Reka UI–backed, cross-browser) wherever
4
+ * a scrollable region is needed. It renders a JS-driven pretty scrollbar
5
+ * that looks identical on Chrome, Safari, Firefox, and Edge.
6
+ *
7
+ * Opt back into a native scrollbar by adding `data-native-scrollbar` to an
8
+ * ancestor or the scrolling element itself.
9
+ */
10
+ *:not([data-native-scrollbar] *):not([data-native-scrollbar]) {
11
+ scrollbar-width: none;
12
+ }
13
+ *:not([data-native-scrollbar] *):not([data-native-scrollbar])::-webkit-scrollbar {
14
+ display: none;
15
+ }
16
+
17
+ /* Border color inheritance */
18
+ *,
19
+ ::after,
20
+ ::before,
21
+ ::backdrop,
22
+ ::file-selector-button {
23
+ border-color: var(--border, currentColor);
24
+ }
25
+
26
+ /* Keeps main page content interactive during view transitions */
27
+ :root {
28
+ view-transition-name: none;
29
+ }
30
+
31
+ ::view-transition {
32
+ pointer-events: none;
33
+ }
34
+
35
+ /* Default typography — inherited by every component. Override by redefining
36
+ * --font-sans at :root (or any ancestor). Font files are NOT bundled by
37
+ * @auronui/styles; consumers load their own (see apps/docs + packages/storybook). */
38
+ body {
39
+ font-family: var(--font-sans);
40
+ }
@@ -0,0 +1,201 @@
1
+ /* Base accordion styles */
2
+ .accordion {
3
+ @apply w-full;
4
+
5
+ /* Performance optimization - contain layout changes */
6
+ contain: layout style;
7
+ }
8
+
9
+ /* Accordion elements */
10
+ .accordion__body {
11
+ @apply text-sm;
12
+
13
+ /* The open/close height + opacity animation is driven by motion-v inside
14
+ * AccordionContent.vue, keyed off Reka's per-item `open` state (synchronous
15
+ * Vue reactivity — no MutationObserver, no CSS-var race). motion-v honors
16
+ * prefers-reduced-motion natively, so no @media override is needed here. */
17
+ }
18
+
19
+ .accordion__body-inner {
20
+ @apply text-muted leading-relaxed;
21
+ }
22
+
23
+ .accordion__heading {
24
+ @apply flex;
25
+ }
26
+
27
+ .accordion__indicator {
28
+ @apply ml-auto shrink-0 text-muted;
29
+ display: inline-flex;
30
+ align-items: center;
31
+ justify-content: center;
32
+
33
+ /**
34
+ * Transitions — smoother rotate curve matches motion-v body animation
35
+ */
36
+ transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1),
37
+ color 200ms var(--ease-out);
38
+ @apply motion-reduce:transition-none;
39
+
40
+ /* Expanded state for indicator rotation + color lift */
41
+ &[data-state="open"] {
42
+ @apply -rotate-180 text-foreground;
43
+ }
44
+ }
45
+
46
+ /* Accordion Item - Separator styles */
47
+ .accordion__item {
48
+ @apply relative border-none;
49
+ }
50
+
51
+ .accordion__item::after {
52
+ content: "";
53
+ @apply absolute bottom-0 left-0 h-px w-full rounded-full bg-separator;
54
+ transition: opacity 200ms var(--ease-out);
55
+ }
56
+
57
+ .accordion__item:last-child::after {
58
+ content: none;
59
+ }
60
+
61
+ /* Fade separator out when adjacent item is open — cleaner look */
62
+ .accordion__item:has([data-slot="accordion-trigger"][aria-expanded="true"])::after {
63
+ @apply opacity-0;
64
+ }
65
+
66
+ /* Hide separator when hideSeparator prop is set */
67
+ .accordion__item[data-hide-separator="true"]::after {
68
+ display: none;
69
+ }
70
+ /* ------------------------------------ */
71
+
72
+ .accordion__trigger {
73
+ cursor: var(--cursor-interactive);
74
+
75
+ /* Base Styles — padding + text size are applied by size modifiers below */
76
+ @apply flex flex-1 items-center text-left font-medium no-highlight rounded-lg;
77
+
78
+ /**
79
+ * Transitions
80
+ * CRITICAL: motion-reduce must be AFTER transition for correct override specificity
81
+ */
82
+ transition:
83
+ background-color 200ms var(--ease-out),
84
+ color 200ms var(--ease-out),
85
+ opacity 300ms var(--ease-out),
86
+ box-shadow 300ms var(--ease-out),
87
+ transform 120ms var(--ease-out);
88
+ @apply motion-reduce:transition-none;
89
+
90
+ /* Hover state — subtle surface lift */
91
+ @media (hover: hover) {
92
+ &:hover {
93
+ background-color: color-mix(in oklab, var(--color-foreground) 4%, transparent);
94
+ }
95
+ }
96
+
97
+ /* Pressed state — tactile feedback */
98
+ &:active:not([aria-disabled="true"]),
99
+ &[data-pressed="true"] {
100
+ transform: scale(0.995);
101
+ background-color: color-mix(in oklab, var(--color-foreground) 7%, transparent);
102
+ }
103
+
104
+ &[aria-expanded="true"] {
105
+ @apply text-foreground;
106
+ }
107
+
108
+ &[aria-expanded="true"] .accordion__indicator {
109
+ @apply -rotate-180;
110
+ }
111
+
112
+ /* Focus state */
113
+ &:focus-visible:not(:focus),
114
+ &[data-focus-visible="true"] {
115
+ @apply status-focused;
116
+ }
117
+
118
+ /* Disabled State */
119
+ &:disabled,
120
+ &[aria-disabled="true"] {
121
+ @apply status-disabled;
122
+ }
123
+ }
124
+
125
+ /* Surface variant */
126
+ .accordion--surface {
127
+ @apply rounded-3xl bg-surface ring-1 ring-separator overflow-hidden isolate;
128
+
129
+ .accordion__item::after {
130
+ @apply bg-surface-foreground/6;
131
+ }
132
+ }
133
+
134
+ .accordion--surface .accordion__item {
135
+ /* Surface variant separator styling */
136
+ &::after {
137
+ @apply left-[3%] w-[94%];
138
+ }
139
+
140
+ /* Non-rounded triggers inside surface (corners handled by container) */
141
+ [data-slot="accordion-trigger"] {
142
+ @apply rounded-none;
143
+ }
144
+
145
+ /* Special rounding for first and last items in surface variant */
146
+ &:first-child [data-slot="accordion-trigger"] {
147
+ @apply rounded-t-3xl;
148
+ }
149
+
150
+ &:last-child:not(:has([data-slot="accordion-trigger"][aria-expanded="true"]))
151
+ [data-slot="accordion-trigger"] {
152
+ @apply rounded-b-3xl;
153
+ }
154
+
155
+ /* Slightly deeper hover inside the surface container */
156
+ @media (hover: hover) {
157
+ [data-slot="accordion-trigger"]:hover {
158
+ background-color: color-mix(in oklab, var(--color-foreground) 5%, transparent);
159
+ }
160
+ }
161
+ }
162
+
163
+ /* ============================================================
164
+ * Size modifiers
165
+ * Each size sets trigger padding + text size, body-inner spacing,
166
+ * and indicator dimensions. The indicator size doubles as the
167
+ * sizing box for any custom icon slotted into it.
168
+ * ============================================================ */
169
+
170
+ /* ---- sm (compact) ---- */
171
+ .accordion--sm .accordion__trigger {
172
+ @apply px-3 py-2 text-xs;
173
+ }
174
+ .accordion--sm .accordion__body-inner {
175
+ @apply px-3 pt-0.5 pb-3 text-xs;
176
+ }
177
+ .accordion--sm .accordion__indicator {
178
+ @apply size-3.5;
179
+ }
180
+
181
+ /* ---- md (default) ---- */
182
+ .accordion--md .accordion__trigger {
183
+ @apply px-4 py-3.5 text-sm;
184
+ }
185
+ .accordion--md .accordion__body-inner {
186
+ @apply px-5 pt-1 pb-5 text-sm;
187
+ }
188
+ .accordion--md .accordion__indicator {
189
+ @apply size-4;
190
+ }
191
+
192
+ /* ---- lg ---- */
193
+ .accordion--lg .accordion__trigger {
194
+ @apply px-5 py-4 text-base;
195
+ }
196
+ .accordion--lg .accordion__body-inner {
197
+ @apply px-6 pt-1.5 pb-6 text-sm;
198
+ }
199
+ .accordion--lg .accordion__indicator {
200
+ @apply size-5;
201
+ }