Anamnesis — Design System
Living reference for every token, component, and variant. Toggle the theme to preview light / dark; recolor brand values in globals.css.
Semantic Colors
Every semantic color has a full 50–900 scale. ★ marks the DEFAULT alias.
Primary / Accent
Success
Info
Warning
Danger
Feature
Charm
Highlight
Neutral Scale
Brand-tinted grays (hue ≈ 209°). Auto-inverts in dark mode.
Typography
Heading Bold 4xl
Heading Semibold 2xl
Subheading Medium lg
Body Regular base
Caption sm / muted
Tiny xs / muted
HLA-B*27:05 · HLA-DRB1*15:01 · Class II
0D396C → 124A7E → 3F80B1
Border Radius
Shadows
Spacing Tokens
Icon Library
Full lucide-react catalogue. Click any icon to copy its name. Icons with an accent ring are currently used in the project.
Usage: import { IconName } from "lucide-react"
Cards
Card with Header, Body, and Footer. Uses the shadow, radius, and surface tokens.
Elevated surface for nested content. Used for content inside another card.
Surfaces & Layering
Semantic surface tokens for nested visual contexts. Every tier is perceptibly distinct from its neighbors in both light and dark mode. Use bg-stripe-a /bg-stripe-b for alternating rows. Use bg-inset for fields, snippets, and code blocks that sit inside any surface.
Elevation Model
Striped Rows Demo
Token Reference
Live swatches — these read the actual tokens, so they always match globals.css. Each maps to a numbered neutral that resolves per theme.
Existing Content Surfaces
The content1–4 scale for card nesting. The stripe/inset tokens compose on top of these — stripes live inside cards, inset lives inside stripes.
Inputs
Chips
Solid
Flat
Sizes
Tables
Striped with semantic cell coloring
| Topic | Attempted | Correct | Accuracy |
|---|---|---|---|
| HLA Class I Structure | 40 | 37 | 93% |
| Class II & Antigen Presentation | 35 | 28 | 80% |
| Crossmatching Principles | 30 | 18 | 60% |
| Nomenclature & Typing | 25 | 9 | 36% |
Modals
Accordion
Tabs
Solid (default)
Underlined
Tooltips
Dropdowns
Selects
Checkboxes
Single Checkbox
Checkbox Group
Selected: a
Sizes
Indeterminate
Listbox
- View detailsOpen the full explanation
- DownloadExport your results
- SettingsManage preferences
Pagination
Full Pagination
Sizes
Progress
Colors
Sizes
Stepper
Alerts
Toasts (Sonner)
Toasts replace inline success/error state patterns. Centralized via <Toaster /> in root layout.
Spinners
Skeleton
Loading placeholders. Compose shapes with className — the component is intentionally a blank slate.
animation="pulse" (default)
animation="wave"
animation="none"
Card Skeleton
Table Skeleton
Snippets
npm install @radix-ui/react-accordion
const user = await getCurrentUser()
if (!user?.isAdmin) redirect('/')Links
Dividers
Horizontal
Content above
Content below
Vertical
Drag & Drop
Move between columns
Built on dnd-kit. Drag a card by its handle onto a column (pointer, touch, and keyboard; auto-scrolls; floating overlay). Primitives:
To review
Reviewed