Magnetic School Computer Club
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.
specification
philosophy
tokens
borders4 items
- accent width
- 3px
- character
- Near-black ink borders are intentionally drawn and offset; blue annotation borders are circular and imperfect, never glowing.
- default width
- 2px
- style
- solid for bezels, dashed for worksheet cuts, double for active floppy slots
colors12 items
motion3 items
- duration
- 160ms
- easing
- cubic-bezier(.2,.7,.15,1)
- philosophy
- Small mechanical responses only: paper tabs nudge 2px, cursors blink softly, and labels slide like a disk being seated; no cinematic motion.
radii5 items
- full
- 9999px
- lg
- 24px
- md
- 16px
- none
- 0
- sm
- 0
shadows3 items
- lg
- 10px 12px 0 rgba(32,32,28,0.10)
- md
- 5px 6px 0 rgba(32,32,28,0.16)
- sm
- 2px 2px 0 rgba(32,32,28,0.18)
spacing2 items
- base
- 8px
- scale
- 4, 8, 12, 16, 24, 32, 48, 64, 88, 112
surfaces3 items
- bg pattern
- Layered CSS repeating-linear-gradient ruled lines plus radial-gradient screentone dots at low opacity over {colors.background}.
- card style
- CRT-bezel slabs use {colors.surface}, 2px ink rules, inner 1px cream highlight, square corners, and label lips instead of rounded SaaS cards.
- treatment
- Warm aged-paper base with cream ABS plastic panels, subtle radial screentone dots, ruled worksheet lines, and no glossy gradients.
typography8 items
- base size
- 16px
- body font
- BIZ UDPGothic
- google fonts url
- https://fonts.googleapis.com/css2?family=BIZ+UDPGothic:wght@400;700&family=Kiwi+Maru:wght@400;500&family=M+PLUS+1+Code:wght@400;500;700&display=swap
- heading font
- Kiwi Maru
- letter spacing
- -0.02em
- line height
- 1.55
- mono font
- M PLUS 1 Code
- scale ratio
- 1.22
rules
Use an asymmetric clubroom worksheet: one dominant CRT workbench occupies the left or top, smaller floppy labels and note panels orbit it, and at least one taped marginal note breaks the grid. Panels should align to manga gutters rather than equal cards; blank paper space is allowed to hold warmth.
Alternate dense 4px-12px terminal/label clusters with generous 64px-112px paper margins so the screen feels like a worksheet, not a dashboard.
Hierarchy comes from material role: CRT bezel title first, floppy label metadata second, blue pen corrections third, and terminal jokes last. Display type is rounded and manuscript-like at tight tracking, body text is practical classroom gothic, and mono text is compact with filename casing.
layout
>=1120px keeps the asymmetric workbench; 760px-1119px becomes a two-column worksheet with notes below; <760px stacks panels and preserves horizontal floppy labels as scroll-free rows.
Medium-high information density is localized: labels and prompts are compact, while the overall composition breathes with large clubroom-paper margins.
Desktop uses a 12-column max-width 1320px worksheet grid with 24px gutters; the CRT workbench spans seven columns while notes and floppy trays occupy asymmetric side columns.
On tablet the marginal terminal becomes an inline ruled strip; on mobile the annotation layer remains visible but fewer floating notes are shown to protect legibility.
Use 4px-8px gaps inside terminal lines, 16px-24px inside labels, 48px-64px between panel groups, and 88px-112px around the main worksheet field.
guidance
- Lead with cream ABS plastic and aged paper; let near-black ink and blue ballpoint provide the recognizable structure.
- Use uneven manga gutters, taped labels, ruled fields, and screentone as layout devices rather than decorative stickers.
- Write interface copy as club artifacts: disk names, BASIC prompts, after-school times, parts checkout, and gentle compile jokes.
- Keep red and cyan scarce: red only for binder tabs or urgent club notes, cyan only for floppy-label material.
- Make the product scene specific, such as a lab checkout and BASIC practice console for a fictional school computer club.
- Use square or notched corners on primary panels, reserving 16px/24px radii only for paper notes and correction circles.
- Preserve visible focus states with blue pen outlines, dashed ink boxes, and text labels paired with all color states.
- Do not use green matrix rain, neon purple/cyan glow, or dark hacker dashboard backgrounds.
- Do not arrange three equal cards in a row; one workbench or worksheet area must clearly dominate.
- Do not introduce full anime characters, mascot fan art, or glossy robot illustrations.
- Do not use generic analytics charts, CRM metrics, SaaS rounded cards, or icon-heavy product grids.
- Do not over-distress textures; paper aging should be subtle enough for a polished product interface.
- Do not choose chrome sci-fi display fonts or default system UI typography; keep the manuscript/mono contrast.
- Do not rely on color alone for status; pair red tabs, blue circles, and green success with clear copy.
katagami spec
# Magnetic School Computer Club
## Philosophy
Magnetic School Computer Club is a warm, low-stakes interface language for tools that feel maintained by an after-school computing club: cream ABS plastic windows, floppy label fields, manga worksheet gutters, BASIC-era prompts, blue ballpoint corrections, and quiet cybernetic questions written as marginal notes rather than alarms.
### Values
- Computing is approachable and hand-explained: every panel should feel like a senior club member taped a note beside the machine.
- Retro hardware language is material and specific, using plastic bezels, disk labels, binder tabs, and classroom paper instead of nostalgia gradients.
- Manga structure supplies rhythm through gutters, screentone fields, panel labels, and correction circles without becoming character fan art.
- Terminal language stays tiny, funny, and human-scaled; prompts and compile jokes support the scene rather than dominate it.
- Existential cybernetics appears as quiet marginalia about memory, loops, and self-reference, never as apocalyptic hacker spectacle.
- Warm restraint matters: cream, ink, graphite, faded cyan, and blue pen do almost all the work with only tiny red tabs for priority.
### Anti-Values
- No green matrix rain, neon cyberpunk glow, generic hacker dashboards, or aggressive surveillance-console theatrics.
- No SaaS card grids, default analytics widgets, chrome sci-fi display faces, or interchangeable startup product sections.
- No anime character posters or fan-art figures; any human presence must be implied by handwriting, notes, and clubroom artifacts.
- No overly distressed vaporwave, rainbow Y2K kitsch, or synthetic saturated accents that break the paper-and-plastic warmth.
### Visual Character
- Build primary containers as cream CRT bezel windows with 2px ink outlines, inset off-white highlights, square corner notches, and thick bottom label lips.
- Organize information in manga worksheet panels: uneven gutters, ruled paper baselines, screentone dot fills, blue correction circles, and taped marginal notes.
- Use floppy-disk label strips as navigation and metadata fields, with faded cyan label blocks, binder-tab red flags, and monospaced filename captions.
- Render terminal output as marginalia: tiny BASIC prompts, compile jokes, caret cursors, and graphite status readouts tucked into panel edges.
- Make annotations visibly hand-applied through blue ballpoint underlines, circled variables, diagonal arrows, and offset sticky-note rotations in CSS.
## Tokens
### Borders
- **Accent Width**: 3px
- **Character**: Near-black ink borders are intentionally drawn and offset; blue annotation borders are circular and imperfect, never glowing.
- **Default Width**: 2px
- **Style**: solid for bezels, dashed for worksheet cuts, double for active floppy slots
### Colors
| Name | Value |
|------|-------|
| accent | `#1F66A7` |
| background | `#F6EEDC` |
| border | `#20201C` |
| error | `#9B3D37` |
| info | `#6DAEB8` |
| muted | `#6F6A5D` |
| primary | `#20201C` |
| secondary | `#E7DCC5` |
| success | `#4F6B4A` |
| surface | `#FFF8E8` |
| text | `#20201C` |
| warning | `#A86D2A` |
### Motion
- **Duration**: 160ms
- **Easing**: cubic-bezier(.2,.7,.15,1)
- **Philosophy**: Small mechanical responses only: paper tabs nudge 2px, cursors blink softly, and labels slide like a disk being seated; no cinematic motion.
### Radii
- **Full**: 9999px
- **Lg**: 24px
- **Md**: 16px
- **None**: 0
- **Sm**: 0
### Shadows
- **Lg**: 10px 12px 0 rgba(32,32,28,0.10)
- **Md**: 5px 6px 0 rgba(32,32,28,0.16)
- **Sm**: 2px 2px 0 rgba(32,32,28,0.18)
### Spacing
- **Base**: 8px
- **Scale**: [4,8,12,16,24,32,48,64,88,112]
### Surfaces
- **Bg Pattern**: Layered CSS repeating-linear-gradient ruled lines plus radial-gradient screentone dots at low opacity over {colors.background}.
- **Card Style**: CRT-bezel slabs use {colors.surface}, 2px ink rules, inner 1px cream highlight, square corners, and label lips instead of rounded SaaS cards.
- **Treatment**: Warm aged-paper base with cream ABS plastic panels, subtle radial screentone dots, ruled worksheet lines, and no glossy gradients.
### Typography
- **Base Size**: 16px
- **Body Font**: BIZ UDPGothic
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=BIZ+UDPGothic:wght@400;700&family=Kiwi+Maru:wght@400;500&family=M+PLUS+1+Code:wght@400;500;700&display=swap
- **Heading Font**: Kiwi Maru
- **Letter Spacing**: -0.02em
- **Line Height**: 1.55
- **Mono Font**: M PLUS 1 Code
- **Scale Ratio**: 1.22
## Rules
### Composition
Use an asymmetric clubroom worksheet: one dominant CRT workbench occupies the left or top, smaller floppy labels and note panels orbit it, and at least one taped marginal note breaks the grid. Panels should align to manga gutters rather than equal cards; blank paper space is allowed to hold warmth.
### Density
Alternate dense 4px-12px terminal/label clusters with generous 64px-112px paper margins so the screen feels like a worksheet, not a dashboard.
### Hierarchy
Hierarchy comes from material role: CRT bezel title first, floppy label metadata second, blue pen corrections third, and terminal jokes last. Display type is rounded and manuscript-like at tight tracking, body text is practical classroom gothic, and mono text is compact with filename casing.
### Signature Patterns
- CRT-bezel component: 2px ink outline, inset cream highlight, bottom ventilation ticks, and a raised label lip made with pseudo-elements.
- Blue correction annotation layer: absolute CSS circles, underlines, arrows, and handwritten notes that sit above panels like ballpoint teacher marks.
- Floppy-label navigation: cyan ruled label fields with punched square tabs, filename microcopy, and double-line active slots instead of pills or tabs.
- Manga screentone status fields: radial dot masks and diagonal hatch strips placed inside data panels to create monochrome pseudo-midtones.
- BASIC marginal terminal: tiny prompt lines with READY, GOTO, PEEK, and compile jokes tucked along gutters as narrative texture.
## Layout
### Breakpoints
>=1120px keeps the asymmetric workbench; 760px-1119px becomes a two-column worksheet with notes below; <760px stacks panels and preserves horizontal floppy labels as scroll-free rows.
### Density
Medium-high information density is localized: labels and prompts are compact, while the overall composition breathes with large clubroom-paper margins.
### Grid
Desktop uses a 12-column max-width 1320px worksheet grid with 24px gutters; the CRT workbench spans seven columns while notes and floppy trays occupy asymmetric side columns.
### Responsive
On tablet the marginal terminal becomes an inline ruled strip; on mobile the annotation layer remains visible but fewer floating notes are shown to protect legibility.
### Whitespace
Use 4px-8px gaps inside terminal lines, 16px-24px inside labels, 48px-64px between panel groups, and 88px-112px around the main worksheet field.
## Guidance
### Do
- Lead with cream ABS plastic and aged paper; let near-black ink and blue ballpoint provide the recognizable structure.
- Use uneven manga gutters, taped labels, ruled fields, and screentone as layout devices rather than decorative stickers.
- Write interface copy as club artifacts: disk names, BASIC prompts, after-school times, parts checkout, and gentle compile jokes.
- Keep red and cyan scarce: red only for binder tabs or urgent club notes, cyan only for floppy-label material.
- Make the product scene specific, such as a lab checkout and BASIC practice console for a fictional school computer club.
- Use square or notched corners on primary panels, reserving 16px/24px radii only for paper notes and correction circles.
- Preserve visible focus states with blue pen outlines, dashed ink boxes, and text labels paired with all color states.
### Don't
- Do not use green matrix rain, neon purple/cyan glow, or dark hacker dashboard backgrounds.
- Do not arrange three equal cards in a row; one workbench or worksheet area must clearly dominate.
- Do not introduce full anime characters, mascot fan art, or glossy robot illustrations.
- Do not use generic analytics charts, CRM metrics, SaaS rounded cards, or icon-heavy product grids.
- Do not over-distress textures; paper aging should be subtle enough for a polished product interface.
- Do not choose chrome sci-fi display fonts or default system UI typography; keep the manuscript/mono contrast.
- Do not rely on color alone for status; pair red tabs, blue circles, and green success with clear copy.
### Accessibility
Maintain AA contrast with near-black text on warm paper, keep mono microcopy at 12px or larger, avoid essential information in texture layers, and provide clear focus outlines using blue ink or dashed black borders.
### Usage Context
Best for educational coding tools, retro-computing archives, workshop scheduling, repair logs, classroom hardware inventory, and gentle speculative fiction interfaces about memory and machines.
DESIGN.md
---
version: "alpha"
name: "Magnetic School Computer Club"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
accent: "#1F66A7"
background: "#F6EEDC"
border: "#20201C"
error: "#9B3D37"
info: "#6DAEB8"
muted: "#6F6A5D"
primary: "#20201C"
secondary: "#E7DCC5"
success: "#4F6B4A"
surface: "#FFF8E8"
text: "#20201C"
warning: "#A86D2A"
typography:
headline-lg:
fontFamily: "Kiwi Maru"
fontSize: "1.816rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Kiwi Maru"
fontSize: "1.488rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "BIZ UDPGothic"
fontSize: "16px"
fontWeight: 400
lineHeight: 1.55
letterSpacing: "-0.02em"
label-md:
fontFamily: "M PLUS 1 Code"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
full: "9999px"
lg: "24px"
md: "16px"
none: "0px"
sm: "0px"
spacing:
base: "8px"
xs: "4px"
sm: "8px"
md: "12px"
lg: "16px"
xl: "24px"
2xl: "32px"
3xl: "48px"
4xl: "64px"
step-8: "88px"
step-9: "112px"
components:
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-background:
backgroundColor: "{colors.background}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-error:
backgroundColor: "{colors.error}"
color-reference-info:
backgroundColor: "{colors.info}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-primary:
backgroundColor: "{colors.primary}"
color-reference-secondary:
backgroundColor: "{colors.secondary}"
color-reference-success:
backgroundColor: "{colors.success}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-warning:
backgroundColor: "{colors.warning}"
button-primary:
backgroundColor: "{colors.primary}"
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"
---
# Magnetic School Computer Club
## Overview
Magnetic School Computer Club is a warm, low-stakes interface language for tools that feel maintained by an after-school computing club: cream ABS plastic windows, floppy label fields, manga worksheet gutters, BASIC-era prompts, blue ballpoint corrections, and quiet cybernetic questions written as marginal notes rather than alarms.
### Values
- Computing is approachable and hand-explained: every panel should feel like a senior club member taped a note beside the machine.
- Retro hardware language is material and specific, using plastic bezels, disk labels, binder tabs, and classroom paper instead of nostalgia gradients.
- Manga structure supplies rhythm through gutters, screentone fields, panel labels, and correction circles without becoming character fan art.
- Terminal language stays tiny, funny, and human-scaled; prompts and compile jokes support the scene rather than dominate it.
- Existential cybernetics appears as quiet marginalia about memory, loops, and self-reference, never as apocalyptic hacker spectacle.
- Warm restraint matters: cream, ink, graphite, faded cyan, and blue pen do almost all the work with only tiny red tabs for priority.
### Anti-Values
- No green matrix rain, neon cyberpunk glow, generic hacker dashboards, or aggressive surveillance-console theatrics.
- No SaaS card grids, default analytics widgets, chrome sci-fi display faces, or interchangeable startup product sections.
- No anime character posters or fan-art figures; any human presence must be implied by handwriting, notes, and clubroom artifacts.
- No overly distressed vaporwave, rainbow Y2K kitsch, or synthetic saturated accents that break the paper-and-plastic warmth.
### Visual Character
- Build primary containers as cream CRT bezel windows with 2px ink outlines, inset off-white highlights, square corner notches, and thick bottom label lips.
- Organize information in manga worksheet panels: uneven gutters, ruled paper baselines, screentone dot fills, blue correction circles, and taped marginal notes.
- Use floppy-disk label strips as navigation and metadata fields, with faded cyan label blocks, binder-tab red flags, and monospaced filename captions.
- Render terminal output as marginalia: tiny BASIC prompts, compile jokes, caret cursors, and graphite status readouts tucked into panel edges.
- Make annotations visibly hand-applied through blue ballpoint underlines, circled variables, diagonal arrows, and offset sticky-note rotations in CSS.
## Colors
Use the YAML color tokens as the normative palette. The prose below names the roles agents should preserve when generating UI.
| Token | Value |
|-------|-------|
| accent | `#1F66A7` |
| background | `#F6EEDC` |
| border | `#20201C` |
| error | `#9B3D37` |
| info | `#6DAEB8` |
| muted | `#6F6A5D` |
| primary | `#20201C` |
| secondary | `#E7DCC5` |
| success | `#4F6B4A` |
| surface | `#FFF8E8` |
| text | `#20201C` |
| warning | `#A86D2A` |
## Typography
- **Headline-Lg**: Kiwi Maru, 1.816rem, weight 700, line-height 1.1.
- **Headline-Md**: Kiwi Maru, 1.488rem, weight 600, line-height 1.15.
- **Body-Md**: BIZ UDPGothic, 16px, weight 400, line-height 1.55.
- **Label-Md**: M PLUS 1 Code, 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**: `88px`
- **Step-9**: `112px`
### Breakpoints
>=1120px keeps the asymmetric workbench; 760px-1119px becomes a two-column worksheet with notes below; <760px stacks panels and preserves horizontal floppy labels as scroll-free rows.
### Density
Medium-high information density is localized: labels and prompts are compact, while the overall composition breathes with large clubroom-paper margins.
### Grid
Desktop uses a 12-column max-width 1320px worksheet grid with 24px gutters; the CRT workbench spans seven columns while notes and floppy trays occupy asymmetric side columns.
### Responsive
On tablet the marginal terminal becomes an inline ruled strip; on mobile the annotation layer remains visible but fewer floating notes are shown to protect legibility.
### Whitespace
Use 4px-8px gaps inside terminal lines, 16px-24px inside labels, 48px-64px between panel groups, and 88px-112px around the main worksheet field.
## Elevation & Depth
### Shadows
- **Lg**: 10px 12px 0 rgba(32,32,28,0.10)
- **Md**: 5px 6px 0 rgba(32,32,28,0.16)
- **Sm**: 2px 2px 0 rgba(32,32,28,0.18)
## Shapes
### Rounded
- **Full**: `9999px`
- **Lg**: `24px`
- **Md**: `16px`
- **None**: `0px`
- **Sm**: `0px`
### Surfaces
- **Bg Pattern**: Layered CSS repeating-linear-gradient ruled lines plus radial-gradient screentone dots at low opacity over {colors.background}.
- **Card Style**: CRT-bezel slabs use {colors.surface}, 2px ink rules, inner 1px cream highlight, square corners, and label lips instead of rounded SaaS cards.
- **Treatment**: Warm aged-paper base with cream ABS plastic panels, subtle radial screentone dots, ruled worksheet lines, and no glossy gradients.
### Borders
- **Accent Width**: 3px
- **Character**: Near-black ink borders are intentionally drawn and offset; blue annotation borders are circular and imperfect, never glowing.
- **Default Width**: 2px
- **Style**: solid for bezels, dashed for worksheet cuts, double for active floppy slots
## Components
### Composition
Use an asymmetric clubroom worksheet: one dominant CRT workbench occupies the left or top, smaller floppy labels and note panels orbit it, and at least one taped marginal note breaks the grid. Panels should align to manga gutters rather than equal cards; blank paper space is allowed to hold warmth.
### Density
Alternate dense 4px-12px terminal/label clusters with generous 64px-112px paper margins so the screen feels like a worksheet, not a dashboard.
### Hierarchy
Hierarchy comes from material role: CRT bezel title first, floppy label metadata second, blue pen corrections third, and terminal jokes last. Display type is rounded and manuscript-like at tight tracking, body text is practical classroom gothic, and mono text is compact with filename casing.
### Signature Patterns
- CRT-bezel component: 2px ink outline, inset cream highlight, bottom ventilation ticks, and a raised label lip made with pseudo-elements.
- Blue correction annotation layer: absolute CSS circles, underlines, arrows, and handwritten notes that sit above panels like ballpoint teacher marks.
- Floppy-label navigation: cyan ruled label fields with punched square tabs, filename microcopy, and double-line active slots instead of pills or tabs.
- Manga screentone status fields: radial dot masks and diagonal hatch strips placed inside data panels to create monochrome pseudo-midtones.
- BASIC marginal terminal: tiny prompt lines with READY, GOTO, PEEK, and compile jokes tucked along gutters as narrative texture.
## 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/magnetic-school-computer-club/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 Lead with cream ABS plastic and aged paper; let near-black ink and blue ballpoint provide the recognizable structure.
- Do Use uneven manga gutters, taped labels, ruled fields, and screentone as layout devices rather than decorative stickers.
- Do Write interface copy as club artifacts: disk names, BASIC prompts, after-school times, parts checkout, and gentle compile jokes.
- Do Keep red and cyan scarce: red only for binder tabs or urgent club notes, cyan only for floppy-label material.
- Do Make the product scene specific, such as a lab checkout and BASIC practice console for a fictional school computer club.
- Do Use square or notched corners on primary panels, reserving 16px/24px radii only for paper notes and correction circles.
- Do Preserve visible focus states with blue pen outlines, dashed ink boxes, and text labels paired with all color states.
- Don't Do not use green matrix rain, neon purple/cyan glow, or dark hacker dashboard backgrounds.
- Don't Do not arrange three equal cards in a row; one workbench or worksheet area must clearly dominate.
- Don't Do not introduce full anime characters, mascot fan art, or glossy robot illustrations.
- Don't Do not use generic analytics charts, CRM metrics, SaaS rounded cards, or icon-heavy product grids.
- Don't Do not over-distress textures; paper aging should be subtle enough for a polished product interface.
- Don't Do not choose chrome sci-fi display fonts or default system UI typography; keep the manuscript/mono contrast.
- Don't Do not rely on color alone for status; pair red tabs, blue circles, and green success with clear copy.
### Accessibility
Maintain AA contrast with near-black text on warm paper, keep mono microcopy at 12px or larger, avoid essential information in texture layers, and provide clear focus outlines using blue ink or dashed black borders.
### Usage Context
Best for educational coding tools, retro-computing archives, workshop scheduling, repair logs, classroom hardware inventory, and gentle speculative fiction interfaces about memory and machines.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "magnetic-school-computer-club",
"type": "registry:theme",
"title": "Magnetic School Computer Club shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F6EEDC",
"foreground": "#20201C",
"card": "#FFF8E8",
"card-foreground": "#20201C",
"popover": "#FFF8E8",
"popover-foreground": "#20201C",
"primary": "#20201C",
"primary-foreground": "#ffffff",
"secondary": "#E7DCC5",
"secondary-foreground": "#111111",
"muted": "#6F6A5D",
"muted-foreground": "#20201C",
"accent": "#1F66A7",
"accent-foreground": "#ffffff",
"destructive": "#9B3D37",
"border": "#20201C",
"input": "#20201C",
"ring": "#1F66A7",
"chart-1": "#20201C",
"chart-2": "#E7DCC5",
"chart-3": "#1F66A7",
"chart-4": "#4F6B4A",
"chart-5": "#A86D2A",
"sidebar": "#FFF8E8",
"sidebar-foreground": "#20201C",
"sidebar-primary": "#20201C",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#6DAEB8",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#20201C",
"sidebar-ring": "#1F66A7",
"radius": "16px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#20201C",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#1F66A7",
"accent-foreground": "#ffffff",
"destructive": "#9B3D37",
"border": "#303642",
"input": "#303642",
"ring": "#1F66A7",
"chart-1": "#20201C",
"chart-2": "#E7DCC5",
"chart-3": "#1F66A7",
"chart-4": "#4F6B4A",
"chart-5": "#A86D2A",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#20201C",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#1F66A7",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#1F66A7",
"radius": "16px"
}
},
"meta": {
"source": "katagami",
"languageId": "magnetic-school-computer-club",
"slug": "magnetic-school-computer-club",
"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": {
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"colors": [
"accent",
"background",
"border",
"error",
"info",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"motion": [
"duration",
"easing",
"philosophy"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
]
}
}
}
```embodiments
at a glance
Typography
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
Components
Components rendered with this language’s tokens — colors, type, and rounded corners as specified.
Spacing
- base8px
- xs4px
- sm8px
- md12px
- lg16px
- xl24px
- 2xl32px
- 3xl48px
- 4xl64px
- step-888px
- step-9112px
Shape
implementation kit
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
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table:root {
--background: #F6EEDC;
--foreground: #20201C;
--card: #FFF8E8;
--card-foreground: #20201C;
--popover: #FFF8E8;
--popover-foreground: #20201C;
--primary: #20201C;
--primary-foreground: #ffffff;
--secondary: #E7DCC5;
--secondary-foreground: #111111;
--muted: #6F6A5D;
--muted-foreground: #20201C;
--accent: #1F66A7;
--accent-foreground: #ffffff;
--destructive: #9B3D37;
--border: #20201C;
--input: #20201C;
--ring: #1F66A7;
--chart-1: #20201C;
--chart-2: #E7DCC5;
--chart-3: #1F66A7;
--chart-4: #4F6B4A;
--chart-5: #A86D2A;
--sidebar: #FFF8E8;
--sidebar-foreground: #20201C;
--sidebar-primary: #20201C;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #6DAEB8;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #20201C;
--sidebar-ring: #1F66A7;
--radius: 16px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #20201C;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #1F66A7;
--accent-foreground: #ffffff;
--destructive: #9B3D37;
--border: #303642;
--input: #303642;
--ring: #1F66A7;
--chart-1: #20201C;
--chart-2: #E7DCC5;
--chart-3: #1F66A7;
--chart-4: #4F6B4A;
--chart-5: #A86D2A;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #20201C;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #1F66A7;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #1F66A7;
--radius: 16px;
}
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 MagneticSchoolComputerClubShadcnKit() {
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">Magnetic School Computer Club</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": "magnetic-school-computer-club",
"type": "registry:theme",
"title": "Magnetic School Computer Club shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F6EEDC",
"foreground": "#20201C",
"card": "#FFF8E8",
"card-foreground": "#20201C",
"popover": "#FFF8E8",
"popover-foreground": "#20201C",
"primary": "#20201C",
"primary-foreground": "#ffffff",
"secondary": "#E7DCC5",
"secondary-foreground": "#111111",
"muted": "#6F6A5D",
"muted-foreground": "#20201C",
"accent": "#1F66A7",
"accent-foreground": "#ffffff",
"destructive": "#9B3D37",
"border": "#20201C",
"input": "#20201C",
"ring": "#1F66A7",
"chart-1": "#20201C",
"chart-2": "#E7DCC5",
"chart-3": "#1F66A7",
"chart-4": "#4F6B4A",
"chart-5": "#A86D2A",
"sidebar": "#FFF8E8",
"sidebar-foreground": "#20201C",
"sidebar-primary": "#20201C",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#6DAEB8",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#20201C",
"sidebar-ring": "#1F66A7",
"radius": "16px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#20201C",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#1F66A7",
"accent-foreground": "#ffffff",
"destructive": "#9B3D37",
"border": "#303642",
"input": "#303642",
"ring": "#1F66A7",
"chart-1": "#20201C",
"chart-2": "#E7DCC5",
"chart-3": "#1F66A7",
"chart-4": "#4F6B4A",
"chart-5": "#A86D2A",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#20201C",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#1F66A7",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#1F66A7",
"radius": "16px"
}
},
"meta": {
"source": "katagami",
"languageId": "magnetic-school-computer-club",
"slug": "magnetic-school-computer-club",
"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": {
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"colors": [
"accent",
"background",
"border",
"error",
"info",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"motion": [
"duration",
"easing",
"philosophy"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
]
}
}
}
# Magnetic School Computer Club shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `magnetic-school-computer-club`
Slug: `magnetic-school-computer-club`
## Intent
Magnetic School Computer Club is a warm, low-stakes interface language for tools that feel maintained by an after-school computing club: cream ABS plastic windows, floppy label fields, manga worksheet gutters, BASIC-era prompts, blue ballpoint corrections, and quiet cybernetic questions written as marginal notes rather than alarms.
## 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:
{
"accent": "#1F66A7",
"background": "#F6EEDC",
"border": "#20201C",
"error": "#9B3D37",
"info": "#6DAEB8",
"muted": "#6F6A5D",
"primary": "#20201C",
"secondary": "#E7DCC5",
"success": "#4F6B4A",
"surface": "#FFF8E8",
"text": "#20201C",
"warning": "#A86D2A"
}
Typography:
{
"base_size": "16px",
"body_font": "BIZ UDPGothic",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=BIZ+UDPGothic:wght@400;700&family=Kiwi+Maru:wght@400;500&family=M+PLUS+1+Code:wght@400;500;700&display=swap",
"heading_font": "Kiwi Maru",
"letter_spacing": "-0.02em",
"line_height": 1.55,
"mono_font": "M PLUS 1 Code",
"scale_ratio": 1.22
}
## Visual character to preserve
- Build primary containers as cream CRT bezel windows with 2px ink outlines, inset off-white highlights, square corner notches, and thick bottom label lips.
- Organize information in manga worksheet panels: uneven gutters, ruled paper baselines, screentone dot fills, blue correction circles, and taped marginal notes.
- Use floppy-disk label strips as navigation and metadata fields, with faded cyan label blocks, binder-tab red flags, and monospaced filename captions.
- Render terminal output as marginalia: tiny BASIC prompts, compile jokes, caret cursors, and graphite status readouts tucked into panel edges.
- Make annotations visibly hand-applied through blue ballpoint underlines, circled variables, diagonal arrows, and offset sticky-note rotations in CSS.
## ShadSync visual profile
{
"family": "paper-collage",
"material": "paper",
"contour": "pebble",
"border": "dashed",
"underlay": true,
"grain": true,
"stickerBadges": false,
"motion": "still",
"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/magnetic-school-computer-club/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: Lead with cream ABS plastic and aged paper; let near-black ink and blue ballpoint provide the recognizable structure.; Use uneven manga gutters, taped labels, ruled fields, and screentone as layout devices rather than decorative stickers.; Write interface copy as club artifacts: disk names, BASIC prompts, after-school times, parts checkout, and gentle compile jokes.; Keep red and cyan scarce: red only for binder tabs or urgent club notes, cyan only for floppy-label material.; Make the product scene specific, such as a lab checkout and BASIC practice console for a fictional school computer club.; Use square or notched corners on primary panels, reserving 16px/24px radii only for paper notes and correction circles.; Preserve visible focus states with blue pen outlines, dashed ink boxes, and text labels paired with all color states.
- Do not: Do not use green matrix rain, neon purple/cyan glow, or dark hacker dashboard backgrounds.; Do not arrange three equal cards in a row; one workbench or worksheet area must clearly dominate.; Do not introduce full anime characters, mascot fan art, or glossy robot illustrations.; Do not use generic analytics charts, CRM metrics, SaaS rounded cards, or icon-heavy product grids.; Do not over-distress textures; paper aging should be subtle enough for a polished product interface.; Do not choose chrome sci-fi display fonts or default system UI typography; keep the manuscript/mono contrast.; Do not rely on color alone for status; pair red tabs, blue circles, and green success with clear copy.
## 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 MagneticSchoolComputerClubShadcnKit() {
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">Magnetic School Computer Club</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
{
"breakpoints": ">=1120px keeps the asymmetric workbench; 760px-1119px becomes a two-column worksheet with notes below; <760px stacks panels and preserves horizontal floppy labels as scroll-free rows.",
"density": "Medium-high information density is localized: labels and prompts are compact, while the overall composition breathes with large clubroom-paper margins.",
"grid": "Desktop uses a 12-column max-width 1320px worksheet grid with 24px gutters; the CRT workbench spans seven columns while notes and floppy trays occupy asymmetric side columns.",
"responsive": "On tablet the marginal terminal becomes an inline ruled strip; on mobile the annotation layer remains visible but fewer floating notes are shown to protect legibility.",
"whitespace": "Use 4px-8px gaps inside terminal lines, 16px-24px inside labels, 48px-64px between panel groups, and 88px-112px around the main worksheet field."
}
{
"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": "magnetic-school-computer-club",
"name": "Magnetic School Computer Club",
"slug": "magnetic-school-computer-club"
},
"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": [
"Build primary containers as cream CRT bezel windows with 2px ink outlines, inset off-white highlights, square corner notches, and thick bottom label lips.",
"Organize information in manga worksheet panels: uneven gutters, ruled paper baselines, screentone dot fills, blue correction circles, and taped marginal notes.",
"Use floppy-disk label strips as navigation and metadata fields, with faded cyan label blocks, binder-tab red flags, and monospaced filename captions.",
"Render terminal output as marginalia: tiny BASIC prompts, compile jokes, caret cursors, and graphite status readouts tucked into panel edges.",
"Make annotations visibly hand-applied through blue ballpoint underlines, circled variables, diagonal arrows, and offset sticky-note rotations in CSS."
],
"visualProfile": {
"family": "paper-collage",
"material": "paper",
"contour": "pebble",
"border": "solid",
"underlay": true,
"grain": true,
"stickerBadges": false,
"motion": "still",
"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": "Magnetic School Computer Club 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": [
"Lead with cream ABS plastic and aged paper; let near-black ink and blue ballpoint provide the recognizable structure.",
"Use uneven manga gutters, taped labels, ruled fields, and screentone as layout devices rather than decorative stickers.",
"Write interface copy as club artifacts: disk names, BASIC prompts, after-school times, parts checkout, and gentle compile jokes.",
"Keep red and cyan scarce: red only for binder tabs or urgent club notes, cyan only for floppy-label material.",
"Make the product scene specific, such as a lab checkout and BASIC practice console for a fictional school computer club.",
"Use square or notched corners on primary panels, reserving 16px/24px radii only for paper notes and correction circles.",
"Preserve visible focus states with blue pen outlines, dashed ink boxes, and text labels paired with all color states."
],
"dont": [
"Do not use green matrix rain, neon purple/cyan glow, or dark hacker dashboard backgrounds.",
"Do not arrange three equal cards in a row; one workbench or worksheet area must clearly dominate.",
"Do not introduce full anime characters, mascot fan art, or glossy robot illustrations.",
"Do not use generic analytics charts, CRM metrics, SaaS rounded cards, or icon-heavy product grids.",
"Do not over-distress textures; paper aging should be subtle enough for a polished product interface.",
"Do not choose chrome sci-fi display fonts or default system UI typography; keep the manuscript/mono contrast.",
"Do not rely on color alone for status; pair red tabs, blue circles, and green success with clear copy."
]
}
}