Начало
Быстрый старт
Подключить реестр, тему продукта и первый компонент, проверить сборку
1. Подключить реестр
Реестр подключается один раз в components.json продукта:
{
"registries": {
"@umbra": "https://aid-design-lovat.vercel.app/r/{name}.json"
}
}
2. Тема продукта
База (токены, base.css, мост в Tailwind), слой продукта (акцент) и правила проверки. Для портфолио вместо theme-shadenotes ставится theme-portfolio, для нового продукта свой слой по образцу (страница «Темы продуктов»)
npx shadcn@latest add @umbra/theme-base @umbra/theme-shadenotes @umbra/eslint3. Подключить CSS
Tailwind 4, в app/globals.css:
@import "tailwindcss";
@import "../styles/umbra/tokens.css";
@import "../styles/umbra/product.css";
@import "../styles/umbra/tailwind-v4.css";
@import "../styles/umbra/base.css";
Tailwind 3.4: presets: [require("./styles/umbra/tailwind-v3-preset.cjs")] в tailwind.config.js, в глобальном CSS tokens.css, product.css, base.css перед @tailwind base. Подробно на странице «Темы продуктов»
4. Первый компонент
Файлы ложатся в components/umbra/ и не перезаписывают компоненты shadcn продукта (components/ui/):
import { Tile } from "@/components/umbra/tile";
import { Button } from "@/components/umbra/button";
<Tile>
<p className="text-title">Встречи</p>
<Button className="mt-4">Начать запись</Button>
</Tile>
npx shadcn@latest add @umbra/tile @umbra/button5. Проверки
Линт: в eslint.config.mjs продукта ...umbra.configs.recommended из ./eslint.umbra.mjs (сырые цвета, отступы вне шкалы, чужие иконки, стрелки, стекло у плитки). Дальше tsc --noEmit, сборка и скриншоты экрана в 1100 × 700 в обеих темах. Пары текст / фон брать только из таблицы на странице «Цвета и контраст»
Агенту в продукте: сниппет для CLAUDE.md и навык на странице «Как подключить агента»