Zum Inhalt springen
Docs

Befehlspalette

Zu einer Seite oder Ansicht springen oder ein Todo per Name finden.

Änderungen

Design patterns

Which design source, kit and agent skill each surface uses, and the rules that keep a rebrand cheap.

Markdown

The template's visual identity lives in tokens (packages/ui/src/styles/globals.css), and every surface composes from owned source in packages/ui. apps/web/PRODUCT.md holds the principles and anti-references; read it before any UI work. This page says which tool each job uses, so a project built from the template keeps one design language as it grows.

Three registers

RegisterSurfacesAuthorityAgent skills
Operatedashboard, todos, files, settings, authshadcn primitives and tokens; apps/web/PRODUCT.mdui-catalog, web-design-guidelines
Persuadelanding, marketing, pricingdocs/landing.md; the same tokens through landing.css aliasesdesign-taste-frontend, redesign-existing-projects, stageshow
Developer docs/docsFumadocs headless (fumadocs-core + fumadocs-mdx) with our own componentsdocs-and-changelog

An agent picks the register first (ui-catalog step 1), then loads only that register's skills. Taste guidance never reaches an Operate screen.

Sources by job

JobSourceSkill
Primitive, form, overlay, empty, toastshadcn/ui, installed in packages/ui/src/componentsshadcn, ui-catalog
Free composites (tree, timeline, pickers)ReUI free registry (@reui); Pro blocks stay outui-catalog
Chat, streaming, tool cardsthe installed AI/chat set, then AI Elementsai-assistant
Charts, sparklines, KPI cardsBklit UI, the @bklit shadcn registry (MIT, source copied into the app)bklit-ui, bklit-ui-design, bklit-ui-migrate
Faux product UI on the landingStageshow, kit vendored in apps/web/src/platform/stageshow/stageshow
Loading states (skeletons)skullet, wrapped in apps/web/src/platform/skeleton/ with sample data per feature—
Motion on an existing controltransitions.dev recipestransitions-dev, emil-design-eng, review-animations
Native (Expo)SwiftUI / Jetpack Compose through @expo/uiexpo-ui, expo-native-ui

No screen draws a chart yet. The shadcn chart wrapper (Recharts) is installed but unused; a new chart comes from @bklit, and bklit-ui-migrate moves a Recharts chart over.

Rules that keep it consistent

  • Tokens, not values. A component reads --primary, --card, --radius and the rest; a registry's own colors and fonts are mapped onto them, never copied. A kit with its own token layer (Stageshow's --ss-*, Bklit's chart colors) is aliased to ours in one place.
  • Owned source. Registry items are copied into packages/ui (or a feature's platform/ folder) and exported one subpath at a time. Diff before accepting an overwrite: local files carry React Compiler and test edits.
  • Every state ships. Loading, empty and error are part of the screen, because developers copy what the template shows.
  • A skeleton is drawn from the real component. A loading state is measured from a sample of the component it stands in for (<feature>.samples.ts), never hand-built from boxes, so nothing moves when the data lands.
  • Honest illustrations. Faux UI on the landing uses the product's own strings from the locale catalogs, shows only features the template has, and is labelled as an illustration. A Stageshow scene passes film.mjs --gate before it ships.
  • Motion respects the reader. Every animation has a reduced-motion state, pauses off screen, and starts when it can be seen.
  • Weight is measured. A new kit or registry item records its gzip delta on the route it lands in, in docs/measurements/.

Key files

Auf GitHub bearbeitenDie Dokumentation ist auf Englisch.