К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot

reka-ui — скилл для Claude Code: компоненты Vue с доступностью

Скилл для работы с Reka UI — библиотекой unstyled компонентов Vue 3 с полной поддержкой доступности. Пригодится, если вы собираете интерфейсы с нуля или используете Nuxt UI и shadcn-vue.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add onmax/nuxt-skills --skill reka-ui -a claude-code
Открыть на GitHub

Что делает reka-ui

Reka UI предоставляет готовые примитивы для форм, диалогов, меню, выпадающих списков и других элементов — все WAI-ARIA compliant, без встроенных стилей. Компоненты разбиты на части (Root, Trigger, Content, Portal), которые вы собираете как конструктор. Поддерживает контролируемое и неконтролируемое состояние через v-model и default* пропсы, композицию с asChild, виртуализацию для больших списков и injection контекста.

В скилле есть индекс компонентов по категориям (Form, Date, Overlay, Menu, Data и др.) и подробное описание каждого. Недавние обновления добавили Drawer со свайп-жестами, Autocomplete, цветовые компоненты (ColorArea), DateField и TimeField с интеллектуальным вводом, а также TreeItem и Rating. Все компоненты работают с SSR и поддерживают RTL.

Скилл загружает только нужные вам файлы — ищет по названию компонента или категории, не вставляет весь справочник сразу. Если вы уже работаете с Nuxt UI или shadcn-vue, это то же самое под капотом, только без готовых стилей.

Какие задачи решает

  • собрать доступный диалог, форму или модальное окно с нуля
  • интегрировать unstyled компоненты в собственный дизайн-систему
  • реализовать виртуализацию для комбобокса с тысячами вариантов
  • настроить контролируемое состояние для select или date picker
  • использовать асинхронные данные в выпадающих списках

Примеры запросов агенту

  • Помоги мне собрать Dialog из Reka UI с формой внутри
  • Как сделать Select с поддержкой поиска, используя Reka UI?
  • Объясни, как работает `asChild` в Reka UI и когда его использовать

Как установить reka-ui

1Через Skills CLI (Vercel)

npx skills add onmax/nuxt-skills --skill reka-ui -a claude-code

2Вручную: положить файлы

~/.claude/skills/reka-ui/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/reka-ui/

Похожие

top-design wondelai Скилл направляет агента на создание веб-интерфейсов уровня Awwwards с акцентной типографикой, выверенной анимацией и оценкой макета по десятибалльной шкале. Claude Code CX Codex Cursor +1 7 100установок develop jsmastery-pro Скилл превращает готовую спецификацию и правила AGENTS.md в код интерфейса или бэкенда. Пригодится, когда архитектура согласована и нужно писать код без самодеятельности агента. Claude Code CX Codex Cursor +1 4 400установок router-core TanStack Скилл-навигатор по TanStack Router: разводит задачу по подскиллам и напоминает про вывод типов и клиентские лоадеры, на которых агенты ломаются. Claude Code CX Codex Cursor +1 587установок migrate-nativewind-to-uniwind uni-stack Скилл автоматизирует переход React Native проекта с NativeWind на Uniwind. Он обновляет конфиг, удаляет старые пакеты, перестраивает CSS и обрабатывает все breaking changes. Claude Code CX Codex Cursor +1 2 000установок react-router TanStack Скилл для агента по @tanstack/react-router: справочник хуков и компонентов плюс сборка файлового роутинга на Vite от установки до routeTree.gen. Claude Code CX Codex Cursor +1 546установок wpds WordPress Скилл подтягивает документацию WordPress Design System через MCP-сервер, чтобы агент собирал интерфейс на настоящих компонентах и токенах, а не по памяти. Claude Code CX Codex Cursor +1 4 000установок frontend-design официальный anthropics Скилл задаёт осмысленное визуальное направление для новых интерфейсов и редизайна. Подойдёт, когда стандартный шаблонный UI не устраивает. Claude Code Claude.ai 1 025 790установок design-taste-frontend Leonxlnx Скилл задаёт арт-дирекцию для публичных страниц и рабочих экранов, а затем проверяет результат в браузере по скриншотам. Нужен, когда интерфейс выглядит шаблонным или недоработанным. Claude Code CX Codex Cursor +1 673 100установок

Вопросы о reka-ui

Как установить reka-ui скилл в Claude Code?

Запустите npx skills add onmax/nuxt-skills --skill reka-ui -a claude-code, затем откройте ~/.claude/skills/reka-ui/SKILL.md. Скилл автоматически загрузит справку, когда вы спросите про компоненты Reka UI.

Что такое Reka UI и чем она отличается от Nuxt UI?

Reka UI — это unstyled компоненты-примитивы с доступностью (раньше называлась Radix Vue). Nuxt UI и shadcn-vue строятся на Reka UI, но добавляют готовые стили и варианты оформления. Если вы хотите собрать свою дизайн-систему, берите Reka UI; если нужны готовые компоненты, берите Nuxt UI.

Есть ли в Reka UI компоненты для работы с датами?

Да, есть DateField, DatePicker, DateRangeField, TimeField, TimeRangeField, а также MonthPicker и YearPicker (добавлены в v2.9.0). Все поддерживают локализацию и управление шагом ввода.

Исходный текст

SKILL.md · MIT
---
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.11.0 (October 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

| File                                                     | Topics                                                              |
| -------------------------------------------------------- | ------------------------------------------------------------------- |
| **[references/components.md](references/components.md)** | Component index by category (Form, Date, Overlay, Menu, Data, etc.) |
| **components/\*.md**                                     | Per-component details (dialog.md, select.md, etc.)                  |

**Guides** (see [reka-ui.com](https://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:**

- [ ] [references/components.md](references/components.md) - if browsing component index by category or searching for specific components

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

| Concept                 | Description                                                           |
| ----------------------- | --------------------------------------------------------------------- |
| `asChild`               | Render as child element instead of wrapper, merging props/behavior    |
| Controlled/Uncontrolled | Use `v-model` for controlled, `default*` props for uncontrolled       |
| Parts                   | Components split into Root, Trigger, Content, Portal, etc.            |
| `forceMount`            | Keep element in DOM for animation libraries                           |
| Virtualization          | Optimize large lists (Combobox, Listbox, Tree) with virtual scrolling |
| Context Injection       | Access component context from child components                        |

## Installation

```ts
// nuxt.config.ts (auto-imports all components)
export default defineNuxtConfig({
  modules: ['reka-ui/nuxt']
})
```

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

```vue
<!-- 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>
```

```vue
<!-- 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>
```

```vue
<!-- asChild for custom trigger element -->
<DialogTrigger as-child>
  <button class="my-custom-button">Open</button>
</DialogTrigger>
```

## Recent Updates (v2.6.0-v2.10.5)

- **New components**: Drawer with swipe gestures (v2.10.0), Autocomplete, TimeRangeField, Color components (ColorArea etc.), MonthPicker/YearPicker (v2.9.0)
- **DropdownMenu**: filter component (v2.9.0)
- **Checkbox/Switch**: custom true/false values (v2.9.0)
- **Splitter**: pixel sizing and constraints (v2.9.0)
- **Tooltip**: global content configuration (v2.9.0)
- **ConfigProvider**: `teleportTo` global teleport target (v2.10.0)
- **Dialog**: `unmountOnHide` prop (v2.10.0)
- **HoverCard**: `enableTouch` prop (v2.10.0)
- **Select**: `nullableValue` prop (v2.10.0)
- **Popper**: `dir` prop for RTL/LTR (v2.10.0)
- **DateField**: `stepSnapping` (v2.10.0)
- **TreeItem**: `disabled` prop; **Tabs**: `--reka-tabs-indicator-thickness` CSS var (v2.10.0)
- **Rating**: exposed and documented (v2.10.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

- [Reka UI Docs](https://reka-ui.com)
- [GitHub](https://github.com/unovue/reka-ui)
- [Nuxt UI](https://ui.nuxt.com) (styled Reka components)
- [shadcn-vue](https://www.shadcn-vue.com) (styled Reka components)

---

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

© onmax · MIT · onmax/nuxt-skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой