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.
Build the screen around one dominant artifact — a civic proposal board with registered slabs for agenda, map, actor ledger, and review queue. Memphis references form zones and state markers, never floating confetti.
Oswald for public-facing declarations, Atkinson Hyperlegible for task content, Space Mono for codes, statuses, and numeric ledgers. Important items gain checker keys and register offsets before extra font weight.
Balanced: content panels may be information-rich, but every bright panel needs adjacent off-white spacing and no more than three dominant brights in a viewport.
Checkerboard corner keys on the live item; a single flat misregistration offset on slabs and controls; facade-arch underlays behind major zones; structural actor keys encoding ownership across cards, rows, and dialogs.
Twelve-column desktop grid with 24px gutters and controlled half-cell offsets so major panels step like a playful city elevation while controls stay aligned; tablet collapses to a wider lead lane, mobile to one column with tabs becoming horizontal chips.
Off-white margins as silence between chroma blocks; at least 24px between unrelated slabs; bright underlays behind no more than one third of the viewport.
balanced
Renders from ~390px mobile to 2560px+ ultra-wide; single-column stack on mobile with non-essential nav and table columns hidden; capped, centered content on ultra-wide with only the hero spanning 100vw.
quoin
Subjects rebuilt out of bold flat registered color planes with even-weight black construction lines and one diagonal misregistration offset; cobalt/cherry/lemon brights over a warm off-white ground, with a mint grid, a flat disk, lilac arch fragments, and checkerboard corner keys as structural background zones.
Use for the landing hero and section imagery; keep the subject flat-ink and registered, never photorealistic or 3d; reserve the three brights and keep mint and lilac as structural underlay.
# Quoin Hall ## Philosophy A postmodern operating surface for civic decision tools that turns Memphis geometry and quoted facades into disciplined interface structure: registered flat color planes, uniform black construction lines, one flat misregistration offset, and checkerboard corner keys that mark what is live. Playful, plural, high-chroma, but organized around a usable review workflow rather than decorative chaos. ### Values - Plural forms held by a strict interaction grid - Visual wit that clarifies workflow ownership and state - High-chroma civic optimism with off-white breathing room - Historic quotation translated into interface structure - Product surfaces that feel authored, not themed ### Anti-Values - Generic white SaaS cards with colour pasted on top - Random Memphis confetti that does not organize hierarchy - Soft drop shadows, glows, or glassmorphism on civic chrome - Postmodern references that make controls harder to read - A single coloured edge as the only accent on a card ## Tokens ### Colors | Name | Value | |------|-------| | bg | `#F8F3E8` | | surface | `#FFFBEF` | | recess | `#EFE8D6` | | text | `#171313` | | muted | `#6B625B` | | border | `#171313` | | on_accent | `#FFFBEF` | | accent | `#0057D9` | | accent_2 | `#E11931` | | accent_3 | `#F6D800` | | mint | `#9FE3C4` | | lilac | `#C9B7FF` | | success | `#12A879` | | warning | `#F6B400` | | error | `#C9152D` | | info | `#6B5BFF` | ### Typography - **Base Size**: 17px - **Body Font**: Atkinson Hyperlegible - **Heading Font**: Oswald - **Mono Font**: Space Mono - **Heading Weight**: 700 - **Heading Transform**: uppercase - **Letter Spacing**: -0.02em - **Line Height**: 1.48 - **Scale Ratio**: 1.25 - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700&family=Oswald:wght@500;600;700&family=Space+Mono:wght@400;700&display=swap ### Radii - **None**: 0 - **Sm**: 0 - **Md**: 0 - **Lg**: 24px - **Full**: 9999px ### Shadows - **Character**: one flat one-directional misregistration offset (a hard zero-blur color block down-right), never a soft drop shadow - **Sm**: 3px 3px 0 #171313 - **Md**: 5px 5px 0 #0057D9 - **Lg**: 6px 6px 0 #E11931 ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,48,64] ### Surfaces - **Bg Pattern**: thin mint construction grid with an oversized lemon disk and lilac arch underlays used only to zone content - **Card Style**: flat surface color-plane, uniform black construction-line border, one flat register offset, optional checkerboard corner key on the live item - **Treatment**: off-white civic slabs over a sparse mint grid with controlled geometric zoning ### Borders - **Default Width**: 2.5px - **Accent Width**: 3px - **Style**: solid - **Character**: even-weight black construction lines; state shown by checker keys and structural actor keys, never a lone coloured side edge ### Motion - **Duration**: 160ms - **Easing**: cubic-bezier(.2,.9,.2,1) - **Philosophy**: controls nudge diagonally by the same flat offset as their register block, so interaction feels like sliding printed blocks into register; the landing's settled state renders with no JavaScript and reveals layer on top, respecting prefers-reduced-motion ## Rules ### Composition Build the screen around one dominant artifact — a civic proposal board with registered slabs for agenda, map, actor ledger, and review queue. Memphis references form zones and state markers, never floating confetti. ### Hierarchy Oswald for public-facing declarations, Atkinson Hyperlegible for task content, Space Mono for codes, statuses, and numeric ledgers. Important items gain checker keys and register offsets before extra font weight. ### Density Balanced: content panels may be information-rich, but every bright panel needs adjacent off-white spacing and no more than three dominant brights in a viewport. ### Signature Checkerboard corner keys on the live item; a single flat misregistration offset on slabs and controls; facade-arch underlays behind major zones; structural actor keys encoding ownership across cards, rows, and dialogs. ## Layout ### Grid Twelve-column desktop grid with 24px gutters and controlled half-cell offsets so major panels step like a playful city elevation while controls stay aligned; tablet collapses to a wider lead lane, mobile to one column with tabs becoming horizontal chips. ### Whitespace Off-white margins as silence between chroma blocks; at least 24px between unrelated slabs; bright underlays behind no more than one third of the viewport. ### Density balanced ### Responsive Renders from ~390px mobile to 2560px+ ultra-wide; single-column stack on mobile with non-essential nav and table columns hidden; capped, centered content on ultra-wide with only the hero spanning 100vw. ### Breakpoints - **Mobile**: 390px - **Tablet**: 760px - **Desktop**: 1080px - **Wide**: 1440px ## Guidance ### Do - Anchor every playful move to navigation, ownership, status, or hierarchy. - Keep cobalt, cherry, and lemon as the bright trio, using mint and lilac mostly as underlay or quiet support. - Use black construction lines and mono labels consistently so plural forms still feel like one system. - Mark only the live or system-critical item with a checkerboard key; show ownership with a structural actor key. - Make responsive layouts re-stack into a clear proposal-reading order. ### Don't - Scatter Memphis shapes or checker/arch fragments as decorative filler without workflow meaning. - Use soft drop shadows, glows, glassmorphism, or blurred SaaS cards. - Put a single coloured edge as the only accent on a card, or round the corners arbitrarily. - Let more than three brights dominate one surface, or default to a plain white ground. ### Accessibility High contrast throughout (ink on warm off-white, off-white on cobalt/cherry/ink); body text 17px+, table rows 14.5px+; every form control explicitly styled with a visible cobalt focus ring; motion respects prefers-reduced-motion and the settled state renders with no JavaScript. ## Imagery Direction ### Pairs With quoin ### Summary Subjects rebuilt out of bold flat registered color planes with even-weight black construction lines and one diagonal misregistration offset; cobalt/cherry/lemon brights over a warm off-white ground, with a mint grid, a flat disk, lilac arch fragments, and checkerboard corner keys as structural background zones. ### Subjects - postmodern civic hall facade - market arcade canopy - ballot / vote ledger - town square map - kiosk and bench objects ### Usage Use for the landing hero and section imagery; keep the subject flat-ink and registered, never photorealistic or 3d; reserve the three brights and keep mint and lilac as structural underlay.
---
version: "alpha"
name: "Quoin Hall"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
bg: "#F8F3E8"
surface: "#FFFBEF"
recess: "#EFE8D6"
text: "#171313"
muted: "#6B625B"
border: "#171313"
on_accent: "#FFFBEF"
accent: "#0057D9"
accent_2: "#E11931"
accent_3: "#F6D800"
mint: "#9FE3C4"
lilac: "#C9B7FF"
success: "#12A879"
warning: "#F6B400"
error: "#C9152D"
info: "#6B5BFF"
typography:
headline-lg:
fontFamily: "Oswald"
fontSize: "2.075rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Oswald"
fontSize: "1.66rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "Atkinson Hyperlegible"
fontSize: "17px"
fontWeight: 400
lineHeight: 1.48
letterSpacing: "-0.02em"
label-md:
fontFamily: "Space Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
none: "0px"
sm: "0px"
md: "0px"
lg: "24px"
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-recess:
backgroundColor: "{colors.recess}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-on_accent:
backgroundColor: "{colors.on_accent}"
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-accent_2:
backgroundColor: "{colors.accent_2}"
color-reference-accent_3:
backgroundColor: "{colors.accent_3}"
color-reference-mint:
backgroundColor: "{colors.mint}"
color-reference-lilac:
backgroundColor: "{colors.lilac}"
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: "#ffffff"
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"
---
# Quoin Hall
## Overview
A postmodern operating surface for civic decision tools that turns Memphis geometry and quoted facades into disciplined interface structure: registered flat color planes, uniform black construction lines, one flat misregistration offset, and checkerboard corner keys that mark what is live. Playful, plural, high-chroma, but organized around a usable review workflow rather than decorative chaos.
### Values
- Plural forms held by a strict interaction grid
- Visual wit that clarifies workflow ownership and state
- High-chroma civic optimism with off-white breathing room
- Historic quotation translated into interface structure
- Product surfaces that feel authored, not themed
### Anti-Values
- Generic white SaaS cards with colour pasted on top
- Random Memphis confetti that does not organize hierarchy
- Soft drop shadows, glows, or glassmorphism on civic chrome
- Postmodern references that make controls harder to read
- A single coloured edge as the only accent on a card
## 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 | `#F8F3E8` |
| surface | `#FFFBEF` |
| recess | `#EFE8D6` |
| text | `#171313` |
| muted | `#6B625B` |
| border | `#171313` |
| on_accent | `#FFFBEF` |
| accent | `#0057D9` |
| accent_2 | `#E11931` |
| accent_3 | `#F6D800` |
| mint | `#9FE3C4` |
| lilac | `#C9B7FF` |
| success | `#12A879` |
| warning | `#F6B400` |
| error | `#C9152D` |
| info | `#6B5BFF` |
## Typography
- **Headline-Lg**: Oswald, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Oswald, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: Atkinson Hyperlegible, 17px, weight 400, line-height 1.48.
- **Label-Md**: Space 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
Twelve-column desktop grid with 24px gutters and controlled half-cell offsets so major panels step like a playful city elevation while controls stay aligned; tablet collapses to a wider lead lane, mobile to one column with tabs becoming horizontal chips.
### Whitespace
Off-white margins as silence between chroma blocks; at least 24px between unrelated slabs; bright underlays behind no more than one third of the viewport.
### Density
balanced
### Responsive
Renders from ~390px mobile to 2560px+ ultra-wide; single-column stack on mobile with non-essential nav and table columns hidden; capped, centered content on ultra-wide with only the hero spanning 100vw.
### Breakpoints
- **Mobile**: 390px
- **Tablet**: 760px
- **Desktop**: 1080px
- **Wide**: 1440px
## Elevation & Depth
### Shadows
- **Character**: one flat one-directional misregistration offset (a hard zero-blur color block down-right), never a soft drop shadow
- **Sm**: 3px 3px 0 #171313
- **Md**: 5px 5px 0 #0057D9
- **Lg**: 6px 6px 0 #E11931
## Shapes
### Rounded
- **None**: `0px`
- **Sm**: `0px`
- **Md**: `0px`
- **Lg**: `24px`
- **Full**: `9999px`
### Surfaces
- **Bg Pattern**: thin mint construction grid with an oversized lemon disk and lilac arch underlays used only to zone content
- **Card Style**: flat surface color-plane, uniform black construction-line border, one flat register offset, optional checkerboard corner key on the live item
- **Treatment**: off-white civic slabs over a sparse mint grid with controlled geometric zoning
### Borders
- **Default Width**: 2.5px
- **Accent Width**: 3px
- **Style**: solid
- **Character**: even-weight black construction lines; state shown by checker keys and structural actor keys, never a lone coloured side edge
## Components
### Composition
Build the screen around one dominant artifact — a civic proposal board with registered slabs for agenda, map, actor ledger, and review queue. Memphis references form zones and state markers, never floating confetti.
### Hierarchy
Oswald for public-facing declarations, Atkinson Hyperlegible for task content, Space Mono for codes, statuses, and numeric ledgers. Important items gain checker keys and register offsets before extra font weight.
### Density
Balanced: content panels may be information-rich, but every bright panel needs adjacent off-white spacing and no more than three dominant brights in a viewport.
### Signature
Checkerboard corner keys on the live item; a single flat misregistration offset on slabs and controls; facade-arch underlays behind major zones; structural actor keys encoding ownership across cards, rows, and dialogs.
## 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-019ef96b-7a52-76b3-a8c5-0beba25dcb6a/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 Anchor every playful move to navigation, ownership, status, or hierarchy.
- Do Keep cobalt, cherry, and lemon as the bright trio, using mint and lilac mostly as underlay or quiet support.
- Do Use black construction lines and mono labels consistently so plural forms still feel like one system.
- Do Mark only the live or system-critical item with a checkerboard key; show ownership with a structural actor key.
- Do Make responsive layouts re-stack into a clear proposal-reading order.
- Don't Scatter Memphis shapes or checker/arch fragments as decorative filler without workflow meaning.
- Don't Use soft drop shadows, glows, glassmorphism, or blurred SaaS cards.
- Don't Put a single coloured edge as the only accent on a card, or round the corners arbitrarily.
- Don't Let more than three brights dominate one surface, or default to a plain white ground.
### Accessibility
High contrast throughout (ink on warm off-white, off-white on cobalt/cherry/ink); body text 17px+, table rows 14.5px+; every form control explicitly styled with a visible cobalt focus ring; motion respects prefers-reduced-motion and the settled state renders with no JavaScript.
## Imagery Direction
### Pairs With
quoin
### Summary
Subjects rebuilt out of bold flat registered color planes with even-weight black construction lines and one diagonal misregistration offset; cobalt/cherry/lemon brights over a warm off-white ground, with a mint grid, a flat disk, lilac arch fragments, and checkerboard corner keys as structural background zones.
### Subjects
- postmodern civic hall facade
- market arcade canopy
- ballot / vote ledger
- town square map
- kiosk and bench objects
### Usage
Use for the landing hero and section imagery; keep the subject flat-ink and registered, never photorealistic or 3d; reserve the three brights and keep mint and lilac as structural underlay.
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "quoin-hall",
"type": "registry:theme",
"title": "Quoin Hall shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F8F3E8",
"foreground": "#171313",
"card": "#FFFBEF",
"card-foreground": "#171313",
"popover": "#FFFBEF",
"popover-foreground": "#171313",
"primary": "#171313",
"primary-foreground": "#ffffff",
"secondary": "#f4f4f5",
"secondary-foreground": "#111111",
"muted": "#6B625B",
"muted-foreground": "#171313",
"accent": "#0057D9",
"accent-foreground": "#ffffff",
"destructive": "#C9152D",
"border": "#171313",
"input": "#171313",
"ring": "#0057D9",
"chart-1": "#171313",
"chart-2": "#f4f4f5",
"chart-3": "#0057D9",
"chart-4": "#12A879",
"chart-5": "#F6B400",
"sidebar": "#FFFBEF",
"sidebar-foreground": "#171313",
"sidebar-primary": "#171313",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#6B5BFF",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#171313",
"sidebar-ring": "#0057D9",
"radius": "0"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#171313",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#0057D9",
"accent-foreground": "#ffffff",
"destructive": "#C9152D",
"border": "#303642",
"input": "#303642",
"ring": "#0057D9",
"chart-1": "#171313",
"chart-2": "#f4f4f5",
"chart-3": "#0057D9",
"chart-4": "#12A879",
"chart-5": "#F6B400",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#171313",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#0057D9",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#0057D9",
"radius": "0"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019ef96b-7a52-76b3-a8c5-0beba25dcb6a",
"slug": "quoin-hall",
"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",
"accent_2",
"accent_3",
"bg",
"border",
"error",
"info",
"lilac",
"mint",
"muted",
"on_accent",
"recess",
"success",
"surface",
"text",
"warning"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"heading_transform",
"heading_weight",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"character",
"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 Quoin Halland swap a palette and an art style onto it — the landing & dashboard recolor live. The Studio does the same with all three lanes free.
Agent-authored scenes, component recipes, and visual profile rendered on local shadcn-style primitives.
A civic review desk where every proposal is a registered plane and a checker key marks what is live.
A memo form proving labels, an invalid state, a carry switch, a priority slider, and a publish confirm.
A compact queue with signal cards, menus, tooltips, status badges, and a cleared affordance.
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: #F8F3E8;
--foreground: #171313;
--card: #FFFBEF;
--card-foreground: #171313;
--popover: #FFFBEF;
--popover-foreground: #171313;
--primary: #171313;
--primary-foreground: #ffffff;
--secondary: #f4f4f5;
--secondary-foreground: #111111;
--muted: #6B625B;
--muted-foreground: #171313;
--accent: #0057D9;
--accent-foreground: #ffffff;
--destructive: #C9152D;
--border: #171313;
--input: #171313;
--ring: #0057D9;
--chart-1: #171313;
--chart-2: #f4f4f5;
--chart-3: #0057D9;
--chart-4: #12A879;
--chart-5: #F6B400;
--sidebar: #FFFBEF;
--sidebar-foreground: #171313;
--sidebar-primary: #171313;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #6B5BFF;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #171313;
--sidebar-ring: #0057D9;
--radius: 0;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #171313;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #0057D9;
--accent-foreground: #ffffff;
--destructive: #C9152D;
--border: #303642;
--input: #303642;
--ring: #0057D9;
--chart-1: #171313;
--chart-2: #f4f4f5;
--chart-3: #0057D9;
--chart-4: #12A879;
--chart-5: #F6B400;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #171313;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #0057D9;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #0057D9;
--radius: 0;
}
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 QuoinHallShadcnKit() {
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">Quoin Hall</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": "quoin-hall",
"type": "registry:theme",
"title": "Quoin Hall",
"description": "Postmodern civic operating surface. Registered flat color planes on a warm off-white ground, uniform black construction-line borders, a one-directional flat misregistration offset (a hard zero-blur color block down-right, never a soft shadow), checkerboard corner keys on what is live, and clipped pseudo-corner controls. Cobalt is the primary action; cherry and lemon are the other two brights, used like highlighters; mint and lilac are structural underlay only. Square corners (radius 0). Oswald display, Atkinson Hyperlegible body, Space Mono for codes.",
"cssVars": {
"theme": {
"font-sans": "Atkinson Hyperlegible, system-ui, Arial, sans-serif",
"font-mono": "Space Mono, ui-monospace, monospace",
"font-display": "Oswald, Impact, sans-serif",
"font-heading": "Oswald, Impact, sans-serif",
"radius": "0px"
},
"light": {
"background": "#F8F3E8",
"foreground": "#171313",
"card": "#FFFBEF",
"card-foreground": "#171313",
"popover": "#FFFBEF",
"popover-foreground": "#171313",
"primary": "#0057D9",
"primary-foreground": "#FFFBEF",
"secondary": "#E11931",
"secondary-foreground": "#FFFBEF",
"accent": "#F6D800",
"accent-foreground": "#171313",
"muted": "#EFE8D6",
"muted-foreground": "#6B625B",
"destructive": "#C9152D",
"destructive-foreground": "#FFFBEF",
"success": "#12A879",
"warning": "#F6B400",
"info": "#6B5BFF",
"border": "#171313",
"input": "#171313",
"ring": "#0057D9",
"chart-1": "#0057D9",
"chart-2": "#E11931",
"chart-3": "#F6D800",
"chart-4": "#9FE3C4",
"chart-5": "#C9B7FF",
"radius": "0px"
}
}
}
# Quoin Hall shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-agent`
Slug: `quoin-hall`
## Intent
Quoin Hall is a postmodern civic operating surface. Through shadcn/ui its one governing idea —
**register the play** — must survive: Memphis geometry and quoted facades are turned into
structure, never decoration. Every focal element is a **registered color plane** with a uniform
black construction-line border and a single flat **misregistration offset** (a hard, zero-blur
color block nudged down-right — like a print slightly out of register, never a soft drop shadow).
A **checkerboard corner key** appears only on what is live or system-critical. Workflow ownership
is read as a structural key, not colour alone. The ground is a warm off-white (never plain white);
**cobalt** is the one primary action, **cherry** and **lemon** are the other two brights used like
highlighters, and **mint** and **lilac** stay as structural underlay. Corners are square (radius 0);
controls carry a clipped pseudo-corner; hover nudges a control into register. Light mode is the point.
## 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:
```json
{ "primary": "#0057D9", "secondary": "#E11931", "accent": "#F6D800", "background": "#F8F3E8", "surface": "#FFFBEF", "recess": "#EFE8D6", "text": "#171313", "muted": "#6B625B", "border": "#171313", "mint": "#9FE3C4", "lilac": "#C9B7FF", "success": "#12A879", "warning": "#F6B400", "error": "#C9152D", "info": "#6B5BFF" }
```
Typography:
```json
{ "heading_font": "Oswald", "body_font": "Atkinson Hyperlegible", "mono_font": "Space Mono", "letter_spacing": "-0.02em", "base_size": "17px" }
```
## Visual character to preserve
- **Registered planes**: a focal card is a flat color plane with a uniform black construction-line
border and one flat misregistration offset (cobalt/cherry/lemon/mint) nudged down-right — a hard
zero-blur block, never a soft shadow, and never a single lone accent edge.
- **Checkerboard keys**: only the live or system-critical item earns a corner key; it flips from
black/off-white to cobalt/lemon when active.
- **Actor keys**: workflow ownership is a structural checker key beside the name across cards, rows,
and dialogs — read as form, not colour alone.
- **Square, clipped, registered**: radius 0; controls carry an 8–9px clipped pseudo-corner; hover
slides the control into register (the offset collapses). Warm off-white ground, never plain white.
## ShadSync visual profile
```json
{ "family": "neo-memphis", "material": "flat", "contour": "clipped", "border": "heavy", "borderColor": "#171313", "underlay": true, "grain": false, "stickerBadges": false, "motion": "register-nudge", "density": "balanced", "accents": ["secondary", "accent", "success"] }
```
## Signature component recipes
### Button
Primary `Button` = cobalt on off-white — the one emphasis; a secondary variant is ink/ghost on the
surface plane; both carry a flat lemon register offset down-right (cherry on destructive). Hover
nudges the button into register so the offset collapses to zero. No soft shadow; uniform black
border; square; mono/display uppercase label; buttons in a set share one height and shape.
### Card
`Card` is a flat color-plane panel — surface fill, uniform black construction-line border, and one
flat register offset (focal = cobalt, contradiction = cherry, awaiting = lemon, ready = mint). Never
a soft drop shadow, never a single lone accent edge, never nested. A live card adds a checkerboard
corner key.
### Input and Textarea
`Input` / `Textarea` sit on the surface plane with a black border and a clipped pseudo-corner; focus
draws a cobalt inset, an invalid field draws a cherry inset. Mono labels above, real civic values inside.
### Select, Tabs, and Table
`Select` routes desks/actors with a clipped trigger and a custom SVG caret; `Tabs` switch Desk /
Ledger / Map room with a lemon underline key on the active tab (never a soft pill); `Table` is the
agenda ledger — mono ink header, body-font rows, recess zebra (cool, never plain white), a
checkerboard ownership key beside each actor, a flat status `Badge` per row, and a cleared empty
state. Separation is the zebra surface and the construction line, never a coloured hairline.
### Dialog and Sheet
`Dialog` is a formal notice ("Publish this packet?") rendered as a registered ink panel — centered,
square, generous, with a cobalt offset; `Sheet` is the proposal-edit side rail. Both square, no soft shadow.
### Badge, Switch, Slider, Tooltip, Separator, Checkbox, Dropdown-menu
`Badge` is a flat status chip with a black border: signed (mint), open (lemon), review (lilac), flag
(cherry). `Switch` "on" is a mint track with a cobalt knob slid into register. `Slider` is a
black-bordered rail with a cobalt fill and a square lemon thumb. `Tooltip` is a concise body-font
note on a surface plane with a small offset. `Separator` is open grid space or a thin black
construction line — never a coloured hairline. `Checkbox` is a square box with a cobalt checked
state; `dropdown-menu` items carry a checker-key marker and a destructive cherry "reject".
## Preview shots
- `application-shell`: the review desk — open masthead with a checker brand key, four KPI cards on register offsets, the agenda ledger with actor keys, an objection-heat scale.
- `detail-editor`: compose a session memo — labelled clipped inputs, an invalid cherry-inset state, a carry switch, a priority slider, a publish confirm.
- `data-operations`: queue signals — checker-key signal cards, dropdown actions, status badges, a cleared empty state.
- Each preview shot carries a renderable `scene` (headline, description, actions, rows/fields/stats).
## Implementation contract
- Start from the local `@/components/ui/*` shadcn primitives; do not create a second component system.
- Apply `/katagami/shadcn/quoin-hall/registry-theme.json` variables first, then compose with these recipes.
- Keep Katagami token names as source metadata; shadcn semantic names are only the export surface.
- Do: register focal elements with a flat offset; mark the live item with a checker key; keep cobalt
the action and cherry/lemon as highlighters; keep mint/lilac as underlay; ground stays warm off-white.
- Do not: use soft shadows/glows/blur; put a single coloured edge as the only accent; round the
corners; nest cards; default to plain white.
## Copy-paste component example
```tsx
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from "@/components/ui/card";
// A live proposal card: a flat surface plane with a uniform black border and one flat
// cherry register offset down-right; a checkerboard corner key marks that it is live;
// mono caption for the actor + proposal code.
export function ProposalCard() {
return (
<Card className="relative rounded-none border-[3px] border-[#171313] bg-card text-card-foreground shadow-[5px_5px_0_#E11931]">
<span
aria-hidden
className="absolute right-3 top-3 h-8 w-8 border-2 border-[#171313]"
style={{
background:
"conic-gradient(#0057D9 25%, #F6D800 0 50%, #0057D9 0 75%, #F6D800 0)",
backgroundSize: "50% 50%",
}}
/>
<CardHeader>
<Badge className="w-fit rounded-none border-2 border-[#171313] bg-[#E11931] text-[#FFFBEF]">
Design objection
</Badge>
<CardTitle className="mt-2 font-[var(--font-display)] text-2xl uppercase tracking-tight">
Mint Market arcade canopy
</CardTitle>
<CardDescription className="font-mono text-xs uppercase tracking-wide">
Planning · PM-184 · live slab
</CardDescription>
</CardHeader>
<CardContent>
<p className="text-base">A lightweight shade structure, checker paving repair, and two modular kiosks along the market lane.</p>
</CardContent>
<CardFooter className="justify-between">
<span className="font-mono text-xs text-muted-foreground">Edn 41</span>
<Button className="rounded-none border-[3px] border-[#171313] shadow-[5px_5px_0_#F6D800] transition-transform hover:translate-x-[5px] hover:translate-y-[5px] hover:shadow-none">
Approve with edits
</Button>
</CardFooter>
</Card>
);
}
```
## Layout notes
```json
{ "grid": "civic asymmetric; a 12-col modular grid with deliberate half-cell offsets so panels step like a playful city elevation while controls stay aligned", "density": "balanced; information-rich panels with off-white breathing room, no more than three dominant brights per viewport", "radii": "0 (square) / 9999 (keys & dots only)", "borders": "uniform black construction lines", "offset": "one flat down-right misregistration block, never a soft shadow", "separators": "zebra surface, construction line, a checker key — never a lone coloured edge" }
```
{
"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": "Quoin Hall", "slug": "quoin-hall" },
"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": [
"Registered planes: every card is a flat color plane with a uniform black construction-line border and ONE flat misregistration offset (a hard zero-blur color block nudged down-right) — never a soft drop shadow, never a lone accent edge.",
"Checkerboard corner keys mark only what is live or system-critical, flipping from black/off-white to cobalt/lemon; workflow ownership is read as a structural key, not colour alone.",
"Cobalt is the one primary action; cherry and lemon are the other two brights used like highlighters; mint and lilac stay as structural underlay. Warm off-white ground, never plain white. Square corners (radius 0); controls carry a clipped pseudo-corner; hover nudges the control into register."
],
"visualProfile": {
"family": "neo-memphis",
"material": "flat",
"contour": "clipped",
"border": "heavy",
"borderColor": "#171313",
"underlay": true,
"grain": false,
"stickerBadges": false,
"motion": "register-nudge",
"density": "balanced",
"accents": ["secondary", "accent", "success"]
},
"shots": [
{
"id": "application-shell",
"title": "The review desk",
"viewport": "desktop",
"primitives": ["button", "card", "input", "select", "tabs", "badge", "separator", "table"],
"composition": "A civic review desk: an open masthead with a checker brand key, four KPI cards each on a flat register offset (cherry/lemon/cobalt/mint), a tabbed agenda ledger with checker ownership keys per actor row, status badges, and an objection-heat scale.",
"mustShow": ["cobalt primary action vs ink/ghost secondary", "cards with a uniform black border + a flat down-right register offset (no soft shadow, no lone accent edge)", "checkerboard ownership keys beside actor names", "status badges: signed/open/review/flag on cobalt/cherry/lemon/mint"],
"avoid": ["soft drop shadows or glows", "rounded corners", "gradients", "a single coloured edge as the only accent on a card", "plain white ground"],
"scene": {
"eyebrow": "plural planning desk · session 41",
"headline": "Tonight's floor",
"description": "A civic review desk where every proposal is a registered plane and a checker key marks what is live.",
"primaryAction": "Open next proposal",
"secondaryAction": "Hold the floor",
"stats": [
{ "label": "quorum", "value": "84%", "tone": "secondary" },
{ "label": "open flags", "value": "12", "tone": "accent" },
{ "label": "signed", "value": "28", "tone": "default" },
{ "label": "budget left", "value": "$41K", "tone": "info" }
],
"rows": [
{ "label": "Planning — Arcade canopy PM-184", "value": "due 18:00", "status": "review" },
{ "label": "Merchants — Night lighting PM-181", "value": "due 20:15", "status": "flag" },
{ "label": "Heritage — Facade colour PM-176", "value": "due tmrw", "status": "open" },
{ "label": "Transit — Loading window PM-179", "value": "due 17:30", "status": "signed" }
],
"statuses": ["Signed", "Open", "Review", "Flag"]
}
},
{
"id": "detail-editor",
"title": "Compose a session memo",
"viewport": "tablet",
"primitives": ["button", "card", "input", "textarea", "select", "checkbox", "switch", "slider", "dialog", "sheet"],
"composition": "A memo form on a lemon-register card: mono labels over clipped pseudo-corner inputs, a route-to-desk select with a custom caret, an invalid (cherry inset) field, a carry switch on a mint track, a priority slider with a lemon square thumb, and a publish-confirm dialog.",
"mustShow": ["cobalt focus inset on inputs", "an invalid cherry-inset state", "clipped pseudo-corner controls", "switch on = mint track, checkbox checked = cobalt", "publish-confirm dialog as a registered ink panel"],
"avoid": ["unstyled browser controls", "missing labels", "nested cards", "rounded inputs", "soft shadows"],
"scene": {
"eyebrow": "compose & queue",
"headline": "Session memo — bay three",
"description": "A memo form proving labels, an invalid state, a carry switch, a priority slider, and a publish confirm.",
"primaryAction": "Publish packet",
"secondaryAction": "Save draft",
"fields": [
{ "label": "Memo title", "value": "Redraw canopy bay three", "type": "text" },
{ "label": "Route to desk", "value": "Design office", "type": "select" },
{ "label": "Columns", "value": "— assign a span before publishing", "type": "invalid" },
{ "label": "Carry to next edition", "value": "on", "type": "switch" }
],
"statuses": ["Set", "Invalid", "Carried"]
}
},
{
"id": "data-operations",
"title": "Queue signals",
"viewport": "mobile",
"primitives": ["button", "tabs", "badge", "dropdown-menu", "table", "tooltip", "separator"],
"composition": "A narrow stacked queue: signal cards each with a checker key label (cherry contradiction, lemon awaiting-design, cobalt ready), per-row dropdown actions, status badges, tooltips, and a cleared empty state.",
"mustShow": ["responsive reflow to one column", "checker-key signal labels", "row action menu with a destructive 'reject' item", "status badges", "a cleared empty state"],
"avoid": ["desktop-only tables", "text overflow", "generic shadcn spacing without Quoin Hall character"],
"scene": {
"eyebrow": "queue signals",
"headline": "Queue signals",
"description": "A compact queue with signal cards, menus, tooltips, status badges, and a cleared affordance.",
"primaryAction": "Resolve",
"secondaryAction": "Filter",
"rows": [
{ "label": "Two notes conflict", "value": "Merchants", "status": "flag" },
{ "label": "Canopy bay three", "value": "Design", "status": "review" },
{ "label": "Six attachments formatted", "value": "Council", "status": "signed" }
],
"statuses": ["Flag", "Review", "Signed"]
}
}
],
"componentRecipes": [
{ "primitive": "button", "intent": "Cobalt primary = the one emphasis; ink/ghost secondary; each carries a flat lemon (or cherry on destructive) register offset down-right; hover nudges the button into register (offset collapses to 0). Square, uniform black border, mono/display uppercase label, one shared height." },
{ "primitive": "card", "intent": "A flat color-plane panel: surface fill, uniform black construction-line border, ONE flat register offset (cobalt/cherry/lemon/mint) — never a soft shadow and never a single lone accent edge. A live card earns a checkerboard corner key." },
{ "primitive": "input", "intent": "Surface fill, black construction-line border, clipped pseudo-corner; cobalt inset on focus, cherry inset when invalid; mono label above." },
{ "primitive": "textarea", "intent": "Same focus/invalid rhythm; generous, square (no clip), resizable." },
{ "primitive": "select", "intent": "Desk / actor routing; clipped trigger with a custom SVG caret, clear selection contrast." },
{ "primitive": "dialog", "intent": "A formal 'Publish this packet?' notice as a registered ink panel — centered, square, generous, with a cobalt offset." },
{ "primitive": "sheet", "intent": "The proposal / archive side rail for contextual editing; surface plane, black border, no soft shadow." },
{ "primitive": "tabs", "intent": "Switch Desk / Ledger / Map room; the active tab carries a lemon underline key, never a soft pill." },
{ "primitive": "badge", "intent": "Flat status chip on a flat fill with a black border: signed (mint/success), open (lemon), review (lilac), flag (cherry)." },
{ "primitive": "separator", "intent": "Open grid space or a thin black construction line — never a coloured hairline that reads as a lone accent edge." },
{ "primitive": "checkbox", "intent": "Square box, black border; checked = cobalt fill with an off-white check; clear cobalt focus." },
{ "primitive": "switch", "intent": "Square track, black border; on = mint track with a cobalt knob slid into register." },
{ "primitive": "slider", "intent": "Black-bordered rail with a cobalt fill and a square lemon thumb." },
{ "primitive": "tooltip", "intent": "Concise body-font note on a surface plane with a black border and a small register offset." },
{ "primitive": "dropdown-menu", "intent": "Per-row actions on a surface plane; items gain a checker-key marker; a destructive 'reject' item in cherry." },
{ "primitive": "table", "intent": "The agenda ledger: mono ink header, body-font rows, recess zebra (cool, never plain white), a checkerboard ownership key beside each actor, a status badge per row, separation by zebra and construction lines." }
],
"qualityRules": {
"do": [
"Register every focal card with a flat down-right offset; mark only the live item with a checkerboard key.",
"Keep cobalt the primary action; use cherry and lemon like highlighters; keep mint and lilac as structural underlay.",
"Keep the ground a warm off-white; keep corners square; clip control pseudo-corners.",
"Show workflow ownership with a structural checker key, not colour alone."
],
"dont": [
"Use soft drop shadows, glows, blur, or glassmorphism.",
"Put a single coloured edge as the only accent on a card, or round the corners.",
"Let more than three brights dominate one surface, or scatter checker/arch fragments as confetti.",
"Default to a plain white ground."
]
}
}