Sigil UI
A token-first React component library where one spec drives the entire design system. Change the tokens. Everything updates.
- Site: sigil-ui.dev — docs at
/docs, browsable preset gallery at/presets - Repo: https://github.com/Kevin-Liu-01/sigil-ui (formerly
reticle-ui) - Tagline: "One markdown file controls your entire design system." / "Change the tokens. Everything updates."
What It Is
Sigil UI is a React component library and CLI built around a single idea: design tokens are the system, components just consume them. One markdown source of truth (DESIGN.md, legacy sigil.tokens.md) drives 350+ components across 46 presets from 519 tokens. Swap the preset, the entire identity changes. Edit a token, every component inherits. See Sigil Token Architecture for the token mechanism and Constraints over Context for the philosophy.
The positioning against shadcn is explicit: shadcn gives you components, you still build the system. Sigil's bet is that the system is the product - presets, tokens, agent-editable surfaces - not just the parts. That bet was partly validated in 2026 when shadcn itself shipped a preset system (see External validation below).
Kevin now uses Sigil as a public identity signal, not only an internal component project: his X bio says he is "building sigil." That makes the project part of the career/profile story as well as the design-system story. Source: X/@kevskgs profile snapshot, 2026-05-12
Why it matters to agents
Sigil is Kevin's answer to the "AI-generated UI" failure mode. Agents do not lack the ability to produce JSX. They lack stable taste constraints. Sigil moves the decision surface from scattered class strings to a single editable system: DESIGN.md, typed tokens, presets, primitives, component conventions, CLI doctors, and task-specific skills. Source: reticle-ui README, 2026-06-18
The project matters because it turns taste into an operating environment:
- Agents can change product identity by editing tokens rather than rewriting components.
- Presets become portable design-system snapshots.
- Components consume variables instead of hardcoded values, so design drift is detectable.
- The CLI gives agents a canonical way to initialize, convert, add, diff, inspect docs, and run doctors.
- Skills teach agents the local grammar before they touch the surface.
This is Constraints over Context in product form: references are useful, but constraints are what make agent output reliable.
Architecture
Token pipeline: DESIGN.md → parse → SigilTokens (519 tokens across 33 categories) → compile to CSS custom properties + Tailwind v4 @theme + W3C JSON → components consume only variables, never raw values.
Monorepo (pnpm workspaces + Turbo):
| Package | Role |
|---|---|
@sigil-ui/tokens |
Types, defaults, markdown parser, CSS/Tailwind/TS/JSON compilers |
@sigil-ui/presets |
46 named preset bundles |
@sigil-ui/components |
350+ styled React components consuming var(--s-*) |
@sigil-ui/primitives |
40+ headless behavior primitives (28 Radix + 13 Base UI) |
@sigil-ui/cli |
init, convert, add, preset, design (generate/compile/sync/extract), inspire, adapter, docs, diff, doctor |
create-sigil-app |
npx create-sigil-app scaffolder (Next.js + Tailwind + Sigil) |
Component model: forwardRef + className, BEM-style sigil-* classes consuming var(--s-*) tokens, clsx + tailwind-merge, variants as typed props. No hardcoded visuals - only CSS variable references.
Key Design Decisions
- Single source of truth: tokens in TS + markdown, compiled to CSS. Visual constants never scatter into components. Source: User, 2026-04-22
- OKLCH end-to-end for all color tokens. Source: User, 2026-04-22
- Presets swap all 519 tokens at once - identity change in one command (
sigil preset <name>). Source: User, 2026-04-22; current stats reticle-ui/STATS_MANIFEST.md, 2026-05-31 - Agent-first: root
AGENTS.md, generated.sigil/AGENTS.md,npx sigil docs <component>, five domain skills (tokens, component, layout, migration, preset). Source: User, 2026-04-22 - Radix for behavior, Sigil for chrome - parallel to shadcn's stack but with stricter token consumption rules. Source: User, 2026-04-22
46 Presets
Structural, minimal, dark, colorful, editorial, industrial. The signature preset ("sigil") features cross marks, grid lines, and an engineered reticle aesthetic - Nacelle font, indigo palette.
Agent Skills (9 domains)
Sigil ships task-specific skills so an agent operates the system instead of guessing at it. Source: reticle-ui/README.md skills/, 2026-06-13
| Skill | Domain |
|---|---|
sigil-tokens |
Three-layer token model, OKLCH rules, per-category CSS prefixes |
sigil-preset |
Preset creation, derivation, mergePresets |
sigil-design |
Generate / compile / sync / extract DESIGN.md |
sigil-component |
Component authoring pattern, forwardRef, BEM classes, no hardcoded visuals |
sigil-layout |
Page composition with SigilGrid, SigilCross, SigilRail |
sigil-playbook |
End-to-end page composition rules |
sigil-migration |
shadcn → Sigil migration (full, incremental, or tokens-only) |
sigil-polish |
Interface polish pass |
sigil-messaging |
Copy, positioning, stats source of truth |
Stack
- React 18/19, TypeScript 5.8
- Tailwind CSS v4 with
@themetoken integration - OKLCH color space
- GSAP + ScrollTrigger, Motion (Framer Motion family)
- Radix primitives for accessibility/behavior
- pnpm workspaces + Turbo
- tsup for package builds
Motion Philosophy (Emil Kowalski framework)
Sigil's animation system follows Emil Kowalski's design engineering principles:
- Frequency-based decisions: no animation on high-frequency actions (100+/day)
- Custom easing curves:
cubic-bezier(0.23, 1, 0.32, 1)for ease-out, never built-in CSS easings - Duration under 300ms for UI, exit ~20% faster than enter
- Component conventions: scale(0.97) on press, never scale(0), origin-aware popovers, skip tooltip delay on subsequent hovers
- Performance: GPU-only (
transform/opacity), Framer Motionx/yare NOT hardware-accelerated -- usetransform: "translateX()" - Spring physics:
{ duration: 0.5, bounce: 0.2 }for interruptible gestures
See skills/engineering/design-engineering-polish/SKILL.md and wiki/style/design-and-animation.md.
Cross-repo agent/CSS conventions (enforced): CSS UI Enforcement - scrollbars, ::before hit areas, typed @property for animated gradients, tokenized clamp type, Lean Ctx at bootstrap. Shadcn Registry Directory (Top Blocks) lists high-signal registries when pulling third-party blocks.
Current State
Working: monorepo packages, the DESIGN.md compile pipeline (CSS + Tailwind v4 + W3C JSON + TS), 46 presets, 350+ components, full CLI (init/convert/design/preset/inspire/adapter/docs/diff/doctor), 9 agent skills, and a layered auditor system (doctor, diff, preset validation across all 519 fields, TypeScript satisfies guarantees, WCAG AA contrast audit, component-convention + design-system rule enforcement). Live at sigil-ui.dev with docs and a browsable preset gallery. Dogfooded as Kevin's build-don't-buy proof: the Dedalus website and the Agent Machines and Loop dashboards were built with Sigil - agents authored most pages from the token spec and domain skills without manual design review. Source: reticle-ui/README.md, 2026-06-13; User LinkedIn post, 2026-04-30
External validation (2026)
The ecosystem converged on Sigil's two core bets - presets as the swappable identity unit and the agent as the operator - which strengthens the thesis rather than threatening it. Source: User, 2026-06-13
- shadcn shipped presets. In March-April 2026 shadcn/ui added a preset system: a
--presetcode packs an entire design-system config (colors, theme, fonts, radius, icon library) into one string,shadcn apply --preset <code>(and--only theme,font) swaps it into an existing project,shadcn/createpreviews presets live, and the docs explicitly tell you to "drop it in prompts so your agent knows where to start" and "take your preset with you" across Claude, Codex, v0, and Replit. shadcn previously had zero presets and no agent interface; the category king moving to packaged, swappable, agent-aware design config validates the primitive Sigil bet on first. Sigil is the maximalist version of the same idea - 519 tokens across 33 categories driving 350+ token-consuming components, not a theme/font/radius/icon config. Source: shadcn/ui changelog, https://ui.shadcn.com/docs/changelog/2026-03-cli-v4, 2026-06-13; https://ui.shadcn.com/docs/changelog/2026-04-shadcn-apply, 2026-06-13 - Reference tools prove the demand Sigil reframes. Searchable real-UI libraries like Refero (refero.design) and the broader inspiration-gallery ecosystem exist because people want to give agents design context. Sigil's argument is that context is necessary but not sufficient - the same demand is better served as constraints (tokens + components the agent composes) than as references it can ignore. Refero validates the problem; Sigil answers it differently. Source: User, 2026-06-13; Design Inspiration Galleries
Current Evidence (2026-07-01)
This page was refreshed against Kevin's live GitHub inventory, pinned repositories, PortfolioMon cards, README scrape, and downloaded portfolio screenshots. Treat this section as the current evidence anchor; deeper interpretation stays in the surrounding compiled truth.
| PortfolioMon card | Types | Site | Screenshot |
|---|---|---|---|
| #002 Sigil UI | Design/Web | site | ![]() |
- PortfolioMon card #002; Design/Web; HP 285, ATK 120, DEF 110, SPD 115; favorite card. Agent-first design system shipping 350+ React components, 46 visual presets, and a single token file that controls color, typography, radius, and motion across an entire app. Built with Tailwind v4, Radix primitives, and Framer Motion.
| GitHub repo | Visibility | Language | Stars | Last push | Homepage |
|---|---|---|---|---|---|
| Kevin-Liu-01/Sigil-UI | public | TypeScript | 5 | 2026-06-16 | site |
Timeline
-
2026-07-01 | Project graph refresh checked this page against Kevin's live GitHub inventory, pinned repos, scraped PortfolioMon cards, READMEs, and portfolio screenshots; current evidence was added above. Source: raw/github/kevin-repos-2026-07-01.json; raw/github/kevin-pinned-repos-2026-07-01.json; raw/sites/kevinliu-biz-2026-07-01/portfolio-projects.json
-
2026-06-18 | Added explicit agent-constraint significance: Sigil as Kevin's answer to generic AI UI, with
DESIGN.md, token constraints, presets, CLI doctors, and skills as the operating environment for agent-authored interfaces. Source: reticle-ui README, 2026-06-18 -
2026-06-15 | Referenced in Open Core — Sigil is MIT/open today (an open core without a paid hosted tier yet). Source: User, 2026-06-15
-
2026-06-13 | Links + capabilities re-synced from the live repo and
sigil-ui.dev: site is sigil-ui.dev, repo renamed reticle-ui → github.com/Kevin-Liu-01/sigil-ui, source-of-truth file isDESIGN.md(519 tokens / 33 categories / 46 presets / 350+ components / 40+ primitives = 28 Radix + 13 Base UI), CLI grew (convert,design generate/compile/sync/extract,inspire,adapter), 9 agent skills, layered auditor system. Added External validation (2026): shadcn shipped an agent-aware, swappable preset system, and reference tools like Refero validate the design-context demand Sigil reframes as constraints. Linked Build, Don't Buy (Sigil as dogfooding proof). Source: reticle-ui/README.md + STATS_MANIFEST.md, 2026-06-13; shadcn/ui changelog, 2026-06-13 -
2026-06-10 | Referenced in Plate (PlateJS) — Plate's "open code + registry metadata so agents get real context" / MCP-ready posture cited as a parallel to Sigil's agent-editable token-layer thesis (Constraints over Context). Source: platejs.org/docs, 2026-06-10
-
2026-05-31 | Re-synced to current repo stats from
reticle-ui/STATS_MANIFEST.md: 519 tokens, 33 categories, 46 presets, 350+ components (was 259/16/31), and 12 agent skills (tokens, preset, component, layout, playbook, migration, polish, design, messaging, audit, scene, cli) - up from 5. Source of truth file is nowDESIGN.md. Split out Sigil Token Architecture (mechanism), Constraints over Context (philosophy), Sigil Visual Doctors (QA). Source: reticle-ui STATS_MANIFEST.md/AGENTS.md, 2026-05-31 -
2026-05-12 | Public profile signal: Kevin's X bio now says "building sigil," turning Sigil into part of his external builder identity. Source: X/@kevskgs profile snapshot, 2026-05-12
-
2026-05-11 | Linked enforced CSS/agent stack (
css-ui-enforcement,lean-ctx, shadcn registry directory) for cross-repo consistency. Source: User, 2026-05-11 -
2026-05-05 | Performance investigation: preset swapping causing lag. Diagnosed and fixed iteratively - token recompilation was triggering unnecessary re-renders across all component trees. Source: Cursor transcript, 2026-05-05
-
2026-05-04 | Taste skills integrated into kevin-wiki. Wiki pages and tools documenting how the design system uses taste-* skills for art direction. Source: Cursor transcript, 2026-05-04
-
2026-05-02 | README, internal docs, and agent skills updated to reflect correct mission and stats. Auditor tooling added. Refero.design referenced as inspiration for design registry approach. Source: Cursor transcript, 2026-05-02
-
2026-04-30 | LinkedIn post shipped announcing agent-first design system and teasing Sigil/UI open-source. 350+ components, 40+ presets, 259 tokens across 16 categories. Dedalus website (dedaluslabs.ai) built as proof using this system. Source: User LinkedIn post, 2026-04-30
-
2026-04-28 | Border and ring tokens in components and previews wired to use correct token references instead of hardcoded values. Source: Cursor transcript, 2026-04-28
-
2026-04-27 | npm package initialized. Navbar, dialog, and modal components fixed for backgrounds, positioning, and alignment. FAQ page created. Source: Cursor transcript, 2026-04-27
-
2026-04-26 | Preset template with every possible token created. DialogTitle accessibility fix (Radix requirement for screen readers). Source: Cursor transcript, 2026-04-26
-
2026-04-24 | Custom stylized cursor with customization API built. Customizable scrollbar system exposed. Docs overhauled to show actual components per doc page. Git commit/push of full working state. Source: Cursor transcript, 2026-04-24
-
2026-04-23 | Devbar improved with layout options for gutter and margin types. GitHub README updated to explain Sigil as opinionated design language and belief - anti-"AI-generated aesthetic" positioning. Source: Cursor transcript, 2026-04-23
-
2026-04-22 | Wiki page created. Project actively under development. Initial spec: centralized design tokens, shared components (footers, navbars), horizontal margin components, gutter/margin variations - framed as "shadcn killer." Source: User, 2026-04-22
