Back to list
newpush

reka-ui

by newpush

Your open source AI coach and unified fitness dashboard.

24🍴 2📅 Jan 23, 2026

SKILL.md


name: reka-ui description: 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. license: MIT

Reka UI

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

Current version: v2.7.0 (December 2025)

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.)

New guides (see reka-ui.com): Controlled State, Inject Context, Virtualization, Migration

Usage Pattern

Load based on context:

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.5.0-v2.7.0)

  • New composables exposed: useLocale, useDirection (v2.6.0)
  • Select: Added disableOutsidePointerEvents prop to Content
  • Toast: Added disableSwipe prop for swipe control
  • DatePicker: Added closeOnSelect property
  • ContextMenu: Added pressOpenDelay for long-press configuration
  • Virtualization: estimateSize now accepts function for Listbox/Tree (v2.7.0); supported in Combobox, Listbox, Tree

Resources


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

Score

Total Score

55/100

Based on repository quality metrics

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

1ヶ月以内に更新

+10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

+5

Reviews

💬

Reviews coming soon