/ Walkthrough

From Zero to Production in 7 Steps.

A complete walkthrough of building with Sigil — from first install to shipping a fully token-driven product page. Each step includes interactive visualizations so you understand the system, not just the commands.

01Install
02Understand
03Define Preset
04Add Components
05Fine-Tune
06Build Pages
07Ship
01
INSTALL

Create a new Sigil project.

One command scaffolds everything: config file, token markdown, CSS variables, and your first preset. Works with Next.js, Remix, Vite, Astro, and more.

~/ — zsh
WHAT JUST HAPPENED
sigil.config.ts

Project config — framework detection, component output path, active preset

sigil.tokens.md

Markdown overrides for the 519-token system

globals.css

CSS custom properties compiled from your token layer

package.json

@sigil-ui/components and @sigil-ui/presets added as dependencies

02
UNDERSTAND

Same components you trust. One layer for agents to edit.

Sigil's components are built on Radix + Base UI primitives — accessible, composable headless patterns. The token layer is the thin, agent-friendly control surface on top. Humans and AI agents both edit sigil.tokens.md; the components never change.

010304
Layer modelstack/all
00

FULL STACK

Four layers with a single rule: visual decisions flow in one direction. Edit the bottom, and everything above updates.

01

Each layer has one job. Tokens define. Presets bundle. Components consume. Pages compose.

02

Select a layer to isolate it and see what it contains.

03

Changes flow upward — edit a token and every layer above inherits it automatically.

current surface
TOKENS519 configurable fields
PRESETS44 curated + custom
COMPONENTS350+ token-driven
PAGES17 production templates
THE COMPILATION PIPELINE

Your token markdown file compiles into CSS custom properties. Every component reads those properties via var(--s-*). Change the source, everything downstream updates.

sigil.tokens.mdsource
## Colorscompiling
primary: oklch(0.7 0.15 280)
surface: oklch(0.17 0.01 260)
border: oklch(0.25 0.02 260)
## Typography
font-display: "PP Mori"
font-mono: "Berkeley Mono"
heading-weight: 600
## Spacing
base: 4px
section-py: 96px
card-padding: 24px
## Radius
radius-sm: 4px
radius-md: 8px
radius-lg: 12px
compileToCss()
:root {
--s-primary: oklch(0.7 0.15 280);
--s-surface: oklch(0.17 0.01 260);
--s-border: oklch(0.25 0.02 260);
}
300+ varsinstant
tintcomponents

Runtime Panel

propagated103
1/4
03
DEFINE YOUR PRESET

Create your own — or start from 46.

Your project needs its own visual identity. Create a custom preset interactively, fork a curated one as a starting point, or edit sigil.tokens.md directly. The file is yours — presets are just starting points.

RECOMMENDED: CREATE CUSTOM

Interactive scaffolding asks for your brand colors, fonts, and radius preference. Generates a complete token preset that you own.

$ sigil preset create
FORK A CURATED PRESET

Start from one of 46 presets, then customize. The preset writes to your token file — you can change any value afterward.

$ sigil preset noir
EDIT TOKENS DIRECTLY

Open sigil.tokens.md and set core values yourself. Full control through the token layer — from colors to motion.

vim sigil.tokens.md
CREATING A CUSTOM PRESET

sigil preset create walks you through naming your preset, choosing a base, setting brand colors and fonts, and writing the result to your token file. Your project uses your preset — not a library preset.

~/ my-app — zsh
YOUR sigil.tokens.md (AFTER)
## Colors
primary: oklch(0.53 0.21 275)
primary-hover: oklch(0.48 0.21 275)
background: oklch(0.13 0.02 260)
surface: oklch(0.17 0.02 260)
border: oklch(0.25 0.02 260)
 
## Typography
font-display: "Inter", system-ui, sans-serif
font-body: "Inter", system-ui, sans-serif
font-mono: "JetBrains Mono", monospace
 
## Radius
md: 8px
...
519 fields total — you control all of them
WHY THIS IS FASTER
One file vs. dozensEdit 1 markdown file instead of hunting through 350+ token-driven components. One change propagates everywhere.
Agent-friendlyAI agents read sigil.tokens.md, make targeted edits, and get deterministic visual output. Fewer LLM tokens, zero drift.
No vendor lock-inYour preset lives in your repo. Not a config in someone else's library — a markdown file you can read, diff, and version.
Instant visual refreshChange a token, CSS recompiles, every component updates. No manual search-and-replace across files.
OR BROWSE 44 CURATED PRESETS

Don't want to start from scratch? Use a curated preset as your base — then customize. Click the preset pills below to compare visual identities.

Preset Asigil
Build faster.Token-driven design system
Preset Bcrux
Build faster.Token-driven design system
Preset A
Preset B
YOUR OWN PRESETThese are curated examples. Run sigil preset create to build a custom preset with your brand colors, fonts, and radius — then edit sigil.tokens.md for full control.
~/ my-app — zsh

Structural

sigil · kova · cobalt · helix · hex

Engineering precision, grids, measurements

Minimal

crux · axiom · arc · mono

Maximum whitespace, clean, few elements

Dark

basalt · onyx · fang · obsid · cipher · noir

Deep blacks, cinematic, dramatic

Colorful

flux · shard · prism · vex · dsgn · dusk

Gradients, vibrant accents, playful

Editorial

etch · rune · strata · glyph · mrkr

Typography-forward, print-inspired

Industrial

alloy · forge · anvil · rivet · brass

Metallic, mechanical, utilitarian

04
ADD COMPONENTS

Import what you need.

Components are copied into your project so you own the code. Every component reads from var(--s-*) tokens — no hardcoded colors, fonts, or spacing.

~/ my-app — zsh
HOW COMPONENTS CONSUME TOKENS

A Button reads --s-primary for fill, --s-radius-md for corners, --s-duration-fast for transitions. Change any token and the button updates instantly.

component blueprintvar(--s-*) in use
New
01source token
02compiled var
03component class
token consumption

Each visual decision resolves to one named token, then every component reads the same CSS variable.

color
selected tokenoklch(0.7 0.15 280)

Fill

--s-primary

Button background, active rails, focus accents.

Fill--s-primary
color
Foreground--s-primary-contrast
contrast
Corners--s-radius-md
shape
Type--s-font-mono
typography
Motion--s-duration-fast
motion
Depth--s-shadow-sm
elevation
Button
9 variantsUI
Card
5 partsUI
Input
3 sizesForms
Badge
6 variantsUI
Tabs
4 partsNavigation
Dialog
7 partsOverlays
GapPixelGrid
responsiveLayout
Terminal
animatedUI

350+ token-driven components across 14 categories. Browse the full library →

05
FINE-TUNE YOUR PRESET

Your token file is your design system.

Whether you created a custom preset or forked a curated one, sigil.tokens.md is now yours to fine-tune. Change any of 519 fields — colors, fonts, spacing, radius, shadows, motion — and every component updates instantly. This is how you build a unique visual identity without touching component code.

SIGIL.TOKENS.MDscroll + click
<!-- sigil.tokens.md: click any token line -->
## Colors
## Typography
## Radius
## Spacing
## Borders
## Shadows
## Motion
## Layout
TOKEN VISUALIZER--s-primary
primary: oklch(0.66 0.18 275)
Accent fills, CTA states, focus rings, and diagram highlights.
CSS variable
--s-primary
visualizer
color
Live Token Previewactive
--s-primary
Accent fills, CTA states, focus rings, and diagram highlights.
TOKEN VISUALIZATION LIBRARY
519 CONFIGURABLE FIELDS
Colors35
primary, surface, border, text, status
Typography31
font stacks, sizes, weights, leading
Spacing25
button, card, input, section padding
Layout22
content widths, margins, grid, bento
Radius16
none → sm → md → lg → xl → full
Shadows14
sm, md, lg, glow, colored, inner
Motion18
durations, easings, hover, press, stagger
Borders11
widths, styles, card, button, input
06
BUILD PAGES

Compose with the playbook.

Ten compositional rules that make any page 'just work'. Gap-pixel grids, mono labels, border stacks, density text — the structural vocabulary of every Sigil page.

app/pricing/page.tsx
import {
  SigilFrame, SigilSection, GapPixelGrid,
  GapPixelCell, MonoLabel, TabularValue,
  AccentCTA, DensityText, CardCell,
} from "@sigil-ui/components";

export default function PricingPage() {
  return (
    <SigilFrame>
      <SigilSection borderTop>
        <MonoLabel variant="accent">/ Pricing</MonoLabel>
        <DensityText role="headline" as="h1">
          Simple, transparent pricing.
        </DensityText>

        <GapPixelGrid columns={{ md: 3 }}>
          <CardCell
            title="Starter"
            footer={<MonoLabel>Free forever</MonoLabel>}
          >
            <TabularValue size="xl">$0</TabularValue>
          </CardCell>
          <CardCell
            title="Pro"
            footer={<MonoLabel>Per month</MonoLabel>}
          >
            <TabularValue size="xl">$49</TabularValue>
          </CardCell>
          <CardCell
            title="Enterprise"
            footer={<MonoLabel>Custom</MonoLabel>}
          >
            <TabularValue size="xl">Custom</TabularValue>
          </CardCell>
        </GapPixelGrid>

        <AccentCTA>Get Started</AccentCTA>
      </SigilSection>
    </SigilFrame>
  );
}
THE 10 PLAYBOOK RULES
01
Gap-Pixel GridHairline-divided cells via gap-px
02
Mono LabelUppercase mono for all chrome text
03
Border StackSections separated by borders, not spacing
04
Accent SingletonOne color breaks the monochrome
05
Tabular ValuesMono tabular-nums for all data
06
Featured GridHero item + collection layout
07
Density DNAType scale: 10px chrome → 2xl headline
08
Frosted PanelBackdrop-blur drawers and navbars
09
Card CellCards designed for gap-pixel grids
10
Universal Shell5-column: margin|gutter|content|gutter|margin

See the playbook in action across 17 production templates →

07
VALIDATE & SHIP

Run doctor. Deploy.

sigil doctor validates your entire setup — config, tokens, CSS, components, dependencies, and active preset. Green across the board means you're ready to ship.

~/ my-app — zsh
PRE-SHIP CHECKLIST
sigil doctor passes
No hardcoded hex in components
All text uses font-[family-name:var(--s-font-*)]
Spacing uses var(--s-space-*) or var(--s-*-padding)
Radius uses var(--s-radius-*)
Shadows use var(--s-shadow-*)
ONGOING MAINTENANCE
sigil diff → see token changes since last sync
sigil preset <name> → switch visual identity
sigil add <component> → add new components
Edit sigil.tokens.md → rebuild token CSS
sigil doctor → revalidate health
AGENT-FRIENDLY

AI agents use sigil.tokens.md as a contract. They edit the markdown, the compiler produces deterministic CSS, and components update without drift.

sigil init generates .sigil/AGENTS.md with instructions for any AI coding agent.

Ready to build?

You've seen the full workflow. One file, 519 tokens, 350+ token-driven components, 46 presets. The design system that compiles from a token layer.

npx create-sigil-app
Studiodefault
Presets
primary
secondary
background
surface
text
border
accent
success
warning
error
info
display
body
mono
heading wt
600
heading trk
-0.025em
base size
16px
page margin
24px
section pad
64px
card pad
24px
grid gap
24px
stack gap
12px
global
8px
button
8px
card
12px
input
6px
border w
1px
style
card border
card shadow
btn shadow
glow
spring
Type
Duration
0.20
Bounce
1.00
easing
cubic-bezier(0.16, 1, 0.3, 1)
fast
150ms
normal
200ms
slow
300ms
hover scale
1.02
press scale
0.98
hover lift
-1px
stagger
50ms
weight
transform
hover
active scale
0.98
min-width
0px
letter sp
0.000em
icon gap
8px
shadow
hover
border
shadow
padding
24px
title size
1px
title wt
desc size
0.875px
aspect
outline
height
36px
focus ring
2px
focus ring
h1 size
2.25px
h2 size
1.875px
h3 size
1.5px
h4 size
1.25px
weight
tracking
-0.020em
leading
1.20
pattern
pattern α
0.03
noise
gradient
grad angle
180°
height
50px
blur
12px
border
padding
24px
item gap
24px
min-height
600px
padding Y
80px
content-max
680px
layout
title size
56px
desc size
18px
padding Y
64px
max-width
600px
layout
title size
36px
padding Y
48px
columns
4
gap
36px
content-max
1200px
rail-gap
24px
grid-cell
50px
cross-stroke
1.5px
navbar-h
50px
bento-gap
16px
grid lines
dots
cell borders
cell bg
Gutter
Margin
content
hero
navbar
rail visible
enabled