back to gallery
design language·magnetic-school-computer-club

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.

the spec

specification

philosophy
summary
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.
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
accent
#1F66A7
background
#F6EEDC
border
#20201C
error
#9B3D37
info
#6DAEB8
muted
#6F6A5D
primary
#20201C
secondary
#E7DCC5
success
#4F6B4A
surface
#FFF8E8
text
#20201C
warning
#A86D2A
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
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.
avoid
  • 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"
      ]
    }
  }
}
```
in the wild

embodiments

Design Language Preview

Magnetic School Computer Club

Color Palette

primary
secondary
accent
background
surface
text
muted
border
error
success
warning
info

Typography

h1

Heading One

h2

Heading Two

h3

Heading Three

h4

Heading Four

body

Body text demonstrates the reading experience. Good typography is invisible — it lets the content speak without drawing attention to the letterforms themselves.

caption

Caption text for supplementary information and metadata.

code
const theme = applyTokens(designLanguage);
render(<App theme={theme} />);

Buttons

Form Controls

Navigation

tabs
Overview content area with contextual information about the design language.
segmented control
dropdown menu

Feedback & Status

badges
NewDefaultActivePendingErrorOutline
alerts
Info: A new version is available.
Success: Changes saved successfully.
Warning: Storage is almost full.
Error: Failed to process request.
progress
66% complete
tooltip
avatar
AKJDML

Containers & Overlays

card

Card Title

Cards group related content and actions. This example shows a basic content card with a title and description.

accordion

Design tokens are the atomic values of a design system — colors, spacing, typography, and other values stored as key-value pairs.

dialog
separator

Data Display

table
NameStatusCategoryScore
Neo BrutalismPublishedMaximalist94
Aero GlassDraftSpatial87
Signal UIReviewEnterprise91
stat cards
Languages
42
+12%
Elements
3,150
+8%
Usage
18.4k
+23%
DESIGN.md

at a glance

Palette

Typography

headline-lgKiwi Maru · 29px · 700

The quick brown fox jumps

headline-mdKiwi Maru · 24px · 600

The quick brown fox jumps

body-mdBIZ UDPGothic · 16px · 400

The quick brown fox jumps

label-mdM PLUS 1 Code · 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

  • base8px
  • xs4px
  • sm8px
  • md12px
  • lg16px
  • xl24px
  • 2xl32px
  • 3xl48px
  • 4xl64px
  • step-888px
  • step-9112px

Shape

full9999px
lg24px
md16px
none0px
sm0px
shadcn/ui

implementation kit

needs agent-authored kitcompatibility fallback
shadcn compatibility only
The generated theme variables are available, but the polished shadcn component recipes and shots have not been authored by the Katagami agent yet.
fallbackprimitives render
Compatibility proof
Local shadcn-style primitives accept the generated theme variables.
primaryaccentsurfacemutedwarningerror
table rhythm
buttonok
cardok
inputok
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 table
theme css
: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;
}
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 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>
  );
}
theme JSONcompatibility fallback
{
  "$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"
      ]
    }
  }
}
component recipescompatibility fallback
# 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."
}
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": "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."
    ]
  }
}
related

More like this