@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.
- package/DATA_ATTRIBUTES.md +163 -0
- package/LICENSE +21 -0
- package/README.md +54 -0
- package/base/base.css +40 -0
- package/components/accordion.css +201 -0
- package/components/alert-dialog.css +307 -0
- package/components/alert.css +143 -0
- package/components/aspect-ratio.css +8 -0
- package/components/autocomplete.css +685 -0
- package/components/avatar.css +78 -0
- package/components/badge.css +186 -0
- package/components/breadcrumbs.css +76 -0
- package/components/button-group.css +126 -0
- package/components/button.css +282 -0
- package/components/calendar-year-picker.css +193 -0
- package/components/calendar.css +332 -0
- package/components/card.css +225 -0
- package/components/checkbox-group.css +7 -0
- package/components/checkbox.css +268 -0
- package/components/chip.css +227 -0
- package/components/close-button.css +65 -0
- package/components/collapsible-group.css +7 -0
- package/components/collapsible.css +74 -0
- package/components/color-area.css +81 -0
- package/components/color-field.css +99 -0
- package/components/color-input-group.css +153 -0
- package/components/color-picker.css +121 -0
- package/components/color-slider.css +266 -0
- package/components/color-swatch-picker.css +247 -0
- package/components/color-swatch.css +42 -0
- package/components/combo-box.css +203 -0
- package/components/date-input-group.css +125 -0
- package/components/date-input.css +529 -0
- package/components/date-picker.css +86 -0
- package/components/date-range-field.css +538 -0
- package/components/date-range-picker.css +93 -0
- package/components/description.css +4 -0
- package/components/drawer.css +222 -0
- package/components/dropdown.css +67 -0
- package/components/empty-state.css +4 -0
- package/components/error-message.css +13 -0
- package/components/field-error.css +19 -0
- package/components/fieldset.css +39 -0
- package/components/header.css +7 -0
- package/components/index.css +164 -0
- package/components/input-otp.css +124 -0
- package/components/input.css +603 -0
- package/components/kbd.css +27 -0
- package/components/label.css +28 -0
- package/components/link.css +144 -0
- package/components/list-box-item.css +29 -0
- package/components/list-box-section.css +13 -0
- package/components/list-box.css +11 -0
- package/components/menu-item.css +68 -0
- package/components/menu-section.css +18 -0
- package/components/menu.css +7 -0
- package/components/meter.css +104 -0
- package/components/modal.css +335 -0
- package/components/number-field.css +395 -0
- package/components/pagination.css +157 -0
- package/components/popover.css +96 -0
- package/components/progress-bar.css +126 -0
- package/components/progress-circle.css +82 -0
- package/components/radio-group.css +47 -0
- package/components/radio.css +157 -0
- package/components/range-calendar.css +402 -0
- package/components/scroll-area.css +70 -0
- package/components/scroll-shadow.css +77 -0
- package/components/select.css +649 -0
- package/components/separator.css +59 -0
- package/components/skeleton.css +48 -0
- package/components/slider.css +155 -0
- package/components/spinner.css +42 -0
- package/components/splitter.css +74 -0
- package/components/stepper.css +160 -0
- package/components/surface.css +23 -0
- package/components/switch-group.css +17 -0
- package/components/switch.css +194 -0
- package/components/table.css +341 -0
- package/components/tabs.css +262 -0
- package/components/tag-group.css +66 -0
- package/components/tag.css +99 -0
- package/components/textarea.css +536 -0
- package/components/time-field.css +530 -0
- package/components/toast.css +267 -0
- package/components/toggle-button-group.css +174 -0
- package/components/toggle-button.css +149 -0
- package/components/toolbar.css +32 -0
- package/components/tooltip.css +47 -0
- package/components/tree.css +81 -0
- package/index.css +29 -0
- package/package.json +415 -0
- package/src/components/accordion/accordion.styles.ts +46 -0
- package/src/components/accordion/index.ts +1 -0
- package/src/components/alert/alert.styles.ts +37 -0
- package/src/components/alert/index.ts +1 -0
- package/src/components/alert-dialog/alert-dialog.styles.ts +72 -0
- package/src/components/alert-dialog/index.ts +1 -0
- package/src/components/aspect-ratio/aspect-ratio.styles.ts +10 -0
- package/src/components/aspect-ratio/index.ts +1 -0
- package/src/components/autocomplete/autocomplete.styles.ts +86 -0
- package/src/components/autocomplete/index.ts +1 -0
- package/src/components/avatar/avatar.styles.ts +53 -0
- package/src/components/avatar/index.ts +1 -0
- package/src/components/badge/badge.styles.ts +77 -0
- package/src/components/badge/index.ts +1 -0
- package/src/components/breadcrumbs/breadcrumbs.styles.ts +14 -0
- package/src/components/breadcrumbs/index.ts +1 -0
- package/src/components/button/__tests__/button.styles.test.ts +79 -0
- package/src/components/button/button.styles.ts +65 -0
- package/src/components/button/index.ts +1 -0
- package/src/components/button-group/button-group.styles.ts +32 -0
- package/src/components/button-group/index.ts +1 -0
- package/src/components/calendar/calendar.styles.ts +60 -0
- package/src/components/calendar/index.ts +1 -0
- package/src/components/calendar-year-picker/calendar-year-picker.styles.ts +15 -0
- package/src/components/calendar-year-picker/index.ts +1 -0
- package/src/components/card/card.styles.ts +65 -0
- package/src/components/card/index.ts +1 -0
- package/src/components/checkbox/checkbox.styles.ts +27 -0
- package/src/components/checkbox/index.ts +1 -0
- package/src/components/checkbox-group/checkbox-group.styles.ts +18 -0
- package/src/components/checkbox-group/index.ts +1 -0
- package/src/components/chip/chip.styles.ts +65 -0
- package/src/components/chip/index.ts +1 -0
- package/src/components/close-button/close-button.styles.ts +17 -0
- package/src/components/close-button/index.ts +1 -0
- package/src/components/collapsible/collapsible.styles.ts +25 -0
- package/src/components/collapsible/index.ts +1 -0
- package/src/components/collapsible-group/collapsible-group.styles.ts +13 -0
- package/src/components/collapsible-group/index.ts +1 -0
- package/src/components/color-area/color-area.styles.ts +23 -0
- package/src/components/color-area/index.ts +1 -0
- package/src/components/color-field/color-field.styles.ts +18 -0
- package/src/components/color-field/index.ts +1 -0
- package/src/components/color-input-group/color-input-group.styles.ts +34 -0
- package/src/components/color-input-group/index.ts +1 -0
- package/src/components/color-picker/color-picker.styles.ts +13 -0
- package/src/components/color-picker/index.ts +1 -0
- package/src/components/color-slider/color-slider.styles.ts +14 -0
- package/src/components/color-slider/index.ts +1 -0
- package/src/components/color-swatch/color-swatch.styles.ts +26 -0
- package/src/components/color-swatch/index.ts +1 -0
- package/src/components/color-swatch-picker/color-swatch-picker.styles.ts +54 -0
- package/src/components/color-swatch-picker/index.ts +1 -0
- package/src/components/combo-box/combo-box.styles.ts +26 -0
- package/src/components/combo-box/index.ts +1 -0
- package/src/components/date-input/date-input.styles.ts +86 -0
- package/src/components/date-input/index.ts +1 -0
- package/src/components/date-picker/date-picker.styles.ts +14 -0
- package/src/components/date-picker/index.ts +1 -0
- package/src/components/date-range-field/date-range-field.styles.ts +87 -0
- package/src/components/date-range-field/index.ts +1 -0
- package/src/components/date-range-picker/date-range-picker.styles.ts +14 -0
- package/src/components/date-range-picker/index.ts +1 -0
- package/src/components/description/description.styles.ts +9 -0
- package/src/components/description/index.ts +1 -0
- package/src/components/drawer/drawer.styles.ts +55 -0
- package/src/components/drawer/index.ts +1 -0
- package/src/components/dropdown/dropdown.styles.ts +14 -0
- package/src/components/dropdown/index.ts +1 -0
- package/src/components/empty-state/empty-state.styles.ts +9 -0
- package/src/components/empty-state/index.ts +1 -0
- package/src/components/error-message/error-message.styles.ts +9 -0
- package/src/components/error-message/index.ts +1 -0
- package/src/components/fieldset/fieldset.styles.ts +29 -0
- package/src/components/fieldset/index.ts +1 -0
- package/src/components/header/header.styles.ts +5 -0
- package/src/components/header/index.ts +1 -0
- package/src/components/index.ts +84 -0
- package/src/components/input/index.ts +1 -0
- package/src/components/input/input.styles.ts +87 -0
- package/src/components/input-otp/index.ts +1 -0
- package/src/components/input-otp/input-otp.styles.ts +30 -0
- package/src/components/kbd/index.ts +1 -0
- package/src/components/kbd/kbd.styles.ts +20 -0
- package/src/components/label/index.ts +1 -0
- package/src/components/label/label.styles.ts +25 -0
- package/src/components/link/index.ts +1 -0
- package/src/components/link/link.styles.ts +38 -0
- package/src/components/list-box/index.ts +1 -0
- package/src/components/list-box/list-box.styles.ts +18 -0
- package/src/components/list-box-item/index.ts +1 -0
- package/src/components/list-box-item/list-box-item.styles.ts +25 -0
- package/src/components/list-box-section/index.ts +1 -0
- package/src/components/list-box-section/list-box-section.styles.ts +13 -0
- package/src/components/menu/index.ts +1 -0
- package/src/components/menu/menu.styles.ts +9 -0
- package/src/components/menu-item/index.ts +1 -0
- package/src/components/menu-item/menu-item.styles.ts +26 -0
- package/src/components/menu-section/index.ts +1 -0
- package/src/components/menu-section/menu-section.styles.ts +14 -0
- package/src/components/meter/index.ts +1 -0
- package/src/components/meter/meter.styles.ts +48 -0
- package/src/components/modal/index.ts +1 -0
- package/src/components/modal/modal.styles.ts +70 -0
- package/src/components/number-field/index.ts +1 -0
- package/src/components/number-field/number-field.styles.ts +80 -0
- package/src/components/pagination/index.ts +1 -0
- package/src/components/pagination/pagination.styles.ts +32 -0
- package/src/components/popover/index.ts +1 -0
- package/src/components/popover/popover.styles.ts +14 -0
- package/src/components/progress-bar/index.ts +1 -0
- package/src/components/progress-bar/progress-bar.styles.ts +97 -0
- package/src/components/progress-circle/index.ts +1 -0
- package/src/components/progress-circle/progress-circle.styles.ts +74 -0
- package/src/components/radio/index.ts +1 -0
- package/src/components/radio/radio.styles.ts +14 -0
- package/src/components/radio-group/index.ts +1 -0
- package/src/components/radio-group/radio-group.styles.ts +18 -0
- package/src/components/range-calendar/index.ts +1 -0
- package/src/components/range-calendar/range-calendar.styles.ts +60 -0
- package/src/components/scroll-shadow/index.ts +1 -0
- package/src/components/scroll-shadow/scroll-shadow.styles.ts +37 -0
- package/src/components/select/index.ts +1 -0
- package/src/components/select/select.styles.ts +86 -0
- package/src/components/separator/index.ts +1 -0
- package/src/components/separator/separator.styles.ts +25 -0
- package/src/components/skeleton/index.ts +1 -0
- package/src/components/skeleton/skeleton.styles.ts +21 -0
- package/src/components/slider/index.ts +1 -0
- package/src/components/slider/slider.styles.ts +40 -0
- package/src/components/spinner/index.ts +1 -0
- package/src/components/spinner/spinner.styles.ts +28 -0
- package/src/components/splitter/index.ts +1 -0
- package/src/components/splitter/splitter.styles.ts +28 -0
- package/src/components/stepper/index.ts +1 -0
- package/src/components/stepper/stepper.styles.ts +57 -0
- package/src/components/surface/index.ts +1 -0
- package/src/components/surface/surface.styles.ts +20 -0
- package/src/components/switch/index.ts +1 -0
- package/src/components/switch/switch.styles.ts +31 -0
- package/src/components/switch-group/index.ts +1 -0
- package/src/components/switch-group/switch-group.styles.ts +25 -0
- package/src/components/table/index.ts +1 -0
- package/src/components/table/table.styles.ts +47 -0
- package/src/components/tabs/index.ts +1 -0
- package/src/components/tabs/tabs.styles.ts +31 -0
- package/src/components/tag/index.ts +1 -0
- package/src/components/tag/tag.styles.ts +37 -0
- package/src/components/tag-group/index.ts +1 -0
- package/src/components/tag-group/tag-group.styles.ts +12 -0
- package/src/components/text/index.ts +1 -0
- package/src/components/text/text.styles.ts +29 -0
- package/src/components/textarea/index.ts +1 -0
- package/src/components/textarea/textarea.styles.ts +86 -0
- package/src/components/time-field/index.ts +1 -0
- package/src/components/time-field/time-field.styles.ts +86 -0
- package/src/components/toast/index.ts +1 -0
- package/src/components/toast/toast.styles.ts +67 -0
- package/src/components/toggle-button/index.ts +1 -0
- package/src/components/toggle-button/toggle-button.styles.ts +28 -0
- package/src/components/toggle-button-group/index.ts +1 -0
- package/src/components/toggle-button-group/toggle-button-group.styles.ts +39 -0
- package/src/components/toolbar/index.ts +1 -0
- package/src/components/toolbar/toolbar.styles.ts +23 -0
- package/src/components/tooltip/index.ts +1 -0
- package/src/components/tooltip/tooltip.styles.ts +12 -0
- package/src/components/tree/index.ts +1 -0
- package/src/components/tree/tree.styles.ts +33 -0
- package/src/index.ts +5 -0
- package/src/utils/index.ts +15 -0
- package/themes/default/components/index.css +6 -0
- package/themes/default/index.css +8 -0
- package/themes/default/variables.css +168 -0
- package/themes/shared/theme.css +196 -0
- package/utilities/index.css +244 -0
- 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
|
+
}
|