mcpField
R
reka-ui

reka-ui

github.com/onmax开发7237.4k 次安装今天更新
代码仓库

关于 reka-ui

面向 Vue 3 开发者的无样式、符合 WAI-ARIA 的组件原语指南,涵盖表单、对话框和菜单等组件。该 skill 提供按需查阅的组件索引与实现要点。

主要功能

  1. 01无样式 Vue 3 组件原语
  2. 02符合 WAI-ARIA
  3. 03按类别查找组件
  4. 04组件级参考文档
  5. 05受控与非受控状态指南

适用场景

  1. 01从头构建无头组件
  2. 02实现可访问的表单与对话框
  3. 03查找菜单或弹出层组件
  4. 04为大型列表应用虚拟滚动

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/onmax/nuxt-skills --skill reka-ui

安装后在 Claude Code 中输入/reka-ui确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

components.md
agents/
openai.yaml
components/
accordion.md
alert-dialog.md
aspect-ratio.md
avatar.md
calendar.md
checkbox.md
collapsible.md
combobox.md
config-provider.md
context-menu.md
date-field.md
date-picker.md
date-range-field.md
date-range-picker.md
dialog.md
dropdown-menu.md
editable.md
field.md
focus-scope.md
hover-card.md
label.md
listbox.md
menubar.md
navigation-menu.md
number-field.md
pagination.md
pin-input.md
popover.md

详细介绍

Reka UI

无样式、可访问的 Vue 3 组件原语。符合 WAI-ARIA 标准。此前名为 Radix Vue。

当前版本: v2.11.0(2026 年 10 月)

适用场景

  • 从头构建无头/无样式组件
  • 需要符合 WAI-ARIA 标准的组件
  • 使用 Nuxt UI、shadcn-vue 或其他基于 Reka 的库
  • 实现可访问的表单、对话框、菜单、弹出框

Vue 模式: 使用 vue 技能

可用指南

文件主题
references/components.md按类别编排的组件索引(表单、日期、浮层、菜单、数据等)
components/*.md各组件详情(dialog.md、select.md 等)

指南(参见 reka-ui.com):样式、动画、组合、SSR、命名空间、日期、i18n、受控状态、注入上下文、虚拟化、迁移

加载文件

请根据任务考虑加载以下参考文件:

请勿一次性加载所有文件。 只加载与当前任务相关的文件。

对于基于 Reka UI 构建的带样式 Nuxt 组件: 使用 nuxt-ui 技能

核心概念

概念描述
asChild渲染为子元素而非包装元素,并合并属性/行为
受控/非受控受控状态使用 v-model,非受控状态使用 default* 属性
部件组件由 Root、Trigger、Content、Portal 等部分组成
forceMount将元素保留在 DOM 中,以供动画库使用
虚拟化使用虚拟滚动优化大型列表(Combobox、Listbox、Tree)
上下文注入从子组件访问组件上下文

安装

// 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()] })
  ]
})

基本模式


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

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

<DialogTrigger as-child>
  <button class="my-custom-button">Open</button>
</DialogTrigger>

最近更新(v2.6.0-v2.10.5)

  • 新增组件:支持滑动手势的 Drawer(v2.10.0)、Autocomplete、TimeRangeField、Color 组件(ColorArea 等)、MonthPicker/YearPicker(v2.9.0)
  • DropdownMenu:筛选组件(v2.9.0)
  • Checkbox/Switch:自定义 true/false 值(v2.9.0)
  • Splitter:像素尺寸和约束(v2.9.0)
  • Tooltip:全局内容配置(v2.9.0)
  • ConfigProvider:全局传送目标 teleportTo(v2.10.0)
  • Dialog:unmountOnHide 属性(v2.10.0)
  • HoverCard:enableTouch 属性(v2.10.0)
  • Select:nullableValue 属性(v2.10.0)
  • Popper:用于 RTL/LTR 的 dir 属性(v2.10.0)
  • DateField:stepSnapping(v2.10.0)
  • TreeItem:disabled 属性;Tabs:--reka-tabs-indicator-thickness CSS 变量(v2.10.0)
  • Rating:已公开并编写文档(v2.10.0)
  • 新增组件:Rating(v2.8.0)
  • ScrollArea:新增“glimpse”滚动条模式(v2.8.0)
  • PopperContent:新增 hideShiftedArrow 属性(v2.8.0)
  • TimeField:新增 stepSnapping 支持(v2.8.0)
  • 破坏性变更:weekStartsOn 现在与日期组件的区域设置无关(v2.8.0)
  • 虚拟化:Listbox/Tree 的 estimateSize 支持函数(v2.7.0)
  • 组合式函数:公开 useLocale、useDirection(v2.6.0)
  • Select:Content 新增 disableOutsidePointerEvents 属性(v2.7.0)
  • Toast:disableSwipe 属性(v2.6.0)

Resources


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

评论

支持 Markdown