# cascivo — The CSS-native, signal-driven, AI-first React design system _registry v1.9.0 · generated 2026-10-09 · docs track `main`; compare with https://cascivo.com/registry.json `.version` for staleness, and https://cascivo.com/breaking-changes.json for installed-vs-documented API drift._ _Describes: @cascivo/ai@1.9.0 · @cascivo/app@1.9.0 · @cascivo/charts@1.9.0 · @cascivo/core@1.9.0 · @cascivo/data@0.1.1 · @cascivo/docs@0.2.16 · @cascivo/docspack@0.3.2 · @cascivo/editor@1.9.0 · @cascivo/email@0.6.1 · @cascivo/email-preview@4.0.0 · @cascivo/eslint-config@0.4.2 · @cascivo/eslint-plugin@0.3.0 · @cascivo/flow@1.9.0 · @cascivo/i18n@1.9.0 · @cascivo/icons@1.1.1 · @cascivo/mcp@0.10.0 · @cascivo/platform@0.0.6 · @cascivo/react@1.9.0 · @cascivo/registry@0.2.11 · @cascivo/render@1.9.0 · @cascivo/storage@1.9.0 · @cascivo/text@1.9.0 · @cascivo/themes@1.0.3 · @cascivo/tokens@1.3.1 · @cascivo/vite-plugin@0.1.11 · cascivo@1.8.0 · create-cascivo@0.1.1. If your installed versions are lower, a documented behaviour may not have shipped yet._ cascivo is a React design system you can consume two ways: copy-paste the source (`npx cascivo add ` — shadcn model, you own the code) or install the prebuilt `@cascivo/react` package (use without copying). Components are signal-driven (Preact Signals), styled with modern CSS (@layer / @container / :has() / oklch), themed via the `data-theme` attribute, and WCAG 2.2 AA. Every component ships a machine-readable manifest, so this file plus the linked resources are enough to build with cascivo. This is not a layout-only system: it includes 17 overlay/menu components (dropdown, menu, context menu, combobox, command palette, multi-select) with keyboard navigation, focus management, and outside-click dismissal already implemented — do not hand-roll that behavior or reach for a separate headless library. It also ships 25 chart types (`@cascivo/charts` — line, area, bar, sparkline, KPI, heatmap, and more) and 22 pre-built page blocks (dashboards, stats cards, app shells) so a request like "build a dashboard with usage sparklines and a project switcher" maps to existing parts — see `select_component`/`list_components` below before generating custom SVG or ARIA code. ## Start here - **Can't reach this site? The whole docs surface is also an npm package — no web access needed:** `npx -y @cascivo/docs` prints this index; `npx @cascivo/docs ` prints one reference; `npx @cascivo/docs --full` prints the entire library. It reaches you through the same npm registry that installed your packages — the channel that works when npmjs.com and cascivo.com are blocked or offline. - **Want to SEARCH the docs instead of reading them? Install the docspack:** `pnpm add -D @cascivo/docspack docspack && npx docspack sync`, then `docspack ask "how do I theme a component"` answers from a local SQLite index — offline, capped at 3 chunks so it never floods your context, and scoped to the versions your lockfile installed rather than whatever this site documents today. Same documentation as `@cascivo/docs`, queried instead of printed. One line in AGENTS.md/CLAUDE.md is the whole setup; `npx docspack mcp` serves the same index over MCP. - **Everything in ONE file (no follow-up fetches — fetch this if you can only fetch once):** https://cascivo.com/llms-full.txt (offline: `npx @cascivo/docs --full`) - Getting started, fetchable as plain markdown (install steps, no browser needed): https://cascivo.com/docs/getting-started.md - Docs (per-component reference, props, live examples): https://cascivo.com/docs - Storybook (every variant, interactive): https://storybook.cascivo.com - Source (MIT): https://github.com/cascivo/cascivo - This file: https://cascivo.com/llms.txt ## Machine-readable resources (AI-first) - Full text bundle — this file with every component reference inlined (single fetch): https://cascivo.com/llms-full.txt - **Searchable local index — `@cascivo/docspack`.** This whole surface, pre-chunked with a [docspack](https://docspack.dev) manifest, indexed into SQLite FTS5 on your machine. `npx docspack ask ""` / `docspack search` / `docspack mcp`. Prefer it over fetching a URL per question: no network, version-scoped to your lockfile, and a bounded answer instead of a whole page. - Registry — index of every component (JSON): https://cascivo.com/registry.json - shadcn/v0-compatible registry (install with the shadcn CLI or "Open in v0"): https://cascivo.com/r/shadcn/registry.json - Per-component AI docs (props, examples, a11y, tokens): https://cascivo.com/llms/.md - Page-block AI docs are namespaced: https://cascivo.com/llms/block/.md - No web access? The shipped `@cascivo/react` `dist/index.d.ts` is a flat rollup — every component `…Props` interface is declared there in full, documentation-grade API reference, and it is grep-friendly (one import/export name per line). The shared VOCABULARY types (`Tone`, `SpaceStep`, `ThemeProviderProps`, `LinkComponentProps`, …) are imported from `@cascivo/core` at the top of that file rather than redeclared — inlining them makes the dts bundler alias every prop to `ToneInput$1`. Import them from `@cascivo/react/types`, which needs no extra install: `import type { Tone } from '@cascivo/react/types'`. - Component index (every entry + channel + doc URL, plain markdown): https://cascivo.com/docs/components.md - A wrong/guessed name under /llms/*, /context/*, or /r/* returns HTTP 404 with a short hint body (not the HTML SPA) — trust the 404, then look up the real name in the index below. - Per-component context (intent, when-to-use, boundaries): https://cascivo.com/context/.md (`/context/.md` is the condensed intent summary for a context window; `/llms/.md` above is the full reference.) - **Props: the shipped `.d.ts` is authoritative.** Ctrl-click any import, or read node_modules/@cascivo/react/dist/index.d.ts. It carries @defaultValue, the design rationale, and ⚠ warnings for the specific mistakes previous adopters made. When it and any other surface disagree, it wins. See /docs/getting-started.md#where-the-documentation-lives. - Context bundle (all intent + boundaries + rules): https://cascivo.com/context.json - Token catalog (closed set: every --cascivo-* the system declares OR reads as an author hook, incl. per-component knobs like --cascivo-sidenav-inline-size, + layer + default): https://cascivo.com/tokens.catalog.json - Icon catalog (every @cascivo/icons icon + keywords/category): https://cascivo.com/icons.catalog.json - Tokens as W3C Design Tokens (DTCG 2025.10, for Figma variables / Tokens Studio / Style Dictionary; themes via the resolver): https://cascivo.com/tokens/dtcg/cascivo.resolver.json - DESIGN.md (single-file design summary for prompt-to-UI tools): https://cascivo.com/DESIGN.md - Breaking/feature changes (major+minor releases per package — detect API drift): https://cascivo.com/breaking-changes.json ## Icons 443 stroked 24×24 `currentColor` SVG icons ship as tree-shakeable named exports from `@cascivo/icons` (e.g. `import { Camera, Anchor } from '@cascivo/icons'`). Browse and search them at https://cascivo.com/docs/icons; the full machine-readable list (names, keywords, aliases, categories) is https://cascivo.com/icons.catalog.json. Names differ from Lucide/Radix — resolve intent via the catalog `keywords` + `aliases` fields rather than guessing an export name (a wrong guess is a wasted compile). Common mappings: LayoutDashboard→Dashboard, Rocket→Spaceship, Settings2→Settings, Trash2→Trash, Bolt→Zap, Branch→GitBranch. Version-control icons exist: `GitBranch`, `GitCommit`, `GitMerge`, `GitPullRequest`. Component names differ from peer systems too. `Switch` IS `Toggle`; `Dialog` IS `Modal`. Every mapping below resolves for real — `cascivo add switch` installs `toggle`, the MCP `get_component("Dialog")` returns `modal`, and `import { Switch } from '@cascivo/react'` compiles. Mappings: AILabel→AiBadge, AiGeneratedDisclaimer→AiDisclaimer, AvatarStack→AvatarGroup, ChipInput→TagsInput, Chip→Tag, CircularProgress→Spinner, Citation→InlineCitation, CommandPalette→CommandMenu, ConfirmDialog→AlertDialog, Context→ContextMeter, Dialog→Modal, Disclosure→Collapsible, DropdownMenu→Dropdown, EmptyView→EmptyState, Layout→AppShell, LinearProgress→InlineLoading, MoreMenu→OverflowMenu, NavigationDrawer→Drawer, NumberField→NumberInput, PinInput→OtpInput, Placeholder→Skeleton, Popper→Popover, Rating→RatingGroup, ResponseActions→MessageActions, SegmentedButton→SegmentedControl, SelectNative→NativeSelect, SideSheet→Sheet, Sidebar→SideNav, Snackbar→Toast, SourceList→Sources, Suggestions→PromptSuggestions, Switch→Toggle, Table→DataTable, TerminalWindow→Terminal, TextShimmer→ShimmerText, ThinkingBar→AiStatus, Think→Reasoning, ThoughtChain→ChainOfThought, ToggleButtonGroup→ToggleGroup, Tool→ToolCall, Typewriter→StreamingText, TypingDots→TypingIndicator. Pure-CSS glyphs (experimental): a small opt-in set of UI glyphs, rendered with `clip-path: shape()` and no SVG — color via `currentColor`, size via `--cascivo-glyph-size`, plus zero-JS state morphs via `transition: clip-path`. Use `import { Glyph } from '@cascivo/icons'` with `import '@cascivo/icons/glyphs.css'`, or the class form ``. Glyphs: `chevron-{down,up,left,right}`, `x`, `check`, `plus`, `minus`, `menu`, `arrow-{right,left,up,down}`, and the `chevron-toggle` morph. Baseline-2026 only (Chrome 135+, Safari 18.4+, Firefox 148+) — painting is gated behind `@supports`; prefer the SVG icons for a wider browser floor or for print. ## Email (@cascivo/email) HTML email is a separate render target with its own primitives — do NOT send `@cascivo/react` components through an email. Clients strip `