Quire
Quire is a torn-paper storybook language with one mechanic: every surface is a sheet of paper laid on a second sheet that peeks out 7px to the right and 9px down.
Download DESIGN.md
Tokens and rules, ready for an agent to follow.
Preview
Typography
Each face set in this language's own words.
Quire
Quire
Quire is a torn-paper storybook language with one mechanic: every surface is a sheet of paper laid on a second sheet that peeks out 7px to the righ...
Quire is a torn-paper storybook language with one mechanic: every surface is a sheet of paper laid on a second sheet that peeks out 7px to the righ...
Specification
Philosophy
summary
Quire is a torn-paper storybook language with one mechanic: every surface is a sheet of paper laid on a second sheet that peeks out 7px to the right and 9px down. There is no border and no blur, so warmth and depth come from paper alone. Cream ground, berry, moss and apricot like highlighters, sky kept cool for information, and a calm cream sky in the hero art so the headline sits on pixels at full strength. This revision keeps the idea and removes the generic parts: the gradient wash over the hero, the mono eyebrows and tag pill, the three icon cards and the contrast failures.
It values
- child-friendly warmth without babyish simplification
- narrative worldbuilding carried by the CSS structure, not just illustration
- visible craft, paper grain, and hand-touched imperfection
- gentle emotional guidance through colour and shape
- friendly discoverability through characterful, clearly-styled affordances
It refuses
- sterile product minimalism and white-card SaaS inventories
- hard mechanical geometry or glassmorphism as the dominant motif
- grey hairline borders and accent edges
- mascot overload that replaces information design
- decoration without an idea — flourishes piled on by reflex
visual character
- Cream paper #F4E9D6 with cream-white sheets #FFFBF3, never white and never a wash
- Paste-shadow underlays in peach, sage, rose and mist, offset 7px and 9px, no blur
- Irregular apricot blob behind each section title, rotated about a degree
- Pebble buttons in moss and berry, fully round, with a 3px paper lift
- Torn-paper collage hero with a calm cream sky on the left half
- Sour Gummy display at -0.02em, Averia Serif Libre 17px, Xanh Mono only for hex and measures
lineage
Refined from WhimsiCollage Storybook. This generation is revised in place from the approved range-round-8 specimen quire-i.
Tokens
colors19
typography11
- base size
- 17px
- body font
- Averia Serif Libre
- heading font
- Sour Gummy
- mono font
- Xanh Mono
- heading weight
- 700
- heading transform
- none
- letter spacing
- -0.02em
- display line height
- 1.12
- line height
- 1.55
- scale ratio
- 1.25
- google fonts url
- https://fonts.googleapis.com/css2?family=Averia+Serif+Libre:wght@400;700&family=Sour+Gummy:wght@400;500;700&family=Xanh+Mono&display=swap
radii5
- none
- 0px
- sm
- 16px
- md
- 24px
- lg
- 24px
- full
- 9999px
shadows3
- sm
- 0 3px 0 rgba(70,58,42,0.10)
- md
- 7px 9px 0 rgba(70,58,42,0.14)
- lg
- 0 14px 28px rgba(70,58,42,0.12)
spacing2
- base
- 8px
- scale
- 4, 8, 12, 16, 24, 32, 48, 64, 96
surfaces3
- treatment
- paper
- bg pattern
- noise
- card style
- cream paper cards on a 7px right, 9px down underlay in a second paper tone, no borders, no blur
borders3
- default width
- 0px
- style
- none
- character
- no borders; depth from offset paste-shadows and paper inset rings on fields only
motion3
- duration
- 240ms
- easing
- cubic-bezier(0.22, 1, 0.36, 1)
- philosophy
- snappy lifts and tiny collage rotations, never opacity-only fades; settled state visible with no JS, hidden start-state gated behind html.anim
Rules
composition
Compose each screen as one story spread: a full-bleed collage hero, then a short run of paper patches on underlays. One panel leads and smaller patches tuck beside it. Never nest cards and never use an icon trio.
hierarchy
Hierarchy comes from scale, colour patches, and the paste-shadow elevation rather than pure typography. Headings ride irregular blob backplates; primary actions become large friendly pebble shapes; supporting facts tuck into pill ribbons.
density
Moderate density with generous breathing room — busy in detail, never cramped in layout. Texture lives inside a disciplined macro-grid with roomy gutters.
signature
Every major surface sits on a second paper sheet offset 7px right and 9px down (no blur). Titles ride an irregular apricot blob. Controls are pebbles with a 3px paper lift and a 3px moss focus ring at 3px offset. Facts replace icons: a big figure in moss, a title, one sentence.
Layout
grid
Content caps at 1180px and centres; only the hero spans the viewport. Two-column blocks use 1.1fr and .9fr with a 56px gap; fact cards use three equal minmax(0,1fr) columns with a 30px gap; every grid child has min-width:0.
whitespace
Sections sit 84px apart on desktop and 64px on phones. Titles ride a blob with 14px above the text, so a title is never stuck to a container top. Cards pad 30px 28px.
density
Generous; moderate detail inside roomy gutters.
responsive
Hero text sits on the calm cream sky of the wide plate at 900px and above, and on a tall portrait plate below it, with the nav button hidden on phones. Cards and the palette split stack to one column under 900px. Text uses clamp() with a 17px floor. Above about 1440px the content caps and centres.
breakpoints
- lg
- 1200px+
- md
- 900–1199px
- sm
- 640–899px
- xs
- below 640px
Guidance
Do
- Lay every major surface on an offset second-colour paste-shadow underlay of 7px and 9px; depth comes from paper, not borders
- Keep the hero sky calm and put the headline on it, with no gradient or scrim
- Use berry, moss and apricot like highlighters; keep sky cool for information
- Lead cards with a measured fact in a big moss figure instead of an icon
- Ride section titles on an irregular apricot blob with room above
- Style every control as a pebble with a visible 3px moss focus ring
Avoid
- Don't lay a gradient wash over hero art behind the headline
- Don't add mono uppercase eyebrow labels, tag pills or three icon cards with generic copy
- Don't use borders, hairlines or blurred drop shadows
- Don't mix radii beyond 16 for fields, 24 for surfaces and 9999 for pebbles
- Don't let muted, warning or error text fall under AA on paper
- Don't close with a generic call to action card; end on a plain statement of the idea
Imagery
pairs with
torn-cut-paper-collage
summary
Torn-paper collage plates in Decoupage: fibrous deckles, layered cut shapes and small offset underlays on warm board. The hero keeps the left half as calm cream sky so the headline reads on the picture at full strength, with no gradient or scrim over it.
subjects
- storybook landscapes
- friendly animals
- everyday objects as props
- warm domestic scenes
- meadows and lanterns
usage
One full-bleed hero per landing, painted with var(--hero-image), with a portrait variant under 900px. Keep the sky left half empty for type. Never lay a gradient wash over the art.
art style id
en-019ef726-f4e5-7052-bd9e-5ae2ab1ab703
Katagami spec file
# Quire ## Philosophy Quire is a torn-paper storybook language with one mechanic: every surface is a sheet of paper laid on a second sheet that peeks out 7px to the right and 9px down. There is no border and no blur, so warmth and depth come from paper alone. Cream ground, berry, moss and apricot like highlighters, sky kept cool for information, and a calm cream sky in the hero art so the headline sits on pixels at full strength. This revision keeps the idea and removes the generic parts: the gradient wash over the hero, the mono eyebrows and tag pill, the three icon cards and the contrast failures. ### Values - child-friendly warmth without babyish simplification - narrative worldbuilding carried by the CSS structure, not just illustration - visible craft, paper grain, and hand-touched imperfection - gentle emotional guidance through colour and shape - friendly discoverability through characterful, clearly-styled affordances ### Anti-Values - sterile product minimalism and white-card SaaS inventories - hard mechanical geometry or glassmorphism as the dominant motif - grey hairline borders and accent edges - mascot overload that replaces information design - decoration without an idea — flourishes piled on by reflex ### Visual Character - Cream paper #F4E9D6 with cream-white sheets #FFFBF3, never white and never a wash - Paste-shadow underlays in peach, sage, rose and mist, offset 7px and 9px, no blur - Irregular apricot blob behind each section title, rotated about a degree - Pebble buttons in moss and berry, fully round, with a 3px paper lift - Torn-paper collage hero with a calm cream sky on the left half - Sour Gummy display at -0.02em, Averia Serif Libre 17px, Xanh Mono only for hex and measures ### Lineage > Refined from WhimsiCollage Storybook. This generation is revised in place from the approved range-round-8 specimen quire-i. ## Tokens ### Colors | Name | Value | |------|-------| | bg | `#F4E9D6` | | surface | `#FFFBF3` | | surface_2 | `#FBF2E1` | | text | `#24332E` | | muted | `#5A5444` | | accent | `#C9365A` | | on_accent | `#FFFBF3` | | moss | `#2F6A55` | | apricot | `#F0A05E` | | sky | `#6D8FD6` | | border | `#E4D7BE` | | success | `#2F6A55` | | warning | `#8A5A00` | | error | `#B3261E` | | info | `#2F5DA8` | | underlay_peach | `#F7D4A8` | | underlay_sage | `#BBD3C2` | | underlay_rose | `#F6C0CB` | | underlay_mist | `#C3D2EF` | ### Typography - **Base Size**: 17px - **Body Font**: Averia Serif Libre - **Heading Font**: Sour Gummy - **Mono Font**: Xanh Mono - **Heading Weight**: 700 - **Heading Transform**: none - **Letter Spacing**: -0.02em - **Display Line Height**: 1.12 - **Line Height**: 1.55 - **Scale Ratio**: 1.25 - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Averia+Serif+Libre:wght@400;700&family=Sour+Gummy:wght@400;500;700&family=Xanh+Mono&display=swap ### Radii - **None**: 0px - **Sm**: 16px - **Md**: 24px - **Lg**: 24px - **Full**: 9999px ### Shadows - **Sm**: 0 3px 0 rgba(70,58,42,0.10) - **Md**: 7px 9px 0 rgba(70,58,42,0.14) - **Lg**: 0 14px 28px rgba(70,58,42,0.12) ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,48,64,96] ### Surfaces - **Treatment**: paper - **Bg Pattern**: noise - **Card Style**: cream paper cards on a 7px right, 9px down underlay in a second paper tone, no borders, no blur ### Borders - **Default Width**: 0px - **Style**: none - **Character**: no borders; depth from offset paste-shadows and paper inset rings on fields only ### Motion - **Duration**: 240ms - **Easing**: cubic-bezier(0.22, 1, 0.36, 1) - **Philosophy**: snappy lifts and tiny collage rotations, never opacity-only fades; settled state visible with no JS, hidden start-state gated behind html.anim ## Rules ### Composition Compose each screen as one story spread: a full-bleed collage hero, then a short run of paper patches on underlays. One panel leads and smaller patches tuck beside it. Never nest cards and never use an icon trio. ### Hierarchy Hierarchy comes from scale, colour patches, and the paste-shadow elevation rather than pure typography. Headings ride irregular blob backplates; primary actions become large friendly pebble shapes; supporting facts tuck into pill ribbons. ### Density Moderate density with generous breathing room — busy in detail, never cramped in layout. Texture lives inside a disciplined macro-grid with roomy gutters. ### Signature Every major surface sits on a second paper sheet offset 7px right and 9px down (no blur). Titles ride an irregular apricot blob. Controls are pebbles with a 3px paper lift and a 3px moss focus ring at 3px offset. Facts replace icons: a big figure in moss, a title, one sentence. ## Layout ### Grid Content caps at 1180px and centres; only the hero spans the viewport. Two-column blocks use 1.1fr and .9fr with a 56px gap; fact cards use three equal minmax(0,1fr) columns with a 30px gap; every grid child has min-width:0. ### Whitespace Sections sit 84px apart on desktop and 64px on phones. Titles ride a blob with 14px above the text, so a title is never stuck to a container top. Cards pad 30px 28px. ### Density Generous; moderate detail inside roomy gutters. ### Responsive Hero text sits on the calm cream sky of the wide plate at 900px and above, and on a tall portrait plate below it, with the nav button hidden on phones. Cards and the palette split stack to one column under 900px. Text uses clamp() with a 17px floor. Above about 1440px the content caps and centres. ### Breakpoints - **Lg**: 1200px+ - **Md**: 900–1199px - **Sm**: 640–899px - **Xs**: below 640px ## Guidance ### Do - Lay every major surface on an offset second-colour paste-shadow underlay of 7px and 9px; depth comes from paper, not borders - Keep the hero sky calm and put the headline on it, with no gradient or scrim - Use berry, moss and apricot like highlighters; keep sky cool for information - Lead cards with a measured fact in a big moss figure instead of an icon - Ride section titles on an irregular apricot blob with room above - Style every control as a pebble with a visible 3px moss focus ring ### Don't - Don't lay a gradient wash over hero art behind the headline - Don't add mono uppercase eyebrow labels, tag pills or three icon cards with generic copy - Don't use borders, hairlines or blurred drop shadows - Don't mix radii beyond 16 for fields, 24 for surfaces and 9999 for pebbles - Don't let muted, warning or error text fall under AA on paper - Don't close with a generic call to action card; end on a plain statement of the idea ### Accessibility Maintain AA contrast on all copy (ink on paper), use large friendly hit targets, visible moss or berry focus rings, and keep paper texture behind text low-contrast. Respect prefers-reduced-motion; the settled page renders without JavaScript. ## Imagery Direction ### Pairs With torn-cut-paper-collage ### Summary Torn-paper collage plates in Decoupage: fibrous deckles, layered cut shapes and small offset underlays on warm board. The hero keeps the left half as calm cream sky so the headline reads on the picture at full strength, with no gradient or scrim over it. ### Subjects - storybook landscapes - friendly animals - everyday objects as props - warm domestic scenes - meadows and lanterns ### Usage One full-bleed hero per landing, painted with var(--hero-image), with a portrait variant under 900px. Keep the sky left half empty for type. Never lay a gradient wash over the art. ### Art Style Id en-019ef726-f4e5-7052-bd9e-5ae2ab1ab703
DESIGN.md file
---
version: "alpha"
name: "Quire"
description: "Quire is a torn-paper storybook language with one mechanic: every surface is a sheet of paper laid on a second sheet that peeks out 7px to the right and 9px down. There is no border and no blur, so warmth and depth come from paper alone...."
colors:
bg: "#F4E9D6"
surface: "#FFFBF3"
surface_2: "#FBF2E1"
text: "#24332E"
muted: "#5A5444"
accent: "#C9365A"
on_accent: "#FFFBF3"
moss: "#2F6A55"
apricot: "#F0A05E"
sky: "#6D8FD6"
border: "#E4D7BE"
success: "#2F6A55"
warning: "#8A5A00"
error: "#B3261E"
info: "#2F5DA8"
underlay_peach: "#F7D4A8"
underlay_sage: "#BBD3C2"
underlay_rose: "#F6C0CB"
underlay_mist: "#C3D2EF"
typography:
headline-lg:
fontFamily: "Sour Gummy"
fontSize: "2.075rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Sour Gummy"
fontSize: "1.66rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "Averia Serif Libre"
fontSize: "17px"
fontWeight: 400
lineHeight: 1.55
letterSpacing: "-0.02em"
label-md:
fontFamily: "Xanh Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
none: "0px"
sm: "16px"
md: "24px"
lg: "24px"
full: "9999px"
spacing:
base: "8px"
xs: "4px"
sm: "8px"
md: "12px"
lg: "16px"
xl: "24px"
2xl: "32px"
3xl: "48px"
4xl: "64px"
step-8: "96px"
components:
color-reference-bg:
backgroundColor: "{colors.bg}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-surface_2:
backgroundColor: "{colors.surface_2}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-on_accent:
backgroundColor: "{colors.on_accent}"
color-reference-moss:
backgroundColor: "{colors.moss}"
color-reference-apricot:
backgroundColor: "{colors.apricot}"
color-reference-sky:
backgroundColor: "{colors.sky}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-success:
backgroundColor: "{colors.success}"
color-reference-warning:
backgroundColor: "{colors.warning}"
color-reference-error:
backgroundColor: "{colors.error}"
color-reference-info:
backgroundColor: "{colors.info}"
color-reference-underlay_peach:
backgroundColor: "{colors.underlay_peach}"
color-reference-underlay_sage:
backgroundColor: "{colors.underlay_sage}"
color-reference-underlay_rose:
backgroundColor: "{colors.underlay_rose}"
color-reference-underlay_mist:
backgroundColor: "{colors.underlay_mist}"
button-primary:
backgroundColor: "{colors.accent}"
textColor: "{colors.on_accent}"
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"
---
# Quire
## Overview
Quire is a torn-paper storybook language with one mechanic: every surface is a sheet of paper laid on a second sheet that peeks out 7px to the right and 9px down. There is no border and no blur, so warmth and depth come from paper alone. Cream ground, berry, moss and apricot like highlighters, sky kept cool for information, and a calm cream sky in the hero art so the headline sits on pixels at full strength. This revision keeps the idea and removes the generic parts: the gradient wash over the hero, the mono eyebrows and tag pill, the three icon cards and the contrast failures.
### Values
- child-friendly warmth without babyish simplification
- narrative worldbuilding carried by the CSS structure, not just illustration
- visible craft, paper grain, and hand-touched imperfection
- gentle emotional guidance through colour and shape
- friendly discoverability through characterful, clearly-styled affordances
### Anti-Values
- sterile product minimalism and white-card SaaS inventories
- hard mechanical geometry or glassmorphism as the dominant motif
- grey hairline borders and accent edges
- mascot overload that replaces information design
- decoration without an idea — flourishes piled on by reflex
### Visual Character
- Cream paper #F4E9D6 with cream-white sheets #FFFBF3, never white and never a wash
- Paste-shadow underlays in peach, sage, rose and mist, offset 7px and 9px, no blur
- Irregular apricot blob behind each section title, rotated about a degree
- Pebble buttons in moss and berry, fully round, with a 3px paper lift
- Torn-paper collage hero with a calm cream sky on the left half
- Sour Gummy display at -0.02em, Averia Serif Libre 17px, Xanh Mono only for hex and measures
### Lineage
> Refined from WhimsiCollage Storybook. This generation is revised in place from the approved range-round-8 specimen quire-i.
## 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 | `#F4E9D6` |
| surface | `#FFFBF3` |
| surface_2 | `#FBF2E1` |
| text | `#24332E` |
| muted | `#5A5444` |
| accent | `#C9365A` |
| on_accent | `#FFFBF3` |
| moss | `#2F6A55` |
| apricot | `#F0A05E` |
| sky | `#6D8FD6` |
| border | `#E4D7BE` |
| success | `#2F6A55` |
| warning | `#8A5A00` |
| error | `#B3261E` |
| info | `#2F5DA8` |
| underlay_peach | `#F7D4A8` |
| underlay_sage | `#BBD3C2` |
| underlay_rose | `#F6C0CB` |
| underlay_mist | `#C3D2EF` |
## Typography
Load the fonts from Google Fonts: https://fonts.googleapis.com/css2?family=Averia+Serif+Libre:wght@400;700&family=Sour+Gummy:wght@400;500;700&family=Xanh+Mono&display=swap
- **Headline-Lg**: Sour Gummy, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Sour Gummy, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: Averia Serif Libre, 17px, weight 400, line-height 1.55.
- **Label-Md**: Xanh 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`
- **Step-8**: `96px`
### Grid
Content caps at 1180px and centres; only the hero spans the viewport. Two-column blocks use 1.1fr and .9fr with a 56px gap; fact cards use three equal minmax(0,1fr) columns with a 30px gap; every grid child has min-width:0.
### Whitespace
Sections sit 84px apart on desktop and 64px on phones. Titles ride a blob with 14px above the text, so a title is never stuck to a container top. Cards pad 30px 28px.
### Density
Generous; moderate detail inside roomy gutters.
### Responsive
Hero text sits on the calm cream sky of the wide plate at 900px and above, and on a tall portrait plate below it, with the nav button hidden on phones. Cards and the palette split stack to one column under 900px. Text uses clamp() with a 17px floor. Above about 1440px the content caps and centres.
### Breakpoints
- **Lg**: 1200px+
- **Md**: 900–1199px
- **Sm**: 640–899px
- **Xs**: below 640px
## Elevation & Depth
### Shadows
- **Sm**: 0 3px 0 rgba(70,58,42,0.10)
- **Md**: 7px 9px 0 rgba(70,58,42,0.14)
- **Lg**: 0 14px 28px rgba(70,58,42,0.12)
## Shapes
### Rounded
- **None**: `0px`
- **Sm**: `16px`
- **Md**: `24px`
- **Lg**: `24px`
- **Full**: `9999px`
### Surfaces
- **Treatment**: paper
- **Bg Pattern**: noise
- **Card Style**: cream paper cards on a 7px right, 9px down underlay in a second paper tone, no borders, no blur
### Borders
- **Default Width**: 0px
- **Style**: none
- **Character**: no borders; depth from offset paste-shadows and paper inset rings on fields only
## Components
### Composition
Compose each screen as one story spread: a full-bleed collage hero, then a short run of paper patches on underlays. One panel leads and smaller patches tuck beside it. Never nest cards and never use an icon trio.
### Hierarchy
Hierarchy comes from scale, colour patches, and the paste-shadow elevation rather than pure typography. Headings ride irregular blob backplates; primary actions become large friendly pebble shapes; supporting facts tuck into pill ribbons.
### Density
Moderate density with generous breathing room — busy in detail, never cramped in layout. Texture lives inside a disciplined macro-grid with roomy gutters.
### Signature
Every major surface sits on a second paper sheet offset 7px right and 9px down (no blur). Titles ride an irregular apricot blob. Controls are pebbles with a 3px paper lift and a 3px moss focus ring at 3px offset. Facts replace icons: a big figure in moss, a title, one sentence.
## 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-01a11414-4763-7b41-b0cf-1dbbb87c1c38/DESIGN.with-shadcn.md`.
Machine-readable companions for automation: `/language/en-01a11414-4763-7b41-b0cf-1dbbb87c1c38/shadcn.json` (registry theme), `/language/en-01a11414-4763-7b41-b0cf-1dbbb87c1c38/shadcn-components.md` (component recipes) and `/language/en-01a11414-4763-7b41-b0cf-1dbbb87c1c38/shadcn-shots.json` (preview shots). The human-facing handoff is still 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 Lay every major surface on an offset second-colour paste-shadow underlay of 7px and 9px; depth comes from paper, not borders
- Do Keep the hero sky calm and put the headline on it, with no gradient or scrim
- Do Use berry, moss and apricot like highlighters; keep sky cool for information
- Do Lead cards with a measured fact in a big moss figure instead of an icon
- Do Ride section titles on an irregular apricot blob with room above
- Do Style every control as a pebble with a visible 3px moss focus ring
- Don't Don't lay a gradient wash over hero art behind the headline
- Don't Don't add mono uppercase eyebrow labels, tag pills or three icon cards with generic copy
- Don't Don't use borders, hairlines or blurred drop shadows
- Don't Don't mix radii beyond 16 for fields, 24 for surfaces and 9999 for pebbles
- Don't Don't let muted, warning or error text fall under AA on paper
- Don't Don't close with a generic call to action card; end on a plain statement of the idea
### Accessibility
Maintain AA contrast on all copy (ink on paper), use large friendly hit targets, visible moss or berry focus rings, and keep paper texture behind text low-contrast. Respect prefers-reduced-motion; the settled page renders without JavaScript.
## Imagery Direction
### Pairs With
torn-cut-paper-collage
### Summary
Torn-paper collage plates in Decoupage: fibrous deckles, layered cut shapes and small offset underlays on warm board. The hero keeps the left half as calm cream sky so the headline reads on the picture at full strength, with no gradient or scrim over it.
### Subjects
- storybook landscapes
- friendly animals
- everyday objects as props
- warm domestic scenes
- meadows and lanterns
### Usage
One full-bleed hero per landing, painted with var(--hero-image), with a portrait variant under 900px. Keep the sky left half empty for type. Never lay a gradient wash over the art.
### Art Style Id
en-019ef726-f4e5-7052-bd9e-5ae2ab1ab703
shadcn/ui theme file
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "quire",
"type": "registry:theme",
"title": "Quire shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F4E9D6",
"foreground": "#24332E",
"card": "#FFFBF3",
"card-foreground": "#24332E",
"popover": "#FFFBF3",
"popover-foreground": "#24332E",
"primary": "#24332E",
"primary-foreground": "#ffffff",
"secondary": "#f4f4f5",
"secondary-foreground": "#111111",
"muted": "#5A5444",
"muted-foreground": "#24332E",
"accent": "#C9365A",
"accent-foreground": "#ffffff",
"destructive": "#B3261E",
"border": "#E4D7BE",
"input": "#E4D7BE",
"ring": "#C9365A",
"chart-1": "#24332E",
"chart-2": "#f4f4f5",
"chart-3": "#C9365A",
"chart-4": "#2F6A55",
"chart-5": "#8A5A00",
"sidebar": "#FFFBF3",
"sidebar-foreground": "#24332E",
"sidebar-primary": "#24332E",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#2F5DA8",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#E4D7BE",
"sidebar-ring": "#C9365A",
"radius": "24px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#24332E",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#C9365A",
"accent-foreground": "#ffffff",
"destructive": "#B3261E",
"border": "#303642",
"input": "#303642",
"ring": "#C9365A",
"chart-1": "#24332E",
"chart-2": "#f4f4f5",
"chart-3": "#C9365A",
"chart-4": "#2F6A55",
"chart-5": "#8A5A00",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#24332E",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#C9365A",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#C9365A",
"radius": "24px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-01a11414-4763-7b41-b0cf-1dbbb87c1c38",
"slug": "quire",
"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",
"apricot",
"bg",
"border",
"error",
"info",
"moss",
"muted",
"on_accent",
"sky",
"success",
"surface",
"surface_2",
"text",
"underlay_mist",
"underlay_peach",
"underlay_rose",
"underlay_sage",
"warning"
],
"typography": [
"base_size",
"body_font",
"display_line_height",
"google_fonts_url",
"heading_font",
"heading_transform",
"heading_weight",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"borders": [
"character",
"default_width",
"style"
],
"motion": [
"duration",
"easing",
"philosophy"
]
}
}
}
```