- Accordion
- Alert
- Alert Dialog
- Autocomplete
- Auth Surface
- Avatar
- Badge
- Browse Catalog Dialog
- Button
- Card
- Checkbox
- Checkbox Group
- Collapsible
- Combobox
- Command
- Connector Setup Dialog
- Cookie Banner
- Dialog
- Directory Card
- Directory Detail
- Directory Skeleton
- DrawerНовое
- Token Parts Input
- Empty
- Field
- Fieldset
- File Preview Modal
- File Preview Skeleton
- Form
- Frame
- Group
- Icon
- Input
- Input Group
- Kbd
- Label
- Legal Shell
- Menu
- Mermaid Diagram
- Mind Map Diagram
- Not Found Screen
- Onboarding Frame
- Popover
- PDF Thumbnail
- Personalization Landing
- Preview Card
- Pricing Page
- Progress
- Radio Group
- Ring Spinner
- Scroll Area
- Select
- Separator
- Settings Page
- Settings Skills
- Settings Connectors
- Settings Capabilities
- Settings Usage
- Settings Account
- Settings Billing
- Sheet
- Sidebar
- Skeleton
- Skill Create Dialog
- Slider
- Spinner
- Stat
- Switch
- Table
- Tabs
- Textarea
- Toast
- Toggle
- Tooltip
- Компоненты AI
- Chat Conversation
- Chat Message
- Chat Response
- Chat Suggestion
- Chat Prompt Input
- Slash Highlighted Textarea
- Chat Search Dialog
- Chat Skill Doc
- Chat Connector Detail
- Chat Attachments
- Chat File Card
- Chat Token Chip
- Chat Code Block
- Chat Image
- Chat Inline Citation
- Chat Sources
- Chat Web Search
- Chat Research
- Chat Source
- Chat Actions
- Chat Context
- Chat Loader
- Chat Compaction
- Chat Timeline
- Chat Snippet
- Chat Terminal
- Chat Stack Trace
- Chat Test Results
- Chat File Tree
- Chat Environment Variables
- Chat Audio Player
- Chat Transcription
- Chat Speech Input
- Chat Mic Selector
- Chat Voice Selector
- Chat Agent
- Chat Persona
- Chat Connection
- Chat Connector Suggestion
- Chat Queue
- Chat Checkpoint
- Chat Confirmation
- Chat Artifact
- Chat JSX Preview
- Chat Schema Display
- Chat Package Info
- Chat Commit
- Chat Plan
- Chat Open In Chat
- Chat Sandbox
- Chat Model Selector
- Chat Canvas
- Chat Node
- Chat Edge
Начало работы
Краткое руководство по добавлению вашего первого компонента.
Это руководство содержит основные сведения о добавлении компонентов Oracul DS в ваше React-приложение.
Предварительные требования
Наши компоненты построены с использованием Tailwind CSS v4. Прежде чем начать, убедитесь, что в вашем React-проекте настроен Tailwind CSS.
Добавление компонентов
Вы можете добавлять компоненты автоматически с помощью shadcn CLI или вручную, копируя файлы. Оба метода подходят для примитивов, частиц и атомов.
С помощью CLI
На странице каждого компонента есть команда для его автоматического добавления в ваш проект. CLI создаст необходимые файлы и установит все нужные зависимости.
Настройка нового проекта (рекомендуется)
[!IMPORTANT] Порядок шагов важен. Команда
init @oracul/styleработает только если в проекте уже естьcomponents.jsonс описанным реестром@oracul. Иначе CLI выдастUnknown registry "@oracul". Поэтому сначала создаёмcomponents.json, потом запускаем установку черезadd.
Шаг 1. Создайте components.json в корне проекта со ссылкой на реестр @oracul:
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "default",
"rsc": true,
"tsx": true,
"tailwind": {
"baseColor": "neutral",
"css": "app/globals.css",
"cssVariables": true
},
"aliases": {
"components": "@/components",
"utils": "@/lib/utils",
"ui": "@/components/ui"
},
"registries": {
"@oracul": "https://ds.oracul.co/ui/r/{name}.json"
}
}Шаг 2. Установите всё одной командой (внизу можно переключиться между npm / pnpm / yarn / bun):
pnpm dlx shadcn@latest add @oracul/style
Эта команда установит все UI-компоненты, систему нейтральных цветов, переменные боковой панели (sidebar) и базовые стили. Она также добавит шрифты Inter (--font-sans, --font-heading) и Geist Mono (--font-mono), автоматически настроив их в вашем layout.tsx.
[!TIP] Перезапись файлов. Если CLI спрашивает «overwrite?» даже при флаге
--yes, используйте--force. Флаг--yesотвечает «да» на стандартные вопросы, но не подавляет промпт перезаписи существующих файлов — для этого нужен--force.
pnpm dlx shadcn@latest add @oracul/style --force
Альтернатива: init напрямую с URL пресета
Если в проекте ещё нет components.json, можно инициализировать всё одной командой, передав CLI полный URL пресета (а не короткий @oracul/style):
pnpm dlx shadcn@latest init https://ds.oracul.co/ui/r/style.json
CLI сам создаст components.json и подтянет реестр @oracul. После этого короткие команды (add @oracul/button) начнут работать.
Существующие проекты
Если у вас уже настроен components.json (см. шаг 1 выше), просто выполните:
pnpm dlx shadcn@latest add @oracul/ui
Это добавит все примитивы UI (Button, Card, Avatar, Dialog, Tabs и многое другое). Для установки полной темы, включая цвета, боковую панель и шрифты:
pnpm dlx shadcn@latest add @oracul/style
Или добавьте только цветовые токены:
pnpm dlx shadcn@latest add @oracul/ui @oracul/colors-neutral
Подробности можно найти в руководстве по Стилям.
Настройка реестра (детали components.json)
Чтобы короткие команды типа add @oracul/ui работали, файл components.json обязан содержать поле registries с реестром @oracul. Если вы только что создали проект, см. Шаг 1 выше — там уже валидный пример. Если правите существующий файл, добавьте секцию registries:
{
"registries": {
"@oracul": "https://ds.oracul.co/ui/r/{name}.json"
}
}Проверить конфигурацию можно командой:
bun run validate:componentsПодробнее — в Руководстве по components.json.
[!IMPORTANT]
- Используйте именно ключ
registries(во множественном числе).- URL должен заканчиваться на
/{name}.json.- Если вы используете Tailwind v4, поле
configв секцииtailwindдолжно быть удалено.
После этого вы сможете устанавливать любые компоненты, используя короткий префикс:
pnpm dlx shadcn@latest add @oracul/button
Вручную
- Найдите компонент на страницах Components или Particles.
- Скопируйте код из вкладки Code.
- Создайте новый файл в вашем проекте (например,
components/ui/button.tsx) и вставьте код. - Установите все зависимости, указанные на странице компонента.
- Импортируйте и используйте компонент в вашем приложении.
Стилизация
Компоненты стилизованы с использованием системы дизайн-токенов, которая определяется переменными CSS и реализуется с помощью Tailwind CSS.
Эти переменные аналогичны используемым в shadcn/ui и полностью настраиваемы. Вы можете изменить их в своем глобальном файле стилей (например, app/globals.css).
Мы ввели несколько дополнительных токенов для более тонкого контроля:
--destructive-foreground: Используется для кнопок удаления с контуром, пунктов меню удаления, бейджей и ошибок полей.--infoи--info-foreground: Для информационных бейджей, уведомлений (toast) и алертов.--successи--success-foreground: Для компонентов со статусом успеха.--warningи--warning-foreground: Для предупреждающих компонентов.
Важно: При ручном импорте компонентов вы должны также добавить эти токены в ваш CSS файл. При использовании CLI они будут настроены автоматически.
Шрифты
Компоненты Oracul DS используют три свойства CSS для типографики:
--font-sans— Основной текст, кнопки, метки и большинство элементов интерфейса.--font-mono— Блоки кода,<kbd>, моноширинный текст.--font-heading— Заголовки диалогов (по умолчанию Inter, как и--font-sans).
При использовании @oracul/style шрифты устанавливаются и настраиваются в layout.tsx автоматически.
Экспорт примитивов
Компоненты, оборачивающие примитивы Base UI, повторно экспортируют базовый примитив. Используйте стилизованный компонент, когда подходят наши настройки, или примитив, когда вам нужна другая композиция или стилизация.
import { Slider, SliderValue, SliderPrimitive } from "@oracul/ui/components/slider";Повторный экспорт Base UI
Когда вам нужны только useRender, mergeProps, CSPProvider или DirectionProvider, импортируйте их из @oracul/ui/base-ui/* вместо прямого добавления @base-ui/react:
@oracul/ui/base-ui/use-render@oracul/ui/base-ui/merge-props@oracul/ui/base-ui/csp-provider@oracul/ui/base-ui/direction-provider
Это особенно полезно в монорепозиториях, чтобы избежать дублирования установок и держать версии синхронизированными.
Работа с LLM (ИИ-моделями)
Мы структурируем документацию так, чтобы компоненты были удобны для ИИ (AI-friendly). Для этого мы включили:
- Навыки агента (Agent Skills) — Установите знания о проекте прямо в ваш ИИ-ассистент с помощью
npx skills add oracul-ds/oracul. Это охватывает все 53 примитива, конвенции стилизации и паттерны. - Файл llms.txt, который предоставляет карту документации и структуры компонентов для вашего ИИ-агента.
- Кнопку Copy Markdown на каждой странице для удобной передачи контента в рабочие процессы ИИ.
- Registry API — Получайте исходный код любого компонента через
GET /api/registry/[component]. Удобно для агентов, которые добавляют компоненты в проект программно.
На этой странице