Component catalogue

The Delible product-chrome design system, rendered live from components/delible/. Every specimen is the real component — change a primitive and this page changes with it. This is the canonical inventory; there is no separate static mock.

Brand

DelibleLogo · DelibleWordmark

The transparent mark — no background chip. The 'd' is an outline path, so it renders with no font dependency. Use surface='dark' on ink shells. For the chipped favicon / app-icon treatment, see App icons below.

logo 24
logo 36
logo 48
logo on dark
wordmarkdelible
logo only
wordmark on dark
delible

App icons

DelibleAppIcon · /public/brand

The mark on a full-bleed rounded chip — the favicon / app-icon treatment, with equal dark and light variants. Below 32px the scribble compresses, so favicons use a simplified stamp + bold 'd'. The full set (SVG, favicons, simplified 16px, maskable, 300px square, 16–1024px PNG) lives in /public/brand/{dark,light}/.

dark 64
light 64
dark 40
light 40
maskable (square)
favicon 32 · darkdelible simplified favicon, dark
favicon 32 · lightdelible simplified favicon, light
favicon 16delible simplified favicon 16px

Color ramps

globals.css :root

Primitive stone + cream scales, semantic aliases, shell fills/borders (composited on ink-raised), on-dark / on-paper opacity ramps, accents, scrims. Live values — edits via ⌘ Tokens propagate here instantly.

Buttons — paper

DelibleButton

Exhaustive variant matrix on cream. Primary = ink · secondary = paper · tertiary = text-only.

ink
Link
paper
tertiary
google

Buttons — dark shell

DelibleButton surface='dark'

Same matrix on ink-raised. Paper and tertiary pick up shell chrome via surface='dark'.

ink
Link
paper
tertiary
google

Icon buttons — dark surface

DelibleIconButton — surface='dark'

size: md (40px, default) · sm (32px). variant: default (subtle fill) · outline. active and disabled supported.

default
outline
active
disabled
sm default
sm outline
sm active
sm disabled

Icon buttons — light surface

DelibleIconButton — surface='light'

size: md (40px, default) · sm (32px).

default
outline
active
disabled
sm default
sm outline
sm active
sm disabled

Chips — light surface

DelibleChip — variant: default · filled · red · amber · ghost

size: sm (26px min) · md (36px min). Default = secondary solid pen. ghost = dashed placeholder (new folio). active inverts colors. Icon + label: compose SlotIcon as a child — md 14px · stroke 1.5 · gap 6px (--chip-icon-size-md).

default
default active
default + icon
default + icon active
filled
red
amber
ghost + icon
sm

Chips — dark surface

DelibleChip — surface='dark'
inactive
active
sm

Text inputs — dark surface

DelibleTextInput

One component for chat, refine, and modal prompts. surface: dark · light. embedded=true strips the input's own chrome when it lives inside a parent shell — see New sketch modal.

default

Text inputs — light surface

DelibleTextInput surface='light'

Textarea for prompts · as='input' for single-line fields (email). Hover darkens border; focus snaps to ink.

textarea
email input

Modals — L3

DelibleModal · surface: paper · ink

Highest floating layer — spotlight float shadow (4×8), backdrop scrim, radius xl. Paper register for prompts on cream; ink register uses --ink-float (L3, stone-700) over --ink-raised shell.

paper
ink

Progress & loaders

DelibleProgress · SketchTileLoader · DelibleToast · skeletons

DelibleProgress: value 0–100, or null for the indeterminate hatch. Toasts are triggered by ordinary buttons — no separate overlay trigger style.

30%
sketching…
70%
sketching…
indeterminate
sketching…
tile loader
toast success
toast error

Skeletons

SketchTileSkeleton · NewSketchTileSkeleton
tile
new tile

Parse error surface

ScreenParseError

Full-screen error for a sketch that fails to compile. Shown here inside a fixed-size relative frame.

§ Parse error

Couldn’t parse this sketch.

Unexpected closing tag </SketchButton> at line 3

This screen was saved with invalid syntax (likely a pre-validator legacy). Generate a new sketch to replace it.

Page chrome

PageSectionHeader · PageTitle · SketchUnderline

My folio

underlineHand-drawn

Composed app components

The product chrome assembled from the primitives above — fed mock props here so they render in isolation.

Credit meter

CreditMeter — initialBalance · onTopUpClick

Header balance pill (reads the WalletProvider context). Click opens the top-up modal.

balance

Font theme chips

FontThemeChips — DelibleMenu + DelibleMenuTrigger variant='tertiary' size='sm'

Sketch font picker on the iterator header. Compact sm trigger — 32px height, fs-md label, 16px icon. Stateful here.

Feather icon map

iconInventory · FeatherIconMapper

Every product-chrome icon today is a custom inline SVG. Pick Feather replacements at feathericons.com — paste names in the bulk box or per row. Copy mappings when done and send them in chat to wire up.

Sketch tiles

SketchTile · NewSketchTile · SketchThumbnail

Project-grid tiles. SketchTile renders a live blackchalk thumbnail in an iframe (sample screen below).

SketchTile
NewSketchTile
SketchThumbnail

Bulk action bar

BulkActionBar — count · folios · actions

Floating bar shown when sketches are multi-selected. It is position:fixed in the live grid; here a transformed wrapper traps it inside this frame.

Login prompt

SignInPanel · SignInHeader · SignInForm · LoginPrompt

Same brand header + auth form as /signin. Copy swaps for the credits interrupt.

generation
nudge · compact

Halftone overlay

HalftoneOverlay — variant: default · red · paper-on-ink

Decorative dot texture, absolutely positioned over a relative parent.

default
red
paper-on-ink

App modals

NewSketchModal · FolioCreateModal · TopUpModal

L3 composed modals built on DelibleModal — interactive specimens for the real product flows.

new sketch
create folio
top up

Page-level layouts

IteratorLayout · ProjectsGrid · PublicSketchView · editable-canvas/* · EditorClient · SessionClient

Full-screen compositions that require live session data and context — they can't render in isolation, so here they're documented with their live routes rather than mocked (keeping the no-fake-mock rule).

IteratorLayoutThe generate → variants → refine editor surface/
ProjectsGridThe sketches dashboard grid (uses SketchTile)/app
PublicSketchViewPublic read-only sketch page/s/[slug]
CanvasEditorLayer · StandaloneEditableCanvasClick-to-edit canvas overlay(editor, flag-gated)
EditorClient · SessionClientTop-level page clients that wire everything together/ · /app