back to gallerydo avoid
design language·buncho-scrapbook
Buncho Scrapbook
A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.
Download DESIGN.md
Portable DESIGN.md source of truth for most agents and apps.
the spec
specification
philosophy
summary
A techo-inspired reading-room interface for daily planning and curation. Paper surfaces, bright ink-pad labels, and pen-underlined display text replace generic SaaS chrome so the product feels hand-organized rather than machine-polished. Five bright accents — coral, honey, mint, sky, and lilac — keep categorization immediate while preserving an airy, legible notebook atmosphere.
values
Paper over chrome — surfaces should feel like layered stationery with soft paper-weight shadow, never glass, gloss, or hard plastic.Pen before bold — emphasis comes from colored underlines and smart placement, not from overusing heavy weight or oversized buttons.Bright always — category and status markers use light, cheerful stamp fills with dark ink text so the interface stays open and breathable.Print-shop typography — one expressive grotesque for display, one warm sans for reading, and one mono for metadata create a scrapbook editorial rhythm.Five colors, five roles — coral for urgency, honey for schedule, mint for completed or healthy states, sky for primary navigation and design work, lilac for research and notes.Density with air — content can be rich and list-heavy, but it always sits inside generous margins on a calm page.
anti-values
×Do not use dark-fill labels or badges with reversed white text; stamps stay bright with dark ink.×Do not use pill-heavy UI, oversized radii, or inflated soft blobs; cards stay rectangular like paper cutouts.×Do not use glass blur, animated gradients, neon glow, or mesh backgrounds; the scene should feel printed and tactile.×Do not add extra accent hues beyond the five-role color system.×Do not rely on solid panel borders for structure; use borderless stickers, perforation rules, and small tabs instead.
tokens
colors12 items
primary
#9FD0FF
secondary
#BDECCF
accent
#F5DE76
background
#FAF8F5
surface
#FFFFFF
text
#2A2D35
muted
#9B9DA3
border
#DCDDE2
error
#F3A39A
success
#BDECCF
warning
#F5DE76
info
#9FD0FF
palette8 items
- paper
- #FAF8F5
- ink
- #2A2D35
- muted
- #9B9DA3
- coral
- #F3A39A
- honey
- #F5DE76
- mint
- #BDECCF
- sky
- #9FD0FF
- lilac
- #D9C2F0
typography14 items
- heading font
- Bricolage Grotesque
- body font
- Nunito
- mono font
- Geist Mono
- base size
- 14px
- scale ratio
- 1.33
- line height
- 1.55
- letter spacing
- -0.02em
- heading weights
- 400,600,800
- body weights
- 400,500,700
- mono weights
- 400,500
- heading features
- ss02 ss04
- mono tracking
- 0.08em to 0.18em uppercase labels
- scale
- eyebrow 10-11px mono, body 13-15px sans, title 18-22px display, hero 32-56px display
- google fonts url
- https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,600;12..96,800&family=Nunito:wght@400;500;700&family=Geist+Mono:wght@400;500&display=swap
spacing2 items
- base
- 4px
- scale
- 4, 8, 12, 16, 24, 40
radii5 items
- none
- 0
- sm
- 3px
- md
- 4px
- lg
- 6px
- full
- 6px
shadows3 items
- sm
- 0 1px 2px rgba(42,45,53,0.04)
- md
- 0 1px 2px rgba(42,45,53,0.04), 0 3px 10px rgba(42,45,53,0.05)
- lg
- 0 2px 4px rgba(42,45,53,0.06), 0 6px 16px rgba(42,45,53,0.06)
surfaces3 items
- treatment
- paper
- card style
- Sticker card with translucent paper surface, no border, and two-layer paper shadow. Cards float above the notebook page without any glass blur or bevel.
- bg pattern
- dots
borders4 items
- default width
- 1px
- accent width
- 1.5px
- style
- dashed
- character
- Structure comes from perforation-like dashed dividers and tiny filed tabs, not from enclosing cards with hard borders. Labels stay borderless and bright.
motion5 items
- duration
- 220ms
- easing
- cubic-bezier(0.22,1,0.36,1)
- philosophy
- snappy
- sticker hover
- translateY(-3px) rotate(-0.4deg)
- page transitions
- none
rules
composition
Build scenes as layered stationery on a notebook page: one hero planning area, one dense reading or task block, and smaller supporting stickers around them. Cards are borderless paper stickers with tabs, stamps, and perforation lines replacing generic panel chrome.
hierarchy
Lead with Bricolage Grotesque display text, then guide the eye using pen underlines, mono eyebrows, and bright stamp metadata. Primary actions are calm rectangular paper buttons, while categories and states are surfaced through stamp color roles rather than oversized controls.
density
Content may be rich and list-heavy, but padding stays between 16px and 22px and layout breathes with generous page margins. Empty space is textured by the dot grid instead of being filled with decorative noise.
signature patterns
Sticker cards use rgba(255,255,255,0.85) paper surfaces, no border, and layered paper shadows with hover motion of translateY(-3px) rotate(-0.4deg) over 220ms cubic-bezier(0.22,1,0.36,1).Pen underlines are rendered with ::after on display text only, 3px tall with a slight rotation, 0.7 opacity, and placed just below the text baseline so they read like marker strokes.Ink pad stamps are bright accent rectangles with dark ink text, 3px radius, uppercase Geist Mono at about 10px, and no outline or rotation.Edge tabs appear as a single 36px by 8px solid accent bar attached to the top edge of each major card with a minimal bottom radius.The body background uses a fixed 24px dot-grid from radial-gradient dots at subtle opacity, while cards remain clean and pattern-free.
layout
grid
Container max-width 1280px with 16px mobile padding and 24px to 32px desktop padding. Desktop uses a two-column planning shell plus supporting multi-card grids; tablet reduces to stacked sections; mobile becomes a single-column notebook flow.
breakpoints
640px introduces denser two-column utility areas, 768px reorganizes header and side content, and 1024px restores the full two-column reading-room composition with supporting sticker clusters.
whitespace
Use generous outer margins and 24px to 40px section gaps so dense content feels curated rather than cramped. Dot-grid texture occupies page whitespace while edge tabs sit flush to card tops for crisp organization.
guidance
- Use one bright stamp color per metadata role and keep stamp text dark for every state.
- Underline display headings with a single pen stroke when they need emphasis; leave body copy clean.
- Attach one small edge tab to each major sticker card to signal category without adding borders.
- Keep cards rectangular with 3px to 6px radii and soft paper shadows instead of glossy UI chrome.
- Use Geist Mono for dates, counts, labels, and status language so metadata feels filed and cataloged.
- Separate sections with perforation-style dashed rules rather than solid dividing lines.
- Do not use dark badges, neon accents, or gradient buttons.
- Do not introduce rounded-full cards, pill toolbars, or oversized bubble inputs.
- Do not put the dot-grid inside cards; it belongs to the page background only.
- Do not add glass blur, glow, floating 3D plastics, or ambient animated effects.
- Do not use pen underlines on paragraph text or small labels.
- Do not replace stamps with outline chips; labels should stay filled and bright.
katagami spec
# Buncho Scrapbook ## Philosophy A techo-inspired reading-room interface for daily planning and curation. Paper surfaces, bright ink-pad labels, and pen-underlined display text replace generic SaaS chrome so the product feels hand-organized rather than machine-polished. Five bright accents — coral, honey, mint, sky, and lilac — keep categorization immediate while preserving an airy, legible notebook atmosphere. ### Values - Paper over chrome — surfaces should feel like layered stationery with soft paper-weight shadow, never glass, gloss, or hard plastic. - Pen before bold — emphasis comes from colored underlines and smart placement, not from overusing heavy weight or oversized buttons. - Bright always — category and status markers use light, cheerful stamp fills with dark ink text so the interface stays open and breathable. - Print-shop typography — one expressive grotesque for display, one warm sans for reading, and one mono for metadata create a scrapbook editorial rhythm. - Five colors, five roles — coral for urgency, honey for schedule, mint for completed or healthy states, sky for primary navigation and design work, lilac for research and notes. - Density with air — content can be rich and list-heavy, but it always sits inside generous margins on a calm page. ### Anti-Values - Do not use dark-fill labels or badges with reversed white text; stamps stay bright with dark ink. - Do not use pill-heavy UI, oversized radii, or inflated soft blobs; cards stay rectangular like paper cutouts. - Do not use glass blur, animated gradients, neon glow, or mesh backgrounds; the scene should feel printed and tactile. - Do not add extra accent hues beyond the five-role color system. - Do not rely on solid panel borders for structure; use borderless stickers, perforation rules, and small tabs instead. ### Visual Character - Sticker cards use translucent paper surfaces around rgba(255,255,255,0.85) with no visible border, layered paper shadows, and a hover motion of translateY(-3px) rotate(-0.4deg) over 220ms cubic-bezier(0.22,1,0.36,1). - The page body carries a fixed 24px dot-grid made from a radial-gradient with low-opacity gray dots so the notebook texture lives behind the interface and never inside cards. - Display headlines get thick 3px pen underlines built with ::after pseudo-elements, slightly rotated and partially transparent, so emphasis feels hand-marked rather than boxed. - Ink-pad stamps are bright solid-fill labels with dark ink text, 3px radius, uppercase Geist Mono metadata styling, and no outline, border, rotation, or dark fill treatment. - Each primary card gets a single edge tab mounted on the top edge as a 36px by 8px accent bar with a tiny radius, giving every sticker a filed-and-categorized stationery cue. ## Tokens ### Colors | Name | Value | |------|-------| | primary | `#9FD0FF` | | secondary | `#BDECCF` | | accent | `#F5DE76` | | background | `#FAF8F5` | | surface | `#FFFFFF` | | text | `#2A2D35` | | muted | `#9B9DA3` | | border | `#DCDDE2` | | error | `#F3A39A` | | success | `#BDECCF` | | warning | `#F5DE76` | | info | `#9FD0FF` | ### Palette - **Paper**: #FAF8F5 - **Ink**: #2A2D35 - **Muted**: #9B9DA3 - **Coral**: #F3A39A - **Honey**: #F5DE76 - **Mint**: #BDECCF - **Sky**: #9FD0FF - **Lilac**: #D9C2F0 ### Typography - **Heading Font**: Bricolage Grotesque - **Body Font**: Nunito - **Mono Font**: Geist Mono - **Base Size**: 14px - **Scale Ratio**: 1.33 - **Line Height**: 1.55 - **Letter Spacing**: -0.02em - **Heading Weights**: 400,600,800 - **Body Weights**: 400,500,700 - **Mono Weights**: 400,500 - **Heading Features**: ss02 ss04 - **Mono Tracking**: 0.08em to 0.18em uppercase labels - **Scale**: eyebrow 10-11px mono, body 13-15px sans, title 18-22px display, hero 32-56px display - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,600;12..96,800&family=Nunito:wght@400;500;700&family=Geist+Mono:wght@400;500&display=swap ### Spacing - **Base**: 4px - **Scale**: [4,8,12,16,24,40] ### Radii - **None**: 0 - **Sm**: 3px - **Md**: 4px - **Lg**: 6px - **Full**: 6px ### Shadows - **Sm**: 0 1px 2px rgba(42,45,53,0.04) - **Md**: 0 1px 2px rgba(42,45,53,0.04), 0 3px 10px rgba(42,45,53,0.05) - **Lg**: 0 2px 4px rgba(42,45,53,0.06), 0 6px 16px rgba(42,45,53,0.06) ### Surfaces - **Treatment**: paper - **Card Style**: Sticker card with translucent paper surface, no border, and two-layer paper shadow. Cards float above the notebook page without any glass blur or bevel. - **Bg Pattern**: dots ### Borders - **Default Width**: 1px - **Accent Width**: 1.5px - **Style**: dashed - **Character**: Structure comes from perforation-like dashed dividers and tiny filed tabs, not from enclosing cards with hard borders. Labels stay borderless and bright. ### Motion - **Duration**: 220ms - **Easing**: cubic-bezier(0.22,1,0.36,1) - **Philosophy**: snappy - **Sticker Hover**: translateY(-3px) rotate(-0.4deg) - **Page Transitions**: none ## Rules ### Composition Build scenes as layered stationery on a notebook page: one hero planning area, one dense reading or task block, and smaller supporting stickers around them. Cards are borderless paper stickers with tabs, stamps, and perforation lines replacing generic panel chrome. ### Hierarchy Lead with Bricolage Grotesque display text, then guide the eye using pen underlines, mono eyebrows, and bright stamp metadata. Primary actions are calm rectangular paper buttons, while categories and states are surfaced through stamp color roles rather than oversized controls. ### Density Content may be rich and list-heavy, but padding stays between 16px and 22px and layout breathes with generous page margins. Empty space is textured by the dot grid instead of being filled with decorative noise. ### Signature Patterns - Sticker cards use rgba(255,255,255,0.85) paper surfaces, no border, and layered paper shadows with hover motion of translateY(-3px) rotate(-0.4deg) over 220ms cubic-bezier(0.22,1,0.36,1). - Pen underlines are rendered with ::after on display text only, 3px tall with a slight rotation, 0.7 opacity, and placed just below the text baseline so they read like marker strokes. - Ink pad stamps are bright accent rectangles with dark ink text, 3px radius, uppercase Geist Mono at about 10px, and no outline or rotation. - Edge tabs appear as a single 36px by 8px solid accent bar attached to the top edge of each major card with a minimal bottom radius. - The body background uses a fixed 24px dot-grid from radial-gradient dots at subtle opacity, while cards remain clean and pattern-free. ## Layout ### Grid Container max-width 1280px with 16px mobile padding and 24px to 32px desktop padding. Desktop uses a two-column planning shell plus supporting multi-card grids; tablet reduces to stacked sections; mobile becomes a single-column notebook flow. ### Breakpoints 640px introduces denser two-column utility areas, 768px reorganizes header and side content, and 1024px restores the full two-column reading-room composition with supporting sticker clusters. ### Whitespace Use generous outer margins and 24px to 40px section gaps so dense content feels curated rather than cramped. Dot-grid texture occupies page whitespace while edge tabs sit flush to card tops for crisp organization. ## Guidance ### Do - Use one bright stamp color per metadata role and keep stamp text dark for every state. - Underline display headings with a single pen stroke when they need emphasis; leave body copy clean. - Attach one small edge tab to each major sticker card to signal category without adding borders. - Keep cards rectangular with 3px to 6px radii and soft paper shadows instead of glossy UI chrome. - Use Geist Mono for dates, counts, labels, and status language so metadata feels filed and cataloged. - Separate sections with perforation-style dashed rules rather than solid dividing lines. ### Don't - Do not use dark badges, neon accents, or gradient buttons. - Do not introduce rounded-full cards, pill toolbars, or oversized bubble inputs. - Do not put the dot-grid inside cards; it belongs to the page background only. - Do not add glass blur, glow, floating 3D plastics, or ambient animated effects. - Do not use pen underlines on paragraph text or small labels. - Do not replace stamps with outline chips; labels should stay filled and bright. ### Usage Context Best for planner dashboards, reading logs, project scrapbooks, research notebooks, and daily curation tools where categories, dates, and states benefit from tactile color coding. ### Accessibility Bright stamps always use dark ink text for strong contrast, underlines are decorative rather than required for comprehension, focus states are clearly visible, and interactive controls maintain touch-friendly sizing across mobile layouts.
DESIGN.md
---
version: "alpha"
name: "Buncho Scrapbook"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
primary: "#9FD0FF"
secondary: "#BDECCF"
accent: "#F5DE76"
background: "#FAF8F5"
surface: "#FFFFFF"
text: "#2A2D35"
muted: "#9B9DA3"
border: "#DCDDE2"
error: "#F3A39A"
success: "#BDECCF"
warning: "#F5DE76"
info: "#9FD0FF"
typography:
headline-lg:
fontFamily: "Bricolage Grotesque"
fontSize: "2.059rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Bricolage Grotesque"
fontSize: "1.548rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "Nunito"
fontSize: "14px"
fontWeight: 400
lineHeight: 1.55
letterSpacing: "-0.02em"
label-md:
fontFamily: "Geist Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
none: "0px"
sm: "3px"
md: "4px"
lg: "6px"
full: "6px"
spacing:
base: "4px"
xs: "4px"
sm: "8px"
md: "12px"
lg: "16px"
xl: "24px"
2xl: "40px"
components:
color-reference-primary:
backgroundColor: "{colors.primary}"
color-reference-secondary:
backgroundColor: "{colors.secondary}"
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-background:
backgroundColor: "{colors.background}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-error:
backgroundColor: "{colors.error}"
color-reference-success:
backgroundColor: "{colors.success}"
color-reference-warning:
backgroundColor: "{colors.warning}"
color-reference-info:
backgroundColor: "{colors.info}"
button-primary:
backgroundColor: "{colors.primary}"
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"
---
# Buncho Scrapbook
## Overview
A techo-inspired reading-room interface for daily planning and curation. Paper surfaces, bright ink-pad labels, and pen-underlined display text replace generic SaaS chrome so the product feels hand-organized rather than machine-polished. Five bright accents — coral, honey, mint, sky, and lilac — keep categorization immediate while preserving an airy, legible notebook atmosphere.
### Values
- Paper over chrome — surfaces should feel like layered stationery with soft paper-weight shadow, never glass, gloss, or hard plastic.
- Pen before bold — emphasis comes from colored underlines and smart placement, not from overusing heavy weight or oversized buttons.
- Bright always — category and status markers use light, cheerful stamp fills with dark ink text so the interface stays open and breathable.
- Print-shop typography — one expressive grotesque for display, one warm sans for reading, and one mono for metadata create a scrapbook editorial rhythm.
- Five colors, five roles — coral for urgency, honey for schedule, mint for completed or healthy states, sky for primary navigation and design work, lilac for research and notes.
- Density with air — content can be rich and list-heavy, but it always sits inside generous margins on a calm page.
### Anti-Values
- Do not use dark-fill labels or badges with reversed white text; stamps stay bright with dark ink.
- Do not use pill-heavy UI, oversized radii, or inflated soft blobs; cards stay rectangular like paper cutouts.
- Do not use glass blur, animated gradients, neon glow, or mesh backgrounds; the scene should feel printed and tactile.
- Do not add extra accent hues beyond the five-role color system.
- Do not rely on solid panel borders for structure; use borderless stickers, perforation rules, and small tabs instead.
### Visual Character
- Sticker cards use translucent paper surfaces around rgba(255,255,255,0.85) with no visible border, layered paper shadows, and a hover motion of translateY(-3px) rotate(-0.4deg) over 220ms cubic-bezier(0.22,1,0.36,1).
- The page body carries a fixed 24px dot-grid made from a radial-gradient with low-opacity gray dots so the notebook texture lives behind the interface and never inside cards.
- Display headlines get thick 3px pen underlines built with ::after pseudo-elements, slightly rotated and partially transparent, so emphasis feels hand-marked rather than boxed.
- Ink-pad stamps are bright solid-fill labels with dark ink text, 3px radius, uppercase Geist Mono metadata styling, and no outline, border, rotation, or dark fill treatment.
- Each primary card gets a single edge tab mounted on the top edge as a 36px by 8px accent bar with a tiny radius, giving every sticker a filed-and-categorized stationery cue.
## Colors
Use the YAML color tokens as the normative palette. The prose below names the roles agents should preserve when generating UI.
| Token | Value |
|-------|-------|
| primary | `#9FD0FF` |
| secondary | `#BDECCF` |
| accent | `#F5DE76` |
| background | `#FAF8F5` |
| surface | `#FFFFFF` |
| text | `#2A2D35` |
| muted | `#9B9DA3` |
| border | `#DCDDE2` |
| error | `#F3A39A` |
| success | `#BDECCF` |
| warning | `#F5DE76` |
| info | `#9FD0FF` |
## Typography
- **Headline-Lg**: Bricolage Grotesque, 2.059rem, weight 700, line-height 1.1.
- **Headline-Md**: Bricolage Grotesque, 1.548rem, weight 600, line-height 1.15.
- **Body-Md**: Nunito, 14px, weight 400, line-height 1.55.
- **Label-Md**: Geist Mono, 0.75rem, weight 600, line-height 1.
## Layout
### Spacing Tokens
- **Base**: `4px`
- **Xs**: `4px`
- **Sm**: `8px`
- **Md**: `12px`
- **Lg**: `16px`
- **Xl**: `24px`
- **2xl**: `40px`
### Grid
Container max-width 1280px with 16px mobile padding and 24px to 32px desktop padding. Desktop uses a two-column planning shell plus supporting multi-card grids; tablet reduces to stacked sections; mobile becomes a single-column notebook flow.
### Breakpoints
640px introduces denser two-column utility areas, 768px reorganizes header and side content, and 1024px restores the full two-column reading-room composition with supporting sticker clusters.
### Whitespace
Use generous outer margins and 24px to 40px section gaps so dense content feels curated rather than cramped. Dot-grid texture occupies page whitespace while edge tabs sit flush to card tops for crisp organization.
## Elevation & Depth
### Shadows
- **Sm**: 0 1px 2px rgba(42,45,53,0.04)
- **Md**: 0 1px 2px rgba(42,45,53,0.04), 0 3px 10px rgba(42,45,53,0.05)
- **Lg**: 0 2px 4px rgba(42,45,53,0.06), 0 6px 16px rgba(42,45,53,0.06)
## Shapes
### Rounded
- **None**: `0px`
- **Sm**: `3px`
- **Md**: `4px`
- **Lg**: `6px`
- **Full**: `6px`
### Surfaces
- **Treatment**: paper
- **Card Style**: Sticker card with translucent paper surface, no border, and two-layer paper shadow. Cards float above the notebook page without any glass blur or bevel.
- **Bg Pattern**: dots
### Borders
- **Default Width**: 1px
- **Accent Width**: 1.5px
- **Style**: dashed
- **Character**: Structure comes from perforation-like dashed dividers and tiny filed tabs, not from enclosing cards with hard borders. Labels stay borderless and bright.
## Components
### Composition
Build scenes as layered stationery on a notebook page: one hero planning area, one dense reading or task block, and smaller supporting stickers around them. Cards are borderless paper stickers with tabs, stamps, and perforation lines replacing generic panel chrome.
### Hierarchy
Lead with Bricolage Grotesque display text, then guide the eye using pen underlines, mono eyebrows, and bright stamp metadata. Primary actions are calm rectangular paper buttons, while categories and states are surfaced through stamp color roles rather than oversized controls.
### Density
Content may be rich and list-heavy, but padding stays between 16px and 22px and layout breathes with generous page margins. Empty space is textured by the dot grid instead of being filled with decorative noise.
### Signature Patterns
- Sticker cards use rgba(255,255,255,0.85) paper surfaces, no border, and layered paper shadows with hover motion of translateY(-3px) rotate(-0.4deg) over 220ms cubic-bezier(0.22,1,0.36,1).
- Pen underlines are rendered with ::after on display text only, 3px tall with a slight rotation, 0.7 opacity, and placed just below the text baseline so they read like marker strokes.
- Ink pad stamps are bright accent rectangles with dark ink text, 3px radius, uppercase Geist Mono at about 10px, and no outline or rotation.
- Edge tabs appear as a single 36px by 8px solid accent bar attached to the top edge of each major card with a minimal bottom radius.
- The body background uses a fixed 24px dot-grid from radial-gradient dots at subtle opacity, while cards remain clean and pattern-free.
## 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-019daf83-7e7e-7d63-b7c0-aebedfc5a59b/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 Use one bright stamp color per metadata role and keep stamp text dark for every state.
- Do Underline display headings with a single pen stroke when they need emphasis; leave body copy clean.
- Do Attach one small edge tab to each major sticker card to signal category without adding borders.
- Do Keep cards rectangular with 3px to 6px radii and soft paper shadows instead of glossy UI chrome.
- Do Use Geist Mono for dates, counts, labels, and status language so metadata feels filed and cataloged.
- Do Separate sections with perforation-style dashed rules rather than solid dividing lines.
- Don't Do not use dark badges, neon accents, or gradient buttons.
- Don't Do not introduce rounded-full cards, pill toolbars, or oversized bubble inputs.
- Don't Do not put the dot-grid inside cards; it belongs to the page background only.
- Don't Do not add glass blur, glow, floating 3D plastics, or ambient animated effects.
- Don't Do not use pen underlines on paragraph text or small labels.
- Don't Do not replace stamps with outline chips; labels should stay filled and bright.
### Usage Context
Best for planner dashboards, reading logs, project scrapbooks, research notebooks, and daily curation tools where categories, dates, and states benefit from tactile color coding.
### Accessibility
Bright stamps always use dark ink text for strong contrast, underlines are decorative rather than required for comprehension, focus states are clearly visible, and interactive controls maintain touch-friendly sizing across mobile layouts.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "buncho-scrapbook",
"type": "registry:theme",
"title": "Buncho Scrapbook shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#FAF8F5",
"foreground": "#2A2D35",
"card": "#FFFFFF",
"card-foreground": "#2A2D35",
"popover": "#FFFFFF",
"popover-foreground": "#2A2D35",
"primary": "#9FD0FF",
"primary-foreground": "#111111",
"secondary": "#BDECCF",
"secondary-foreground": "#111111",
"muted": "#9B9DA3",
"muted-foreground": "#2A2D35",
"accent": "#F5DE76",
"accent-foreground": "#111111",
"destructive": "#F3A39A",
"border": "#DCDDE2",
"input": "#DCDDE2",
"ring": "#F5DE76",
"chart-1": "#9FD0FF",
"chart-2": "#BDECCF",
"chart-3": "#F5DE76",
"chart-4": "#BDECCF",
"chart-5": "#F5DE76",
"sidebar": "#FFFFFF",
"sidebar-foreground": "#2A2D35",
"sidebar-primary": "#9FD0FF",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#9FD0FF",
"sidebar-accent-foreground": "#111111",
"sidebar-border": "#DCDDE2",
"sidebar-ring": "#F5DE76",
"radius": "4px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#9FD0FF",
"primary-foreground": "#111111",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#F5DE76",
"accent-foreground": "#111111",
"destructive": "#F3A39A",
"border": "#303642",
"input": "#303642",
"ring": "#F5DE76",
"chart-1": "#9FD0FF",
"chart-2": "#BDECCF",
"chart-3": "#F5DE76",
"chart-4": "#BDECCF",
"chart-5": "#F5DE76",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#9FD0FF",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#F5DE76",
"sidebar-accent-foreground": "#111111",
"sidebar-border": "#303642",
"sidebar-ring": "#F5DE76",
"radius": "4px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019daf83-7e7e-7d63-b7c0-aebedfc5a59b",
"slug": "buncho-scrapbook",
"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",
"background",
"border",
"error",
"info",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"palette": [
"coral",
"honey",
"ink",
"lilac",
"mint",
"muted",
"paper",
"sky"
],
"typography": [
"base_size",
"body_font",
"body_weights",
"google_fonts_url",
"heading_features",
"heading_font",
"heading_weights",
"letter_spacing",
"line_height",
"mono_font",
"mono_tracking",
"mono_weights",
"scale",
"scale_ratio"
],
"spacing": [
"base",
"scale"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"motion": [
"duration",
"easing",
"page_transitions",
"philosophy",
"sticker_hover"
]
}
}
}
```in the wild
embodiments
the full element showcase
embodiment · buncho-scrapbook
DESIGN.md
at a glance
Typography
headline-lgBricolage Grotesque · 33px · 700
The quick brown fox jumps
headline-mdBricolage Grotesque · 25px · 600
The quick brown fox jumps
body-mdNunito · 14px · 400
The quick brown fox jumps
label-mdGeist Mono · 12px · 600
The quick brown fox jumps
Components
New
Card title
Components rendered with this language’s tokens — colors, type, and rounded corners as specified.
Spacing
- base4px
- xs4px
- sm8px
- md12px
- lg16px
- xl24px
- 2xl40px
Shape
none0px
sm3px
md4px
lg6px
full6px
shadcn/ui
implementation kit
recommendedcompatibility fallback
DESIGN.md with shadcn
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.
advanced implementation filesoptional machine-readable theme, CSS, TSX starter, recipes, and preview contract
shadcn add
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu tabletheme css
:root {
--background: #FAF8F5;
--foreground: #2A2D35;
--card: #FFFFFF;
--card-foreground: #2A2D35;
--popover: #FFFFFF;
--popover-foreground: #2A2D35;
--primary: #9FD0FF;
--primary-foreground: #111111;
--secondary: #BDECCF;
--secondary-foreground: #111111;
--muted: #9B9DA3;
--muted-foreground: #2A2D35;
--accent: #F5DE76;
--accent-foreground: #111111;
--destructive: #F3A39A;
--border: #DCDDE2;
--input: #DCDDE2;
--ring: #F5DE76;
--chart-1: #9FD0FF;
--chart-2: #BDECCF;
--chart-3: #F5DE76;
--chart-4: #BDECCF;
--chart-5: #F5DE76;
--sidebar: #FFFFFF;
--sidebar-foreground: #2A2D35;
--sidebar-primary: #9FD0FF;
--sidebar-primary-foreground: #111111;
--sidebar-accent: #9FD0FF;
--sidebar-accent-foreground: #111111;
--sidebar-border: #DCDDE2;
--sidebar-ring: #F5DE76;
--radius: 4px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #9FD0FF;
--primary-foreground: #111111;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #F5DE76;
--accent-foreground: #111111;
--destructive: #F3A39A;
--border: #303642;
--input: #303642;
--ring: #F5DE76;
--chart-1: #9FD0FF;
--chart-2: #BDECCF;
--chart-3: #F5DE76;
--chart-4: #BDECCF;
--chart-5: #F5DE76;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #9FD0FF;
--sidebar-primary-foreground: #111111;
--sidebar-accent: #F5DE76;
--sidebar-accent-foreground: #111111;
--sidebar-border: #303642;
--sidebar-ring: #F5DE76;
--radius: 4px;
}
tsx starter
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 BunchoScrapbookShadcnKit() {
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">Buncho Scrapbook</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>
);
}
theme JSONcompatibility fallback
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "buncho-scrapbook",
"type": "registry:theme",
"title": "Buncho Scrapbook shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#FAF8F5",
"foreground": "#2A2D35",
"card": "#FFFFFF",
"card-foreground": "#2A2D35",
"popover": "#FFFFFF",
"popover-foreground": "#2A2D35",
"primary": "#9FD0FF",
"primary-foreground": "#111111",
"secondary": "#BDECCF",
"secondary-foreground": "#111111",
"muted": "#9B9DA3",
"muted-foreground": "#2A2D35",
"accent": "#F5DE76",
"accent-foreground": "#111111",
"destructive": "#F3A39A",
"border": "#DCDDE2",
"input": "#DCDDE2",
"ring": "#F5DE76",
"chart-1": "#9FD0FF",
"chart-2": "#BDECCF",
"chart-3": "#F5DE76",
"chart-4": "#BDECCF",
"chart-5": "#F5DE76",
"sidebar": "#FFFFFF",
"sidebar-foreground": "#2A2D35",
"sidebar-primary": "#9FD0FF",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#9FD0FF",
"sidebar-accent-foreground": "#111111",
"sidebar-border": "#DCDDE2",
"sidebar-ring": "#F5DE76",
"radius": "4px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#9FD0FF",
"primary-foreground": "#111111",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#F5DE76",
"accent-foreground": "#111111",
"destructive": "#F3A39A",
"border": "#303642",
"input": "#303642",
"ring": "#F5DE76",
"chart-1": "#9FD0FF",
"chart-2": "#BDECCF",
"chart-3": "#F5DE76",
"chart-4": "#BDECCF",
"chart-5": "#F5DE76",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#9FD0FF",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#F5DE76",
"sidebar-accent-foreground": "#111111",
"sidebar-border": "#303642",
"sidebar-ring": "#F5DE76",
"radius": "4px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019daf83-7e7e-7d63-b7c0-aebedfc5a59b",
"slug": "buncho-scrapbook",
"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",
"background",
"border",
"error",
"info",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"palette": [
"coral",
"honey",
"ink",
"lilac",
"mint",
"muted",
"paper",
"sky"
],
"typography": [
"base_size",
"body_font",
"body_weights",
"google_fonts_url",
"heading_features",
"heading_font",
"heading_weights",
"letter_spacing",
"line_height",
"mono_font",
"mono_tracking",
"mono_weights",
"scale",
"scale_ratio"
],
"spacing": [
"base",
"scale"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"motion": [
"duration",
"easing",
"page_transitions",
"philosophy",
"sticker_hover"
]
}
}
}
component recipescompatibility fallback
# Buncho Scrapbook shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019daf83-7e7e-7d63-b7c0-aebedfc5a59b`
Slug: `buncho-scrapbook`
## Intent
A techo-inspired reading-room interface for daily planning and curation. Paper surfaces, bright ink-pad labels, and pen-underlined display text replace generic SaaS chrome so the product feels hand-organized rather than machine-polished. Five bright accents — coral, honey, mint, sky, and lilac — keep categorization immediate while preserving an airy, legible notebook atmosphere.
## 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:
{
"primary": "#9FD0FF",
"secondary": "#BDECCF",
"accent": "#F5DE76",
"background": "#FAF8F5",
"surface": "#FFFFFF",
"text": "#2A2D35",
"muted": "#9B9DA3",
"border": "#DCDDE2",
"error": "#F3A39A",
"success": "#BDECCF",
"warning": "#F5DE76",
"info": "#9FD0FF"
}
Typography:
{
"heading_font": "Bricolage Grotesque",
"body_font": "Nunito",
"mono_font": "Geist Mono",
"base_size": "14px",
"scale_ratio": 1.33,
"line_height": 1.55,
"letter_spacing": "-0.02em",
"heading_weights": "400,600,800",
"body_weights": "400,500,700",
"mono_weights": "400,500",
"heading_features": "ss02 ss04",
"mono_tracking": "0.08em to 0.18em uppercase labels",
"scale": "eyebrow 10-11px mono, body 13-15px sans, title 18-22px display, hero 32-56px display",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,400;12..96,600;12..96,800&family=Nunito:wght@400;500;700&family=Geist+Mono:wght@400;500&display=swap"
}
## Visual character to preserve
- Sticker cards use translucent paper surfaces around rgba(255,255,255,0.85) with no visible border, layered paper shadows, and a hover motion of translateY(-3px) rotate(-0.4deg) over 220ms cubic-bezier(0.22,1,0.36,1).
- The page body carries a fixed 24px dot-grid made from a radial-gradient with low-opacity gray dots so the notebook texture lives behind the interface and never inside cards.
- Display headlines get thick 3px pen underlines built with ::after pseudo-elements, slightly rotated and partially transparent, so emphasis feels hand-marked rather than boxed.
- Ink-pad stamps are bright solid-fill labels with dark ink text, 3px radius, uppercase Geist Mono metadata styling, and no outline, border, rotation, or dark fill treatment.
- Each primary card gets a single edge tab mounted on the top edge as a 36px by 8px accent bar with a tiny radius, giving every sticker a filed-and-categorized stationery cue.
## ShadSync visual profile
{
"family": "paper-collage",
"material": "paper",
"contour": "default",
"border": "dashed",
"underlay": true,
"grain": true,
"stickerBadges": true,
"motion": "lift-rotate",
"density": "balanced",
"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/buncho-scrapbook/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: Use one bright stamp color per metadata role and keep stamp text dark for every state.; Underline display headings with a single pen stroke when they need emphasis; leave body copy clean.; Attach one small edge tab to each major sticker card to signal category without adding borders.; Keep cards rectangular with 3px to 6px radii and soft paper shadows instead of glossy UI chrome.; Use Geist Mono for dates, counts, labels, and status language so metadata feels filed and cataloged.; Separate sections with perforation-style dashed rules rather than solid dividing lines.
- Do not: Do not use dark badges, neon accents, or gradient buttons.; Do not introduce rounded-full cards, pill toolbars, or oversized bubble inputs.; Do not put the dot-grid inside cards; it belongs to the page background only.; Do not add glass blur, glow, floating 3D plastics, or ambient animated effects.; Do not use pen underlines on paragraph text or small labels.; Do not replace stamps with outline chips; labels should stay filled and bright.
## 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 BunchoScrapbookShadcnKit() {
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">Buncho Scrapbook</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": "Container max-width 1280px with 16px mobile padding and 24px to 32px desktop padding. Desktop uses a two-column planning shell plus supporting multi-card grids; tablet reduces to stacked sections; mobile becomes a single-column notebook flow.",
"breakpoints": "640px introduces denser two-column utility areas, 768px reorganizes header and side content, and 1024px restores the full two-column reading-room composition with supporting sticker clusters.",
"whitespace": "Use generous outer margins and 24px to 40px section gaps so dense content feels curated rather than cramped. Dot-grid texture occupies page whitespace while edge tabs sit flush to card tops for crisp organization."
}
preview shotscompatibility fallback
{
"artifact": "katagami:shadcn-preview-shots",
"version": "preview-shots-v1",
"generator": "katagami-ui-compatibility-projection",
"generatedBy": "katagami-ui-projection",
"requiresVisualProfile": true,
"schema": "katagami:shadcn-preview-shots/renderable-v1",
"renderable": true,
"language": {
"id": "en-019daf83-7e7e-7d63-b7c0-aebedfc5a59b",
"name": "Buncho Scrapbook",
"slug": "buncho-scrapbook"
},
"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": [
"Sticker cards use translucent paper surfaces around rgba(255,255,255,0.85) with no visible border, layered paper shadows, and a hover motion of translateY(-3px) rotate(-0.4deg) over 220ms cubic-bezier(0.22,1,0.36,1).",
"The page body carries a fixed 24px dot-grid made from a radial-gradient with low-opacity gray dots so the notebook texture lives behind the interface and never inside cards.",
"Display headlines get thick 3px pen underlines built with ::after pseudo-elements, slightly rotated and partially transparent, so emphasis feels hand-marked rather than boxed.",
"Ink-pad stamps are bright solid-fill labels with dark ink text, 3px radius, uppercase Geist Mono metadata styling, and no outline, border, rotation, or dark fill treatment.",
"Each primary card gets a single edge tab mounted on the top edge as a 36px by 8px accent bar with a tiny radius, giving every sticker a filed-and-categorized stationery cue."
],
"visualProfile": {
"family": "paper-collage",
"material": "paper",
"contour": "default",
"border": "solid",
"underlay": true,
"grain": true,
"stickerBadges": true,
"motion": "lift-rotate",
"density": "balanced",
"accents": [
"primary",
"accent",
"secondary",
"muted"
]
},
"shots": [
{
"id": "application-shell",
"title": "Application shell",
"viewport": "desktop",
"primitives": [
"button",
"card",
"input",
"select",
"tabs",
"badge",
"separator",
"table"
],
"composition": "A real product workspace with navigation, summary cards, filtering controls, and one dense content region.",
"mustShow": [
"primary and secondary actions",
"card hierarchy",
"filterable state",
"table or list density"
],
"avoid": [
"component inventory walls",
"placeholder-only content",
"generic rounded SaaS chrome"
],
"scene": {
"eyebrow": "workspace spread",
"headline": "Buncho Scrapbook launch room",
"description": "A product team workspace where navigation, filters, metrics, and dense rows carry the language's visible structure.",
"primaryAction": "Apply theme",
"secondaryAction": "Review states",
"stats": [
{
"label": "components",
"value": "16",
"tone": "accent"
},
{
"label": "states",
"value": "ready"
},
{
"label": "density",
"value": "balanced",
"tone": "warning"
}
],
"rows": [
{
"label": "Primary flow",
"value": "mapped",
"status": "active"
},
{
"label": "Token coverage",
"value": "semantic",
"status": "synced"
},
{
"label": "Responsive proof",
"value": "queued",
"status": "review"
}
],
"statuses": [
"Active",
"Synced",
"Draft"
]
}
},
{
"id": "detail-editor",
"title": "Detail editor",
"viewport": "tablet",
"primitives": [
"button",
"card",
"input",
"textarea",
"select",
"checkbox",
"switch",
"slider",
"dialog",
"sheet"
],
"composition": "A focused editing flow with form fields, validation, confirmation, and a contextual side panel.",
"mustShow": [
"focus ring",
"error or destructive state",
"dialog or sheet treatment",
"written guidance content"
],
"avoid": [
"unstyled browser controls",
"floating cards inside cards",
"missing labels"
],
"scene": {
"eyebrow": "editing flow",
"headline": "Language recipe editor",
"description": "A focused form proving labels, validation, toggles, panel rhythm, and action hierarchy.",
"primaryAction": "Save recipe",
"secondaryAction": "Open sheet",
"fields": [
{
"label": "Component family",
"value": "Narrative cards"
},
{
"label": "State treatment",
"value": "Visible focus + validation"
},
{
"label": "Motion",
"value": "Small lift, no opacity-only fade"
}
],
"statuses": [
"Focus",
"Invalid",
"Confirmed"
]
}
},
{
"id": "data-operations",
"title": "Data operations",
"viewport": "mobile",
"primitives": [
"button",
"tabs",
"badge",
"dropdown-menu",
"table",
"tooltip",
"separator"
],
"composition": "A compact operational view proving row rhythm, stacked actions, menu states, badges, and empty/destructive states.",
"mustShow": [
"responsive reflow",
"dense row styling",
"menu affordance",
"status badge system"
],
"avoid": [
"desktop-only tables",
"text overflow",
"default shadcn spacing without Katagami character"
],
"scene": {
"eyebrow": "operations",
"headline": "Compact review queue",
"description": "A narrow viewport scene with rows, menus, tooltips, badges, and destructive affordances.",
"primaryAction": "Resolve",
"secondaryAction": "Filter",
"rows": [
{
"label": "Button hierarchy",
"value": "approved",
"status": "ok"
},
{
"label": "Table rhythm",
"value": "needs pass",
"status": "watch"
},
{
"label": "Empty state",
"value": "designed",
"status": "done"
}
],
"statuses": [
"Queued",
"Blocked",
"Done"
]
}
}
],
"componentRecipes": [
{
"primitive": "button",
"intent": "Prove action hierarchy, focus, disabled, and destructive states."
},
{
"primitive": "card",
"intent": "Carry the language surface, border, elevation, and density rules."
},
{
"primitive": "input",
"intent": "Show labels, focus rings, validation, and spacing rhythm."
},
{
"primitive": "textarea",
"intent": "Show longer guidance, validation copy, and writing density."
},
{
"primitive": "select",
"intent": "Show filtering, selection contrast, and menu trigger styling."
},
{
"primitive": "dialog",
"intent": "Show centered decision states and overlay treatment."
},
{
"primitive": "sheet",
"intent": "Show contextual side panels and responsive editing."
},
{
"primitive": "tabs",
"intent": "Show navigational structure and active/inactive contrast."
},
{
"primitive": "badge",
"intent": "Show compact status vocabulary and semantic colors."
},
{
"primitive": "separator",
"intent": "Show section rhythm without generic gray dividers."
},
{
"primitive": "checkbox",
"intent": "Show binary selection with visible focus and checked states."
},
{
"primitive": "switch",
"intent": "Show settings toggles and on/off contrast."
},
{
"primitive": "slider",
"intent": "Show numeric adjustment with track/thumb styling."
},
{
"primitive": "tooltip",
"intent": "Show concise explanation styling above compact controls."
},
{
"primitive": "dropdown-menu",
"intent": "Show action menus, destructive items, and grouped choices."
},
{
"primitive": "table",
"intent": "Show dense operational data, separators, row states, and responsive behavior."
}
],
"qualityRules": {
"do": [
"Use one bright stamp color per metadata role and keep stamp text dark for every state.",
"Underline display headings with a single pen stroke when they need emphasis; leave body copy clean.",
"Attach one small edge tab to each major sticker card to signal category without adding borders.",
"Keep cards rectangular with 3px to 6px radii and soft paper shadows instead of glossy UI chrome.",
"Use Geist Mono for dates, counts, labels, and status language so metadata feels filed and cataloged.",
"Separate sections with perforation-style dashed rules rather than solid dividing lines."
],
"dont": [
"Do not use dark badges, neon accents, or gradient buttons.",
"Do not introduce rounded-full cards, pill toolbars, or oversized bubble inputs.",
"Do not put the dot-grid inside cards; it belongs to the page background only.",
"Do not add glass blur, glow, floating 3D plastics, or ambient animated effects.",
"Do not use pen underlines on paragraph text or small labels.",
"Do not replace stamps with outline chips; labels should stay filled and bright."
]
}
}
related
More like this
Bungu Minimalshares japanese-ma · paper-texture · asymmetric-spaceFusen Boardshares japanese-ma · paper-texture · asymmetric-spaceInk Wash Motionshares japanese-ma · paper-texture · asymmetric-spaceJapanese Stationery Grid Systemshares japanese-ma · paper-texture · asymmetric-spaceKukan Press Gridshares japanese-ma · paper-texture · asymmetric-spaceShuimo Mistshares japanese-ma · paper-texture · asymmetric-space