Unstyled, accessibility-first Vue.js component library. Zero styles, WAI-ARIA compliant, keyboard navigation, and focus management built in.
Anatomy: Root → Trigger → Portal → Content. Import named parts from
. Namespaced:
import { Dialog } from 'reka-ui/namespaced'
→
,
, etc.
Styling: Target
,
,
,
,
. CSS:
.Item[data-state="open"] {}
. Tailwind:
data-[state=open]:border-b-2
. Teleported elements (portals) need
in scoped styles.
Animation: CSS keyframes on
(Reka suspends unmount during exit), Vue
, or Motion Vue (
) with
.
Nuxt:
modules: ['reka-ui/nuxt']
— auto-imports all components.
Dates: Install
.
on calendar/date components accepts
objects.
Virtualization:
components for large lists. Requires fixed-height parent,
,
props. Filter items manually before passing.
Read only the file relevant to the current task.
-
references/components-a-l.md — Anatomy, data attributes, CSS variables, and key notes for components Accordion through Listbox.
-
references/components-m-z.md — Anatomy, data attributes, CSS variables, and key notes for components Menubar through Tree.
-
references/guides.md — Styling, composition (asChild), animation, controlled state, dates, i18n/RTL, SSR, virtualization, namespaced imports, inject context, migration guide.
-
references/utilities.md — Primitive, Slot, ConfigProvider, VisuallyHidden, Presence, FocusScope, and composables (useForwardPropsEmits, useFilter, useDateFormatter, etc.).