Skip to content
cccskills
FreePublished on GitHub

reka-ui

Use when building with Reka UI (headless Vue components) - provides component API, accessibility patterns, composition (asChild), controlled/uncontrolled state, virtualization, and styling integration. Formerly Radix Vue.

The English summary is being prepared. Showing the original description.

See how to install

Files included (54)

  • SKILL.md5.2 KB
  • components.md5.0 KB
  • components/accordion.md1.5 KB
  • components/alert-dialog.md2.2 KB
  • components/aspect-ratio.md311 B
  • components/avatar.md798 B
  • components/calendar.md3.8 KB
  • components/checkbox.md887 B
  • components/collapsible.md875 B
  • components/combobox.md5.1 KB
  • components/config-provider.md311 B
  • components/context-menu.md5.7 KB
  • components/date-field.md1.4 KB
  • components/date-picker.md5.7 KB
  • components/date-range-field.md1.4 KB
  • components/date-range-picker.md5.3 KB
  • components/dialog.md2.1 KB
  • components/dropdown-menu.md6.0 KB
  • components/editable.md2.3 KB
  • components/focus-scope.md413 B
  • components/hover-card.md2.1 KB
  • components/label.md223 B
  • components/listbox.md2.9 KB
  • components/menubar.md6.0 KB
  • components/navigation-menu.md3.1 KB
  • components/number-field.md1.4 KB
  • components/pagination.md2.0 KB
  • components/pin-input.md1012 B
  • components/popover.md2.6 KB
  • components/presence.md62 B
  • components/primitive.md66 B
  • components/progress.md806 B
  • components/radio-group.md1.2 KB
  • components/range-calendar.md3.3 KB
  • components/rating.md2.9 KB
  • components/scroll-area.md1.2 KB
  • components/select.md4.3 KB
  • components/separator.md300 B
  • components/slider.md1.3 KB
  • components/splitter.md1.6 KB
  • components/stepper.md2.1 KB
  • components/switch.md756 B
  • components/tabs.md1.4 KB
  • components/tags-input.md2.1 KB
  • components/time-field.md85 B
  • components/toast.md2.3 KB
  • components/toggle-group.md1005 B
  • components/toggle.md471 B
  • components/toolbar.md1.7 KB
  • components/tooltip.md2.3 KB
  • components/tree.md2.1 KB
  • components/visually-hidden.md230 B
  • references/components.md6.9 KB
  • scripts/generate-components.ts16.7 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Reka UI

Unstyled, accessible Vue 3 component primitives. WAI-ARIA compliant. Previously Radix Vue.

Current version: v2.8.0 (January 2026)

When to Use

  • Building headless/unstyled components from scratch
  • Need WAI-ARIA compliant components
  • Using Nuxt UI, shadcn-vue, or other Reka-based libraries
  • Implementing accessible forms, dialogs, menus, popovers

For Vue patterns: use vue skill

Available Guidance

FileTopics
references/components.mdComponent index by category (Form, Date, Overlay, Menu, Data, etc.)
components/*.mdPer-component details (dialog.md, select.md, etc.)

Guides (see reka-ui.com): Styling, Animation, Composition, SSR, Namespaced, Dates, i18n, Controlled State, Inject Context, Virtualization, Migration

Loading Files

Consider loading these reference files based on your task:

DO NOT load all files at once. Load only what's relevant to your current task.

For styled Nuxt components built on Reka UI: use nuxt-ui skill

Key Concepts

ConceptDescription
asChildRender as child element instead of wrapper, merging props/behavior
Controlled/UncontrolledUse v-model for controlled, default* props for uncontrolled
PartsComponents split into Root, Trigger, Content, Portal, etc.
forceMountKeep element in DOM for animation libraries
VirtualizationOptimize large lists (Combobox, Listbox, Tree) with virtual scrolling
Context InjectionAccess component context from child components

Installation

// nuxt.config.ts (auto-imports all components)
export default defineNuxtConfig({
  modules: ['reka-ui/nuxt']
})
import { RekaResolver } from 'reka-ui/resolver'
// vite.config.ts (with auto-import resolver)
import Components from 'unplugin-vue-components/vite'

export default defineConfig({
  plugins: [
    vue(),
    Components({ resolvers: [RekaResolver()] })
  ]
})

Basic Patterns

<!-- Dialog with controlled state -->
<script setup>
import { DialogRoot, DialogTrigger, DialogPortal, DialogOverlay, DialogContent, DialogTitle, DialogDescription, DialogClose } from 'reka-ui'
const open = ref(false)
</script>

<template>
  <DialogRoot v-model:open="open">
    <DialogTrigger>Open</DialogTrigger>
    <DialogPortal>
      <DialogOverlay class="fixed inset-0 bg-black/50" />
      <DialogContent class="fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-6 rounded">
        <DialogTitle>Title</DialogTitle>
        <DialogDescription>Description</DialogDescription>
        <DialogClose>Close</DialogClose>
      </DialogContent>
    </DialogPortal>
  </DialogRoot>
</template>
<!-- Select with uncontrolled default -->
<SelectRoot default-value="apple">
  <SelectTrigger>
    <SelectValue placeholder="Pick fruit" />
  </SelectTrigger>
  <SelectPortal>
    <SelectContent>
      <SelectViewport>
        <SelectItem value="apple"><SelectItemText>Apple</SelectItemText></SelectItem>
        <SelectItem value="banana"><SelectItemText>Banana</SelectItemText></SelectItem>
      </SelectViewport>
    </SelectContent>
  </SelectPortal>
</SelectRoot>
<!-- asChild for custom trigger element -->
<DialogTrigger as-child>
  <button class="my-custom-button">Open</button>
</DialogTrigger>

Recent Updates (v2.6.0-v2.8.0)

  • New component: Rating (v2.8.0)
  • ScrollArea: Added "glimpse" scrollbar mode (v2.8.0)
  • PopperContent: Added hideShiftedArrow prop (v2.8.0)
  • TimeField: Added stepSnapping support (v2.8.0)
  • Breaking: weekStartsOn now locale-independent for date components (v2.8.0)
  • Virtualization: estimateSize accepts function for Listbox/Tree (v2.7.0)
  • Composables: useLocale, useDirection exposed (v2.6.0)
  • Select: disableOutsidePointerEvents prop on Content (v2.7.0)
  • Toast: disableSwipe prop (v2.6.0)

Resources


Token efficiency: ~350 tokens base, components.md index ~100 tokens, per-component ~50-150 tokens

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Add, update, or retire an AI provider model option for the BYOK theme generator (OpenAI, Anthropic, Google) and verify the provider requests native structured output for it. Use when model lists go stale or a new provider/model is requested.

The English summary is being prepared. Showing the original description.

mattycraig/nuxt-theme-builder9Updated Oct 19, 2026

Add a new interactive design tool under /tools (like the color converter or contrast checker) — component, page, navigation, route lists, SEO, and tests. Use when building a new utility tool.

The English summary is being prepared. Showing the original description.

mattycraig/nuxt-theme-builder9Updated Oct 19, 2026

Write and register a new Learning Hub article (Nuxt Content markdown under content/learn) with valid frontmatter, navigation entry, route list entry, and accurate product details. Use when adding or substantially rewriting a learn guide, reference, or tip.

The English summary is being prepared. Showing the original description.

mattycraig/nuxt-theme-builder9Updated Oct 19, 2026

Add a new component showcase, block, or template preview page and register it everywhere it must appear (navigation, command palette, route lists, SEO, source view). Use when adding anything under /components, /blocks, or /templates.

The English summary is being prepared. Showing the original description.

mattycraig/nuxt-theme-builder9Updated Oct 19, 2026

Checklist for adding or changing a field on ThemeConfig (a new design token, per-mode setting, or export option) end to end — schema, defaults, store + history, CSS apply, export, editor UI, AI, and tests. Use whenever ThemeConfig's shape changes.

The English summary is being prepared. Showing the original description.

mattycraig/nuxt-theme-builder9Updated Oct 19, 2026

Run the project's validation pipeline (lint → format → typecheck → unit tests) with auto-fixes, then optionally stage and write a Conventional Commit. Use before committing, when asked to "check", "validate", "run the workflow", or "get this commit-ready".

The English summary is being prepared. Showing the original description.

mattycraig/nuxt-theme-builder9Updated Oct 19, 2026

See all skills by mattycraig

Report a problem with this skill