radix-ui-design-system — скилл для Claude Code: что делает
Скилл помогает создавать дизайн-системы и доступные интерфейсные компоненты на базе примитивов Radix UI без готовых стилей.
npx skills add sickn33/agentic-awesome-skills --skill radix-ui-design-system -a claude-codeЧто делает radix-ui-design-system
Скилл даёт шаблоны и правила для сборки компонентов на основе нестилизованных примитивов Radix UI. Он покрывает интерактивные элементы интерфейса: диалоговые окна, меню действий и выпадающие списки Select. В примерах используются составные компоненты, порталы и привязка к формам через react-hook-form или поисковой строке cmdk.
Для работы строго требуется React 16.8 или новее, потому что примитивы Radix опираются на хуки. Если проекту нужны готовые визуальные темы вроде shadcn/ui или Mantine, этот скилл будет лишним: он рассчитан только на ручную стилизацию через CSS-переменные или Tailwind. Это повод проверить стек до начала работы.
Какие задачи решает
- внедрить диалоговые окна и командные палитры через @radix-ui/react-dialog и cmdk
- настроить выпадающие списки @radix-ui/react-select с интеграцией в react-hook-form
- собрать меню действий с клавиатурной навигацией на @radix-ui/react-dropdown-menu
- реализовать требования доступности стандарта WCAG 2.1 AA/AAA
Примеры запросов агенту
- Собери командную палитру на базе @radix-ui/react-dialog и cmdk
- Напиши селект на @radix-ui/react-select с валидацией через react-hook-form
- Создай выпадающее меню действий на @radix-ui/react-dropdown-menu с иконками
Как установить radix-ui-design-system
1Через Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill radix-ui-design-system -a claude-code2Вручную: положить файлы
~/.claude/skills/radix-ui-design-system/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/radix-ui-design-system/
1Через Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill radix-ui-design-system -a codex2Вручную: положить файлы
.agents/skills/radix-ui-design-system/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill radix-ui-design-system -a cursor2Вручную: положить файлы
.cursor/skills/radix-ui-design-system/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install sickn33/agentic-awesome-skills radix-ui-design-system2Вручную: положить файлы
.github/skills/radix-ui-design-system/SKILL.md1Через Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill radix-ui-design-system -a gemini-cli2Командой платформы
gemini skills install https://github.com/sickn33/agentic-awesome-skills --path skills/radix-ui-design-systemВручную: положить файлы
.devin/skills/radix-ui-design-system/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add sickn33/agentic-awesome-skills --skill radix-ui-design-system -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора80
Весь набор →Похожие
Вопросы о radix-ui-design-system
Как установить radix-ui-design-system в Claude Code?
Выполните команду npx skills add sickn33/agentic-awesome-skills --skill radix-ui-design-system -a claude-code.
Что делает скилл radix-ui-design-system?
Он помогает генерировать дизайн-системы и сложные интерфейсные компоненты на базе нестилизованных примитивов Radix UI с соблюдением стандарта WCAG 2.1.
Какие требования к проекту нужны для работы со скиллом?
Проект должен использовать React версии 16.8 или новее из-за обязательной поддержки хуков. Для статичных страниц без интерактива или других фреймворков скилл не подходит.
Исходный текст
SKILL.md · MIT
---
name: radix-ui-design-system
description: "Build accessible design systems with Radix UI primitives. Headless component customization, theming strategies, and compound component patterns for production-grade UI libraries."
risk: safe
source: self
date_added: "2026-02-27"
---
# Radix UI Design System
Build production-ready, accessible design systems using Radix UI primitives with full customization control and zero style opinions.
## Detailed Guide
Read [the detailed guide](references/detailed-guide.md) before executing this skill. It retains the complete procedure and reference material. Treat its safety, prerequisites, and validation requirements as mandatory. For focused work, load the relevant sections; for end-to-end work, read the guide completely.
## When to Use This Skill
- Creating a custom design system from scratch
- Building accessible UI component libraries
- Implementing complex interactive components (Dialog, Dropdown, Tabs, etc.)
- Migrating from styled component libraries to unstyled primitives
- Setting up theming systems with CSS variables or Tailwind
- Need full control over component behavior and styling
- Building applications requiring WCAG 2.1 AA/AAA compliance
## Do not use this skill when
- You need pre-styled components out of the box (use shadcn/ui, Mantine, etc.)
- Building simple static pages without interactivity
- The project doesn't use React 16.8+ (Radix requires hooks)
- You need components for frameworks other than React
---
## Real-World Examples
### Example 1: Command Palette (Combo Dialog)
```tsx
import { useState, useEffect } from 'react';
import * as Dialog from '@radix-ui/react-dialog';
import { Command } from 'cmdk';
export function CommandPalette() {
const [open, setOpen] = useState(false);
useEffect(() => {
const down = (e: KeyboardEvent) => {
if (e.key === 'k' && (e.metaKey || e.ctrlKey)) {
e.preventDefault();
setOpen((open) => !open);
}
};
document.addEventListener('keydown', down);
return () => document.removeEventListener('keydown', down);
}, []);
return (
<Dialog.Root open={open} onOpenChange={setOpen}>
<Dialog.Portal>
<Dialog.Overlay className="fixed inset-0 bg-black/50" />
<Dialog.Content className="fixed left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2">
<Dialog.Title>Commands</Dialog.Title>
<Dialog.Description>Search available actions.</Dialog.Description>
<Command>
<Command.Input placeholder="Type a command..." />
<Command.List>
<Command.Empty>No results found.</Command.Empty>
<Command.Group heading="Suggestions">
<Command.Item>Calendar</Command.Item>
<Command.Item>Search Emoji</Command.Item>
</Command.Group>
</Command.List>
</Command>
</Dialog.Content>
</Dialog.Portal>
</Dialog.Root>
);
}
```
### Example 2: Dropdown Menu with Icons
```tsx
import * as DropdownMenu from '@radix-ui/react-dropdown-menu';
import { DotsHorizontalIcon } from '@radix-ui/react-icons';
export function ActionsMenu() {
return (
<DropdownMenu.Root>
<DropdownMenu.Trigger asChild>
<button className="icon-button" aria-label="Actions">
<DotsHorizontalIcon />
</button>
</DropdownMenu.Trigger>
<DropdownMenu.Portal>
<DropdownMenu.Content className="dropdown-content" align="end">
<DropdownMenu.Item className="dropdown-item">
Edit
</DropdownMenu.Item>
<DropdownMenu.Item className="dropdown-item">
Duplicate
</DropdownMenu.Item>
<DropdownMenu.Separator className="dropdown-separator" />
<DropdownMenu.Item className="dropdown-item text-red-500">
Delete
</DropdownMenu.Item>
</DropdownMenu.Content>
</DropdownMenu.Portal>
</DropdownMenu.Root>
);
}
```
### Example 3: Form with Radix Select + React Hook Form
```tsx
import * as Select from '@radix-ui/react-select';
import { useForm, Controller } from 'react-hook-form';
interface FormData {
country: string;
}
export function CountryForm() {
const { control, handleSubmit } = useForm<FormData>();
return (
<form onSubmit={handleSubmit((data) => console.log(data))}>
<Controller
name="country"
control={control}
render={({ field }) => (
<Select.Root onValueChange={field.onChange} value={field.value}>
<Select.Trigger ref={field.ref} onBlur={field.onBlur} aria-label="Country" className="select-trigger">
<Select.Value placeholder="Select a country" />
<Select.Icon />
</Select.Trigger>
<Select.Portal>
<Select.Content className="select-content">
<Select.Viewport>
<Select.Item value="us"><Select.ItemText>United States</Select.ItemText></Select.Item>
<Select.Item value="ca"><Select.ItemText>Canada</Select.ItemText></Select.Item>
<Select.Item value="uk"><Select.ItemText>United Kingdom</Select.ItemText></Select.Item>
</Select.Viewport>
</Select.Content>
</Select.Portal>
</Select.Root>
)}
/>
<button type="submit">Submit</button>
</form>
);
}
```
---
## Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.
© sickn33 · MIT · sickn33/agentic-awesome-skills