Ansora base
Tokens, icons and shared helpers. Install this first — every other item assumes it is already there.
base
Install
pnpm dlx shadcn@4.23.0 add @ansora/baseExamples
Usage
globals.css takes exactly two lines, in this order: @import "tailwindcss"; and @import "@ansora/tokens";. Without the first one not a single utility is generated.
next.config: add transpilePackages: ["@ansora/tokens", "@ansora/core"] — the packages ship TypeScript sources, so Next will not compile them otherwise.
app/layout.tsx: set . Everything this registry renders is Czech, so the lang="en" that create-next-app leaves behind fails WCAG 3.1.1 (level A) on every page of every consumer — a screen reader then pronounces Czech with English phonetics.
app/layout.tsx : add a blocking inline script that applies the stored theme before the first paint. DashboardActions can only read the preference in a mount effect (reading it during render would desync SSR and hydration), which leaves one frame of the wrong theme after every reload. Only a script in the document head closes that gap, and the document belongs to your layout, not to a component:
Files
Dependencies
@ansora/conventions@ansora/tokens(npm)@ansora/core(npm)@phosphor-icons/react@^2.1.10(npm)
Ansora overview dashboard
Overview screen for an outpatient clinic / front desk — a KPI strip as one card with internal dividers, a visits chart and a filterable patients table with statuses. The header actions (date range, export, light/dark toggle) ship separately as DashboardActions and belong in the shell's headerActions; the screen renders no top bar, no search field and no user menu of its own. Composes shadcn primitives (Card, Table, Button, Avatar, Select, Tabs, Chart, Badge) on top of @ansora/tokens — only the status logic is vendored (@ansora/status-pill); the primitives are installed from the public shadcn registry and pick up our look automatically.
Agent conventions
Rules for using Ansora UI — colours, density, upgrades, tokens. Installed into every project that consumes this registry; @ansora/base pulls it in automatically.