Typography
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.
Portable DESIGN.md source of truth for most agents and apps.
Compose screens as illustrated story scenes on a sky-blue ground: a prominent hero or scene region, a dotted journey path for any sequence, and staggered paper modules arranged like a picture-book spread.
Lead with rounded Baloo display headlines under a hand-drawn underline, then concise Nunito copy, then sticker-like controls and mono numeric callouts.
Moderate density with roomy gutters and clustered controls so the interface feels active but never cramped.
The paper lift + journey path: cut-paper cut-outs with a marker outline and one offset shadow, sequenced along a dotted path between circular milestone markers.
Desktop uses a wide narrative board with one prominent scene region and staggered secondary modules; tablet compresses to two columns; mobile collapses to a single illustrated reading flow.
Generous outer padding and airy vertical rhythm so paper scenes breathe around functional blocks; always pad above titles.
moderate
minmax(0,1fr) columns and min-width:0 children so grids never overflow; journey paths stack to a vertical list on mobile; non-essential nav and table columns hide below 600px; only the hero spans 100vw.
foldspring
Layered cut-paper collage in the Foldspring technique: subjects built from torn paper shapes with thick marker outlines and offset paper-shadows, in warm peach / marigold / cream over a sky-blue paper ground.
One full-bleed cut-paper hero per landing; smaller paper vignettes anchor dense sections. Always end image prompts with 'NO text, NO letters, NO logos.'
# Verger ## Philosophy A cut-paper storybook language that lays every workflow out as an illustrated orchard journey — warm paper panels lifted on offset shadows, dotted milestone paths, and sticker-like controls, all resting on an airy sky-blue ground. ### Values - narrative clarity through scene-making - human warmth over sterile efficiency - playful guidance with production-grade readability ### Anti-Values - cold dashboard severity - techno-futurist abstraction - flat anonymous component grids ### Visual Character - Every major surface is a cut-paper cut-out: a solid warm fill, a thick forest-green marker outline, one offset paper-shadow block down-and-right, and a cream highlight patch tucked in a corner. - Sequences are drawn as a dotted journey path between circular milestone markers — done markers fill leaf-green, the current step fills marigold — so the interface always shows where you are. - Section titles carry a hand-drawn marigold underline sweep rendered in SVG, never a plain heading floating alone. - Buttons and badges rest with a slight tilt and settle upward on hover, like rearrangeable illustrated stickers lifted off the page. - Illustration moments are built from circles, leaves, clouds and sunbursts in the system palette with thick outlines, on an airy sky-blue paper ground rather than white. ## Tokens ### Colors | Name | Value | |------|-------| | bg | `#DCEEF6` | | surface | `#FFF6EC` | | surface2 | `#FCE9D8` | | text | `#1E3429` | | muted | `#5E7268` | | border | `#2C5A45` | | accent | `#E59A24` | | on_accent | `#1E3429` | | leaf | `#3C7C58` | | peach | `#F2A977` | | success | `#3C7C58` | | warning | `#D08A1E` | | error | `#C9543F` | | info | `#5F9DC2` | ### Typography - **Base Size**: 17px - **Body Font**: Nunito - **Heading Font**: Baloo 2 - **Mono Font**: IBM Plex Mono - **Heading Weight**: 800 - **Heading Transform**: none - **Letter Spacing**: -0.02em - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;600;700;800&family=Nunito:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap ### Radii - **Sm**: 16px - **Md**: 24px - **Lg**: 36px - **Full**: 9999px ### Shadows - **Sm**: 4px 5px 0 #2C5A45 - **Md**: 7px 9px 0 #2C5A45, 0 18px 30px rgba(28,76,57,.16) - **Lg**: 10px 13px 0 #2C5A45, 0 28px 50px rgba(28,76,57,.20) ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,48,64] ### Surfaces - **Treatment**: paper - **Card Style**: Warm cream or peach paper cut-outs over an airy sky-blue ground, ringed by a thick forest-green marker outline, lifted on one offset paper-shadow block with a cream highlight patch in a corner. - **Bg Pattern**: dots ### Borders - **Default Width**: 3px - **Accent Width**: 3px - **Style**: solid - **Character**: A uniform deep forest-green marker outline ringing every paper cut-out; never a single accent edge on one side. ### Motion - **Duration**: 220ms - **Easing**: cubic-bezier(0.22, 1, 0.36, 1) - **Philosophy**: snappy; controls settle from a resting tilt, sections reveal on scroll, settled state renders with no JS ## Rules ### Composition Compose screens as illustrated story scenes on a sky-blue ground: a prominent hero or scene region, a dotted journey path for any sequence, and staggered paper modules arranged like a picture-book spread. ### Hierarchy Lead with rounded Baloo display headlines under a hand-drawn underline, then concise Nunito copy, then sticker-like controls and mono numeric callouts. ### Density Moderate density with roomy gutters and clustered controls so the interface feels active but never cramped. ### Signature The paper lift + journey path: cut-paper cut-outs with a marker outline and one offset shadow, sequenced along a dotted path between circular milestone markers. ## Layout ### Grid Desktop uses a wide narrative board with one prominent scene region and staggered secondary modules; tablet compresses to two columns; mobile collapses to a single illustrated reading flow. ### Whitespace Generous outer padding and airy vertical rhythm so paper scenes breathe around functional blocks; always pad above titles. ### Density moderate ### Responsive minmax(0,1fr) columns and min-width:0 children so grids never overflow; journey paths stack to a vertical list on mobile; non-essential nav and table columns hide below 600px; only the hero spans 100vw. ### Breakpoints - **Desktop**: 1440 - **Tablet**: 900 - **Mobile**: 600 ## Guidance ### Do - Pair dense areas with a soft illustrative anchor or a journey marker. - Keep the marker outline and one offset shadow consistent so surfaces feel hand-arranged. - Write copy as a guide walking the reader through the chapter. - Reserve marigold for the single highlight and leaf-green for the primary action. ### Don't - Fall back to hard-edged grey enterprise tables as the dominant surface. - Use glossy realism, 3D skeuomorphism, or photographic hero images. - Flatten cards to identical borderless rectangles with sterile spacing and neutral type. - Default the ground to white. ### Accessibility High contrast forest ink on warm paper and sky ground; 17px+ body; SVG icons and carets, never symbol glyphs; every form control explicitly styled; respects prefers-reduced-motion. ## Imagery Direction ### Pairs With foldspring ### Summary Layered cut-paper collage in the Foldspring technique: subjects built from torn paper shapes with thick marker outlines and offset paper-shadows, in warm peach / marigold / cream over a sky-blue paper ground. ### Subjects - orchard rows and apple trees - rolling paper hills - journey paths and milestone markers - paper clouds and sunbursts - crew and harvest scenes ### Usage One full-bleed cut-paper hero per landing; smaller paper vignettes anchor dense sections. Always end image prompts with 'NO text, NO letters, NO logos.'
---
version: "alpha"
name: "Verger"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
bg: "#DCEEF6"
surface: "#FFF6EC"
surface2: "#FCE9D8"
text: "#1E3429"
muted: "#5E7268"
border: "#2C5A45"
accent: "#E59A24"
on_accent: "#1E3429"
leaf: "#3C7C58"
peach: "#F2A977"
success: "#3C7C58"
warning: "#D08A1E"
error: "#C9543F"
info: "#5F9DC2"
typography:
headline-lg:
fontFamily: "Baloo 2"
fontSize: "2.075rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Baloo 2"
fontSize: "1.66rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "Nunito"
fontSize: "17px"
fontWeight: 400
lineHeight: 1.5
letterSpacing: "-0.02em"
label-md:
fontFamily: "IBM Plex Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
sm: "16px"
md: "24px"
lg: "36px"
full: "9999px"
spacing:
base: "8px"
xs: "4px"
sm: "8px"
md: "12px"
lg: "16px"
xl: "24px"
2xl: "32px"
3xl: "48px"
4xl: "64px"
components:
color-reference-bg:
backgroundColor: "{colors.bg}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-surface2:
backgroundColor: "{colors.surface2}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-on_accent:
backgroundColor: "{colors.on_accent}"
color-reference-leaf:
backgroundColor: "{colors.leaf}"
color-reference-peach:
backgroundColor: "{colors.peach}"
color-reference-success:
backgroundColor: "{colors.success}"
color-reference-warning:
backgroundColor: "{colors.warning}"
color-reference-error:
backgroundColor: "{colors.error}"
color-reference-info:
backgroundColor: "{colors.info}"
button-primary:
backgroundColor: "{colors.accent}"
textColor: "#000000"
typography: "{typography.label-md}"
rounded: "{rounded.md}"
padding: "{spacing.md}"
card-surface:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
padding: "{spacing.md}"
input-default:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
height: "44px"
---
# Verger
## Overview
A cut-paper storybook language that lays every workflow out as an illustrated orchard journey — warm paper panels lifted on offset shadows, dotted milestone paths, and sticker-like controls, all resting on an airy sky-blue ground.
### Values
- narrative clarity through scene-making
- human warmth over sterile efficiency
- playful guidance with production-grade readability
### Anti-Values
- cold dashboard severity
- techno-futurist abstraction
- flat anonymous component grids
### Visual Character
- Every major surface is a cut-paper cut-out: a solid warm fill, a thick forest-green marker outline, one offset paper-shadow block down-and-right, and a cream highlight patch tucked in a corner.
- Sequences are drawn as a dotted journey path between circular milestone markers — done markers fill leaf-green, the current step fills marigold — so the interface always shows where you are.
- Section titles carry a hand-drawn marigold underline sweep rendered in SVG, never a plain heading floating alone.
- Buttons and badges rest with a slight tilt and settle upward on hover, like rearrangeable illustrated stickers lifted off the page.
- Illustration moments are built from circles, leaves, clouds and sunbursts in the system palette with thick outlines, on an airy sky-blue paper ground rather than white.
## Colors
Use the YAML color tokens as the normative palette. The prose below names the roles agents should preserve when generating UI.
| Token | Value |
|-------|-------|
| bg | `#DCEEF6` |
| surface | `#FFF6EC` |
| surface2 | `#FCE9D8` |
| text | `#1E3429` |
| muted | `#5E7268` |
| border | `#2C5A45` |
| accent | `#E59A24` |
| on_accent | `#1E3429` |
| leaf | `#3C7C58` |
| peach | `#F2A977` |
| success | `#3C7C58` |
| warning | `#D08A1E` |
| error | `#C9543F` |
| info | `#5F9DC2` |
## Typography
- **Headline-Lg**: Baloo 2, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Baloo 2, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: Nunito, 17px, weight 400, line-height 1.5.
- **Label-Md**: IBM Plex Mono, 0.75rem, weight 600, line-height 1.
## Layout
### Spacing Tokens
- **Base**: `8px`
- **Xs**: `4px`
- **Sm**: `8px`
- **Md**: `12px`
- **Lg**: `16px`
- **Xl**: `24px`
- **2xl**: `32px`
- **3xl**: `48px`
- **4xl**: `64px`
### Grid
Desktop uses a wide narrative board with one prominent scene region and staggered secondary modules; tablet compresses to two columns; mobile collapses to a single illustrated reading flow.
### Whitespace
Generous outer padding and airy vertical rhythm so paper scenes breathe around functional blocks; always pad above titles.
### Density
moderate
### Responsive
minmax(0,1fr) columns and min-width:0 children so grids never overflow; journey paths stack to a vertical list on mobile; non-essential nav and table columns hide below 600px; only the hero spans 100vw.
### Breakpoints
- **Desktop**: 1440
- **Tablet**: 900
- **Mobile**: 600
## Elevation & Depth
### Shadows
- **Sm**: 4px 5px 0 #2C5A45
- **Md**: 7px 9px 0 #2C5A45, 0 18px 30px rgba(28,76,57,.16)
- **Lg**: 10px 13px 0 #2C5A45, 0 28px 50px rgba(28,76,57,.20)
## Shapes
### Rounded
- **Sm**: `16px`
- **Md**: `24px`
- **Lg**: `36px`
- **Full**: `9999px`
### Surfaces
- **Treatment**: paper
- **Card Style**: Warm cream or peach paper cut-outs over an airy sky-blue ground, ringed by a thick forest-green marker outline, lifted on one offset paper-shadow block with a cream highlight patch in a corner.
- **Bg Pattern**: dots
### Borders
- **Default Width**: 3px
- **Accent Width**: 3px
- **Style**: solid
- **Character**: A uniform deep forest-green marker outline ringing every paper cut-out; never a single accent edge on one side.
## Components
### Composition
Compose screens as illustrated story scenes on a sky-blue ground: a prominent hero or scene region, a dotted journey path for any sequence, and staggered paper modules arranged like a picture-book spread.
### Hierarchy
Lead with rounded Baloo display headlines under a hand-drawn underline, then concise Nunito copy, then sticker-like controls and mono numeric callouts.
### Density
Moderate density with roomy gutters and clustered controls so the interface feels active but never cramped.
### Signature
The paper lift + journey path: cut-paper cut-outs with a marker outline and one offset shadow, sequenced along a dotted path between circular milestone markers.
## shadcn/ui Usage
When the target app uses shadcn/ui, copy DESIGN.md with shadcn instead of the plain DESIGN.md. It contains the same Katagami design-language source plus the shadcn/ui primitives, imports, theme variables, component recipes, and preview-shot guidance.
DESIGN.md with shadcn: `/language/en-019ef8e8-dc87-7f92-ad6e-c712feb71bf7/DESIGN.with-shadcn.md`.
The shadcn page also exposes optional machine-readable files for automation, but the human-facing handoff is DESIGN.md with shadcn.
Install recommended primitives with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.
Use these primitives in shadcn apps:
- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table
Implementation rule for agents: import shadcn primitives from `@/components/ui/*`, apply the generated CSS variables first, then compose the language-specific recipes from the companion MD. Katagami remains the source of truth; shadcn names are the implementation surface.
## Do's and Don'ts
- Do Pair dense areas with a soft illustrative anchor or a journey marker.
- Do Keep the marker outline and one offset shadow consistent so surfaces feel hand-arranged.
- Do Write copy as a guide walking the reader through the chapter.
- Do Reserve marigold for the single highlight and leaf-green for the primary action.
- Don't Fall back to hard-edged grey enterprise tables as the dominant surface.
- Don't Use glossy realism, 3D skeuomorphism, or photographic hero images.
- Don't Flatten cards to identical borderless rectangles with sterile spacing and neutral type.
- Don't Default the ground to white.
### Accessibility
High contrast forest ink on warm paper and sky ground; 17px+ body; SVG icons and carets, never symbol glyphs; every form control explicitly styled; respects prefers-reduced-motion.
## Imagery Direction
### Pairs With
foldspring
### Summary
Layered cut-paper collage in the Foldspring technique: subjects built from torn paper shapes with thick marker outlines and offset paper-shadows, in warm peach / marigold / cream over a sky-blue paper ground.
### Subjects
- orchard rows and apple trees
- rolling paper hills
- journey paths and milestone markers
- paper clouds and sunbursts
- crew and harvest scenes
### Usage
One full-bleed cut-paper hero per landing; smaller paper vignettes anchor dense sections. Always end image prompts with 'NO text, NO letters, NO logos.'
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "verger",
"type": "registry:theme",
"title": "Verger shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#DCEEF6",
"foreground": "#1E3429",
"card": "#FFF6EC",
"card-foreground": "#1E3429",
"popover": "#FFF6EC",
"popover-foreground": "#1E3429",
"primary": "#1E3429",
"primary-foreground": "#ffffff",
"secondary": "#f4f4f5",
"secondary-foreground": "#111111",
"muted": "#5E7268",
"muted-foreground": "#1E3429",
"accent": "#E59A24",
"accent-foreground": "#ffffff",
"destructive": "#C9543F",
"border": "#2C5A45",
"input": "#2C5A45",
"ring": "#E59A24",
"chart-1": "#1E3429",
"chart-2": "#f4f4f5",
"chart-3": "#E59A24",
"chart-4": "#3C7C58",
"chart-5": "#D08A1E",
"sidebar": "#FFF6EC",
"sidebar-foreground": "#1E3429",
"sidebar-primary": "#1E3429",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#5F9DC2",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#2C5A45",
"sidebar-ring": "#E59A24",
"radius": "24px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#1E3429",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#E59A24",
"accent-foreground": "#ffffff",
"destructive": "#C9543F",
"border": "#303642",
"input": "#303642",
"ring": "#E59A24",
"chart-1": "#1E3429",
"chart-2": "#f4f4f5",
"chart-3": "#E59A24",
"chart-4": "#3C7C58",
"chart-5": "#D08A1E",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#1E3429",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#E59A24",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#E59A24",
"radius": "24px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019ef8e8-dc87-7f92-ad6e-c712feb71bf7",
"slug": "verger",
"componentManifest": [
"button",
"card",
"input",
"textarea",
"select",
"dialog",
"sheet",
"tabs",
"badge",
"separator",
"checkbox",
"switch",
"slider",
"tooltip",
"dropdown-menu",
"table"
],
"installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
"nativeTokenNames": {
"colors": [
"accent",
"bg",
"border",
"error",
"info",
"leaf",
"muted",
"on_accent",
"peach",
"success",
"surface",
"surface2",
"text",
"warning"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"heading_transform",
"heading_weight",
"letter_spacing",
"mono_font"
],
"radii": [
"full",
"lg",
"md",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"motion": [
"duration",
"easing",
"philosophy"
]
}
}
}
```The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
Agent-generated
Keep Vergerand swap a palette and an art style onto it — the landing & dashboard recolor live. The Studio does the same with all three lanes free.
Copy this when the target app uses shadcn/ui. It packages the Katagami DESIGN.md context with the install list, theme variables, component recipes, preview-shot contract, and starter TSX in one Markdown companion.
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table:root {
--background: #DCEEF6;
--foreground: #1E3429;
--card: #FFF6EC;
--card-foreground: #1E3429;
--popover: #FFF6EC;
--popover-foreground: #1E3429;
--primary: #1E3429;
--primary-foreground: #ffffff;
--secondary: #f4f4f5;
--secondary-foreground: #111111;
--muted: #5E7268;
--muted-foreground: #1E3429;
--accent: #E59A24;
--accent-foreground: #ffffff;
--destructive: #C9543F;
--border: #2C5A45;
--input: #2C5A45;
--ring: #E59A24;
--chart-1: #1E3429;
--chart-2: #f4f4f5;
--chart-3: #E59A24;
--chart-4: #3C7C58;
--chart-5: #D08A1E;
--sidebar: #FFF6EC;
--sidebar-foreground: #1E3429;
--sidebar-primary: #1E3429;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #5F9DC2;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #2C5A45;
--sidebar-ring: #E59A24;
--radius: 24px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #1E3429;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #E59A24;
--accent-foreground: #ffffff;
--destructive: #C9543F;
--border: #303642;
--input: #303642;
--ring: #E59A24;
--chart-1: #1E3429;
--chart-2: #f4f4f5;
--chart-3: #E59A24;
--chart-4: #3C7C58;
--chart-5: #D08A1E;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #1E3429;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #E59A24;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #E59A24;
--radius: 24px;
}
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { Input } from "@/components/ui/input";
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs";
export function VergerShadcnKit() {
return (
<section className="grid gap-4 rounded-[var(--radius)] border bg-background p-4 text-foreground">
<div className="flex items-start justify-between gap-4">
<div>
<Badge variant="outline">shadcn/ui</Badge>
<h2 className="mt-3 text-2xl font-semibold tracking-tight">Verger</h2>
<p className="mt-1 max-w-xl text-sm text-muted-foreground">
Use the Katagami registry theme, then compose these shadcn primitives
with the language-specific component recipes.
</p>
</div>
<Button>Apply theme</Button>
</div>
<Tabs defaultValue="components">
<TabsList>
<TabsTrigger value="components">Components</TabsTrigger>
<TabsTrigger value="states">States</TabsTrigger>
<TabsTrigger value="export">Export</TabsTrigger>
</TabsList>
</Tabs>
<Card>
<CardHeader>
<CardTitle>Component recipe</CardTitle>
<CardDescription>
Replace this starter content with the agent-authored product scene
from components.md and preview-shots.json.
</CardDescription>
</CardHeader>
<CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
<Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
<Button variant="secondary">Preview state</Button>
</CardContent>
<CardFooter className="justify-between">
<Badge>Ready</Badge>
<Button variant="outline">Copy recipe</Button>
</CardFooter>
</Card>
</section>
);
}
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "verger",
"type": "registry:theme",
"title": "Verger",
"description": "A cut-paper storybook orchard interface. Warm cream and peach paper panels ringed by a deep forest-green marker outline, lifted on one offset paper-shadow block, all resting on an airy sky-blue paper ground. Baloo 2 + Nunito voice; rounded paper geometry (16/24/36); marigold the single highlighter, leaf-green the primary action; sticker controls that lift on hover.",
"cssVars": {
"theme": {
"font-sans": "Nunito, Segoe UI, system-ui, sans-serif",
"font-mono": "IBM Plex Mono, ui-monospace, monospace",
"font-display": "Baloo 2, Trebuchet MS, system-ui, sans-serif",
"font-heading": "Baloo 2, Trebuchet MS, system-ui, sans-serif",
"radius": "24px"
},
"light": {
"background": "#DCEEF6",
"foreground": "#1E3429",
"card": "#FFF6EC",
"card-foreground": "#1E3429",
"popover": "#FFF6EC",
"popover-foreground": "#1E3429",
"primary": "#3C7C58",
"primary-foreground": "#FFF6EC",
"secondary": "#FCE9D8",
"secondary-foreground": "#1E3429",
"accent": "#E59A24",
"accent-foreground": "#1E3429",
"muted": "#FCE9D8",
"muted-foreground": "#5E7268",
"destructive": "#C9543F",
"destructive-foreground": "#FFF6EC",
"success": "#3C7C58",
"warning": "#D08A1E",
"info": "#5F9DC2",
"border": "#2C5A45",
"input": "#2C5A45",
"ring": "#E59A24",
"radius": "24px"
}
}
}
# Verger shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019ef8e8-dc87-7f92-ad6e-c712feb71bf7`
Slug: `verger`
## Intent
A cut-paper storybook language that lays every workflow out as an illustrated orchard journey — warm paper panels lifted on offset shadows, dotted milestone paths, and sticker-like controls, all resting on an airy sky-blue ground.
## Required primitives
- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table
Install with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.
## Token cues
Colors:
{
"bg": "#DCEEF6",
"surface": "#FFF6EC",
"surface2": "#FCE9D8",
"text": "#1E3429",
"muted": "#5E7268",
"border": "#2C5A45",
"accent": "#E59A24",
"on_accent": "#1E3429",
"leaf": "#3C7C58",
"peach": "#F2A977",
"success": "#3C7C58",
"warning": "#D08A1E",
"error": "#C9543F",
"info": "#5F9DC2"
}
Typography:
{
"base_size": "17px",
"body_font": "Nunito",
"heading_font": "Baloo 2",
"mono_font": "IBM Plex Mono",
"heading_weight": "800",
"heading_transform": "none",
"letter_spacing": "-0.02em",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;600;700;800&family=Nunito:wght@400;500;600;700;800&family=IBM+Plex+Mono:wght@400;500;600&display=swap"
}
## Visual character to preserve
- Every major surface is a cut-paper cut-out: a solid warm fill, a thick forest-green marker outline, one offset paper-shadow block down-and-right, and a cream highlight patch tucked in a corner.
- Sequences are drawn as a dotted journey path between circular milestone markers — done markers fill leaf-green, the current step fills marigold — so the interface always shows where you are.
- Section titles carry a hand-drawn marigold underline sweep rendered in SVG, never a plain heading floating alone.
- Buttons and badges rest with a slight tilt and settle upward on hover, like rearrangeable illustrated stickers lifted off the page.
- Illustration moments are built from circles, leaves, clouds and sunbursts in the system palette with thick outlines, on an airy sky-blue paper ground rather than white.
## ShadSync visual profile
{
"family": "paper-collage",
"material": "paper",
"contour": "default",
"border": "dashed",
"underlay": true,
"grain": true,
"stickerBadges": true,
"motion": "lift-rotate",
"density": "airy",
"accents": [
"primary",
"accent",
"secondary",
"muted"
]
}
## Signature component recipes
### Button
Use `Button` for primary, secondary, outline, and ghost actions. Primary actions must expose the language's strongest contrast pair, while secondary and ghost actions should preserve the surface treatment instead of falling back to default neutral SaaS styling.
### Card
Use `Card`, `CardHeader`, `CardContent`, `CardFooter`, and `CardAction` as the main composition frame. Cards should demonstrate the language's surface, border, hierarchy, and density rules rather than appearing as generic rounded rectangles.
### Input and Textarea
Use `Input` and `Textarea` with visible focus rings, field labels, validation states, and the language's rhythm. Forms should show real product content, not placeholder-only controls.
### Select, Tabs, and Table
Use `Select`, `Tabs`, and `Table` to prove navigation, filtering, and dense data states. The table should show row rhythm, separators, hover/focus states, and an empty or status state when the language calls for it.
### Dialog and Sheet
Use `Dialog` for centered decisions and `Sheet` for contextual editing. Both should inherit the language's spacing, border, overlay, and motion rules.
## Preview shots
- `application-shell`: dashboard or workspace shell with navigation, cards, forms, and state badges.
- `detail-editor`: focused editing flow using input, textarea, select, switch/checkbox, dialog or sheet, and action buttons.
- `data-operations`: table-heavy operational view with tabs, dropdown menu affordances, badges, and destructive/empty states.
- Each preview shot must include a renderable `scene` payload with concrete headline, description, actions, and rows/fields/stats for the UI preview.
## Implementation contract
- Start from local `ui/src/components/ui` shadcn-style primitives; do not create a second component system.
- Apply `/katagami/shadcn/verger/registry-theme.json` variables, then use these recipes for composition and state design.
- Preserve Katagami token names as source metadata; shadcn semantic names are only the export surface.
- Do: Pair dense areas with a soft illustrative anchor or a journey marker.; Keep the marker outline and one offset shadow consistent so surfaces feel hand-arranged.; Write copy as a guide walking the reader through the chapter.; Reserve marigold for the single highlight and leaf-green for the primary action.
- Do not: Fall back to hard-edged grey enterprise tables as the dominant surface.; Use glossy realism, 3D skeuomorphism, or photographic hero images.; Flatten cards to identical borderless rectangles with sterile spacing and neutral type.; Default the ground to white.
## Copy-paste component example
This generated starter proves the import shape. Production Katagami agents should replace it with a language-specific product composition.
```tsx
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { Input } from "@/components/ui/input";
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs";
export function VergerShadcnKit() {
return (
<section className="grid gap-4 rounded-[var(--radius)] border bg-background p-4 text-foreground">
<div className="flex items-start justify-between gap-4">
<div>
<Badge variant="outline">shadcn/ui</Badge>
<h2 className="mt-3 text-2xl font-semibold tracking-tight">Verger</h2>
<p className="mt-1 max-w-xl text-sm text-muted-foreground">
Use the Katagami registry theme, then compose these shadcn primitives
with the language-specific component recipes.
</p>
</div>
<Button>Apply theme</Button>
</div>
<Tabs defaultValue="components">
<TabsList>
<TabsTrigger value="components">Components</TabsTrigger>
<TabsTrigger value="states">States</TabsTrigger>
<TabsTrigger value="export">Export</TabsTrigger>
</TabsList>
</Tabs>
<Card>
<CardHeader>
<CardTitle>Component recipe</CardTitle>
<CardDescription>
Replace this starter content with the agent-authored product scene
from components.md and preview-shots.json.
</CardDescription>
</CardHeader>
<CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
<Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
<Button variant="secondary">Preview state</Button>
</CardContent>
<CardFooter className="justify-between">
<Badge>Ready</Badge>
<Button variant="outline">Copy recipe</Button>
</CardFooter>
</Card>
</section>
);
}
```
## Layout notes
{
"grid": "Desktop uses a wide narrative board with one prominent scene region and staggered secondary modules; tablet compresses to two columns; mobile collapses to a single illustrated reading flow.",
"whitespace": "Generous outer padding and airy vertical rhythm so paper scenes breathe around functional blocks; always pad above titles.",
"density": "moderate",
"responsive": "minmax(0,1fr) columns and min-width:0 children so grids never overflow; journey paths stack to a vertical list on mobile; non-essential nav and table columns hide below 600px; only the hero spans 100vw.",
"breakpoints": {
"desktop": "1440",
"tablet": "900",
"mobile": "600"
}
}
{
"artifact": "katagami:shadcn-preview-shots",
"version": "preview-shots-v1",
"author": "katagami-agent",
"generatedBy": "katagami-agent",
"requiresVisualProfile": true,
"schema": "katagami:shadcn-preview-shots/renderable-v1",
"renderable": true,
"language": { "id": "", "name": "Verger", "slug": "verger" },
"installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
"primitives": ["button", "card", "input", "textarea", "select", "dialog", "sheet", "tabs", "badge", "separator", "checkbox", "switch", "slider", "tooltip", "dropdown-menu", "table"],
"identityNotes": [
"Every surface is a cut-paper cut-out: solid warm fill, a thick forest-green marker outline, one offset paper-shadow block down-and-right, and a cream highlight patch in a corner.",
"Sequences are drawn as a dotted journey path between circular milestone markers — done fills leaf-green, the current step fills marigold.",
"Buttons and badges rest with a slight tilt and settle upward on hover, like rearrangeable stickers. Marigold is the single brightest highlighter; leaf-green is the primary action; the ground is sky-blue paper, never white."
],
"visualProfile": {
"family": "storybook",
"material": "paper",
"contour": "rounded",
"border": "outline",
"underlay": true,
"grain": false,
"stickerBadges": true,
"motion": "lift",
"density": "balanced",
"accents": ["accent", "primary", "secondary"]
},
"shots": [
{
"id": "application-shell",
"title": "The orchard desk",
"viewport": "desktop",
"primitives": ["button", "card", "input", "select", "tabs", "badge", "separator", "table"],
"composition": "A storybook season desk on a sky-blue ground: KPI paper cards lifted on offset shadows, a dotted season-progress journey strip, a filter row, and a rows-to-watch ledger with sticker status badges and a paper-bar chart.",
"mustShow": ["leaf-green primary action vs cream quiet action, both with marker outline and offset shadow", "cut-paper cards with forest-green outline and a cream highlight corner (no flat borderless rectangles)", "marigold + leaf + peach sticker status badges", "a dotted journey path with circular milestone markers"],
"avoid": ["grey enterprise tables as the dominant surface", "glossy realism or photographic imagery", "white ground", "borderless flat cards"],
"scene": {
"eyebrow": "north orchard · week 32",
"headline": "Season dashboard",
"description": "A storybook desk where the season reads as one journey path — blossom, set, ripen, pick, cellar.",
"primaryAction": "Plan tomorrow's pick",
"secondaryAction": "Log basket",
"stats": [
{ "label": "baskets today", "value": "128", "tone": "default" },
{ "label": "rows ripe", "value": "6", "tone": "accent" },
{ "label": "avg brix", "value": "12.8", "tone": "success" }
],
"rows": [
{ "label": "N-12 · Cox's Pippin", "value": "brix 13.8 · picked 2d ago", "status": "ripe" },
{ "label": "N-14 · Bramley", "value": "brix 11.2 · scanner gap", "status": "soon" },
{ "label": "S-03 · Egremont Russet", "value": "brix 12.9 · picking", "status": "picking" },
{ "label": "S-07 · Discovery", "value": "brix 10.1 · hold two days", "status": "hold" }
],
"statuses": ["Ripe", "Soon", "Picking", "Hold"]
}
},
{
"id": "detail-editor",
"title": "Log a row",
"viewport": "tablet",
"primitives": ["button", "card", "input", "textarea", "select", "checkbox", "switch", "slider", "dialog", "sheet"],
"composition": "A row-logging flow on peach paper: labelled Baloo fields, an invalid (rust) brix state, a notify-crew switch, a basket-target slider, and a save-confirm dialog — every control wearing the marker outline and warm paper fill.",
"mustShow": ["marigold focus ring on inputs", "an invalid (rust) state", "save-confirm dialog as a friendly paper notice", "real orchard values"],
"avoid": ["unstyled browser controls", "missing labels", "nested cards", "hard-edged grey inputs"],
"scene": {
"eyebrow": "north orchard",
"headline": "Log — row N-14",
"description": "A row form proving labels, an invalid brix state, a notify toggle, a target slider, and a save confirm.",
"primaryAction": "Save row",
"secondaryAction": "Reset",
"fields": [
{ "label": "Row name", "value": "North orchard · row 14", "type": "text" },
{ "label": "Brix", "value": "— enter a reading before saving", "type": "invalid" },
{ "label": "Variety", "value": "Bramley", "type": "select" },
{ "label": "Notify crew when ripe", "value": "on", "type": "switch" }
],
"statuses": ["Ripe", "Invalid", "Notified"]
}
},
{
"id": "data-operations",
"title": "Today's crews",
"viewport": "mobile",
"primitives": ["button", "tabs", "badge", "dropdown-menu", "table", "tooltip", "separator"],
"composition": "A narrow crews queue: stacked paper rows with circular crew markers, per-row dropdown actions, sticker status badges, tooltips, and a break state.",
"mustShow": ["responsive single-column reflow", "paper rows with circular markers", "row action menu", "sticker status badges", "a break state"],
"avoid": ["desktop-only tables", "text overflow", "generic shadcn spacing without Verger's paper character"],
"scene": {
"eyebrow": "crews",
"headline": "Today's crews",
"description": "A compact queue with rows, menus, tooltips, sticker badges, and a break affordance.",
"primaryAction": "Assign row",
"secondaryAction": "Filter",
"rows": [
{ "label": "Crew Aldous", "value": "rows N-12, N-14", "status": "on row" },
{ "label": "Crew Bramble", "value": "row S-03", "status": "picking" },
{ "label": "Crew Coppice", "value": "break until 14:00", "status": "break" }
],
"statuses": ["On row", "Picking", "Break"]
}
}
],
"componentRecipes": [
{ "primitive": "button", "intent": "Hierarchy: leaf-green primary = the one emphasis; marigold accent for a bright secondary; cream quiet for the rest. All share the 3px forest outline, one offset shadow, and a resting tilt that settles up on hover. Rounded 24px, label centred." },
{ "primitive": "card", "intent": "A cut-paper panel: cream or peach fill, thick forest-green outline, one offset paper-shadow block, and a cream highlight patch in a corner — never a flat borderless rectangle, never nested." },
{ "primitive": "input", "intent": "Warm off-white paper fill with the forest outline; marigold focus ring; rust outline when invalid; 16px rounding; Baloo label above." },
{ "primitive": "textarea", "intent": "Picker's notes with the same focus + invalid rhythm; Nunito, generous, paper-outlined." },
{ "primitive": "select", "intent": "Variety / row filtering with a paper trigger, a drawn caret (SVG, never a glyph), and clear selection contrast." },
{ "primitive": "dialog", "intent": "A friendly 'Save this row?' paper notice — centred, rounded, lifted on a shadow; no nested card." },
{ "primitive": "sheet", "intent": "The row / crew side rail for contextual editing, a tall paper panel sliding in." },
{ "primitive": "tabs", "intent": "Switch Orchard / Rows / Crews; the active tab is a leaf-green sticker, not an underline rule." },
{ "primitive": "badge", "intent": "Sticker status pills with a marker outline: ripe (leaf) / soon (marigold) / picking (peach) / hold (cream)." },
{ "primitive": "separator", "intent": "A dotted forest-green journey connector or open space — never a hard rule across a card." },
{ "primitive": "checkbox", "intent": "Opt-ins with a leaf-green checked state, a drawn check (SVG), and a clear focus." },
{ "primitive": "switch", "intent": "Notify / settings toggle; on is marigold, off is a paper track; outlined knob." },
{ "primitive": "slider", "intent": "Basket target / span with a leaf-green track and a round paper thumb on the marker outline." },
{ "primitive": "tooltip", "intent": "Concise Nunito notes above compact controls, on a small paper chip." },
{ "primitive": "dropdown-menu", "intent": "Per-row crew actions on paper, with a destructive 'remove' item in rust." },
{ "primitive": "table", "intent": "The rows ledger as story rows: each record is its own paper row with rounded ends and an outline, a sticker status badge per row, a friendly empty state — never grey enterprise zebra." }
],
"qualityRules": {
"do": [
"Build every surface as a cut-paper cut-out with a marker outline, one offset shadow, and a cream highlight corner.",
"Keep the ground sky-blue paper; reserve marigold for the single highlight and leaf-green for the primary action.",
"Carry sequences on a dotted journey path with circular milestone markers.",
"Set codes, brix, and counts in mono; everything else in Baloo / Nunito."
],
"dont": [
"Fall back to hard-edged grey enterprise tables as the dominant surface.",
"Use glossy realism, 3D, or photographic imagery.",
"Flatten cards to borderless rectangles, nest cards, or default to a white ground.",
"Add symbol glyphs (arrows, triangles) in copy — draw them as SVG."
]
}
}