Начало

Быстрый старт

Подключить реестр, тему продукта и первый компонент, проверить сборку

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

3. Подключить 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/button

5. Проверки

Линт: в eslint.config.mjs продукта ...umbra.configs.recommended из ./eslint.umbra.mjs (сырые цвета, отступы вне шкалы, чужие иконки, стрелки, стекло у плитки). Дальше tsc --noEmit, сборка и скриншоты экрана в 1100 × 700 в обеих темах. Пары текст / фон брать только из таблицы на странице «Цвета и контраст»

Агенту в продукте: сниппет для CLAUDE.md и навык на странице «Как подключить агента»