back to gallery
design language·crossover-editorial-ink-fine-art

Crossover Editorial Ink Fine Art

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
Crossover Editorial Ink Fine Art treats the product interface as a drawn publication spread: rigorous editorial structure crossed with visible pen pressure, gallery-white restraint, and the argumentative clarity of visual commentary. It is made for dashboards, briefs, and publishing tools where the interface should feel authored rather than decorated: every panel is a sheet, every rule is a drawn line, and every annotation behaves like marginalia in an artist-edited newspaper proof.
values
Drawn evidence over decorative polish: line weight, hatching, and visible mark-making carry hierarchy instead of glossy effects.Editorial legibility: columns, captions, folios, and pull-quote scale make dense information feel like a composed publication page.Gallery restraint: large white fields, sparse muted spot color, and quiet borders leave room for the ink marks to breathe.Concept before ornament: illustration motifs are used to clarify argument, status, and priority rather than as filler texture.Material paper truth: newsprint fibers, ink wash, and imperfect strokes give the screen a tactile drawn-on-paper presence.Controlled asymmetry: strong grids hold deliberately offset sketches, notes, and callouts without collapsing into mess.
anti-values
×No glossy gradient cards, plastic shadows, or SaaS-dashboard sheen that erase the hand-drawn editorial character.×No pastel lifestyle softness; muted spot color must behave like limited press ink, not decoration.×No generic component catalog layout; the screen must read as a working editorial art desk.×No perfectly sterile vector iconography when an inked mark, hatch, or rule can carry the same meaning.
tokens
colors12 items
primary
#1F1C19
secondary
#5A534B
accent
#B4573D
background
#FFFFFF
surface
#FFFFFF
text
#171412
muted
#746D64
border
#2A2622
error
#9B2F24
success
#3F6B4A
warning
#B08A2E
info
#3D5F7A
typography8 items
heading font
Newsreader
body font
IBM Plex Sans
mono font
IBM Plex Mono
base size
16px
scale ratio
1.22
line height
1.48
letter spacing
-0.02em
google fonts url
https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,500;6..72,650;6..72,750&display=swap
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64, 96
radii5 items
none
0px
sm
0px
md
16px
lg
24px
full
9999px
shadows3 items
sm
2px 2px 0 #2A2622
md
4px 4px 0 rgba(42,38,34,0.22)
lg
8px 8px 0 rgba(42,38,34,0.16)
surfaces3 items
treatment
paper
card style
Gallery-white paper cards with charcoal borders, offset ink registration lines, and faint newsprint grain.
bg pattern
noise
borders4 items
default width
1px
accent width
4px
style
solid
character
Charcoal pen rules that feel slightly overprinted, doubled, and editorial rather than slick.
motion3 items
duration
180ms
easing
cubic-bezier(0.2, 0.7, 0.2, 1)
philosophy
snappy
rules
composition
Use a publication-spread grid: a narrow folio rail, a broad lead-story workspace, and stacked marginal notes. Anchor every major zone with drawn rules, then allow one sketched or hatched element to break alignment as visual commentary. Keep the page mostly white and monochrome; spot color should identify urgency, state, or selected editorial material only. Align captions and metadata to baseline-like rows so the interface feels typeset, not randomly placed.
hierarchy
Lead headlines use Newsreader at large optical sizes with tight letter spacing and strong weight contrast. Interface labels are uppercase IBM Plex Mono, small and tracked only enough to read as print furniture. Primary actions are black ink blocks; secondary actions are outlined paper buttons. Hatching density, border duplication, and spot-color stamps mark importance more than size alone.
density
Medium-high information density is acceptable when surrounded by gallery-white gutters. Group related controls tightly inside ruled panels, but preserve generous outer margins so the screen reads as an editorial board rather than a crowded admin template.
signature patterns
Offset registration borders are created with ::before pseudo-elements translated 5px behind every major paper panel.Brush underlines below headings use rough repeating-linear-gradient bands with uneven thickness and charcoal opacity changes.Hatched surfaces use 45-degree repeating-linear-gradient linework for progress bars, chart strips, table status cells, and note margins.Spot-color label stamps use rectangular background blocks with slight rotate transforms and hard charcoal outlines.Ink-wash commentary shapes appear as low-opacity radial blobs contained inside cards, never as glossy gradients or buttons.
layout
grid
Desktop uses a 12-column editorial spread with a 72px folio rail, 24px gutters, and a max-width of 1320px. The lead desk spans seven columns, the margin stack spans four, and the folio rail carries navigation and pagination.
breakpoints
At 1024px the spread becomes an 8-column layout with the folio rail across the top; at 768px panels stack into two columns; at 480px and below everything becomes a single full-width column with tables in horizontal scroll wrappers and buttons stacked.
whitespace
Whitespace is gallery-white negative space: wide outer margins, strong gaps between ruled paper sheets, and compact internal rows. Empty space should feel curated and silent, not unfinished.
density

The language supports editorial density by separating blocks with rules, labels, and hatching instead of extra chromatic decoration.

responsive
desktop
1440px 12 columns
tablet
768px 2 columns
mobile
375px 1 column
guidance
do
  • Use pure #FFFFFF surfaces and let charcoal linework define structure before adding color.
  • Make headings feel like publication headlines with Newsreader and tight -0.02em spacing on all text.
  • Use hatching, cross-hatching, and ink-wash marks to encode progress, emphasis, and commentary.
  • Keep spot color muted and scarce, as if limited to one press plate or editor stamp.
  • Use offset pseudo-borders on panels, dialogs, cards, and alerts to preserve the hand-registered print quality.
  • Wrap dense tables in ruled paper containers and use mono captions for dates, IDs, and status.
  • Preserve 44px touch targets and stack controls on mobile while retaining drawn borders.
avoid
  • Do not use gradient buttons, glass cards, pastel backgrounds, or soft app-store illustration styles.
  • Do not round every surface casually; use 0px for editorial sheets and 16px or 24px only when a control needs tactility.
  • Do not center everything like a landing page; maintain editorial columns and marginal relationships.
  • Do not introduce multiple bright accent colors; one muted spot color is enough.
  • Do not use default browser form controls; every input must be explicitly ink-bordered and paper-like.
  • Do not replace linework with generic icons or emoji when typographic marks and drawn rules can communicate.
  • Do not allow mobile layouts to crop the modal, table, or folio navigation.
katagami spec
# Crossover Editorial Ink Fine Art

## Philosophy

Crossover Editorial Ink Fine Art treats the product interface as a drawn publication spread: rigorous editorial structure crossed with visible pen pressure, gallery-white restraint, and the argumentative clarity of visual commentary. It is made for dashboards, briefs, and publishing tools where the interface should feel authored rather than decorated: every panel is a sheet, every rule is a drawn line, and every annotation behaves like marginalia in an artist-edited newspaper proof.

### Values

- Drawn evidence over decorative polish: line weight, hatching, and visible mark-making carry hierarchy instead of glossy effects.
- Editorial legibility: columns, captions, folios, and pull-quote scale make dense information feel like a composed publication page.
- Gallery restraint: large white fields, sparse muted spot color, and quiet borders leave room for the ink marks to breathe.
- Concept before ornament: illustration motifs are used to clarify argument, status, and priority rather than as filler texture.
- Material paper truth: newsprint fibers, ink wash, and imperfect strokes give the screen a tactile drawn-on-paper presence.
- Controlled asymmetry: strong grids hold deliberately offset sketches, notes, and callouts without collapsing into mess.

### Anti-Values

- No glossy gradient cards, plastic shadows, or SaaS-dashboard sheen that erase the hand-drawn editorial character.
- No pastel lifestyle softness; muted spot color must behave like limited press ink, not decoration.
- No generic component catalog layout; the screen must read as a working editorial art desk.
- No perfectly sterile vector iconography when an inked mark, hatch, or rule can carry the same meaning.

### Visual Character

- All primary panels use 1px charcoal ink borders with deliberately offset pseudo-element duplicate rules to mimic hand-registered publication boxes.
- Section headers combine uppercase folio labels with a thick brush-stroke underline made from rough repeating-linear-gradient ink marks.
- Cards and alerts sit on pure gallery-white surfaces over a subtle newsprint paper grain created with layered radial-gradient noise.
- Muted spot-color chips appear as small pressed-ink rectangles behind labels while the rest of the composition remains monochrome.
- Data blocks include hatching and cross-hatching backgrounds using thin repeating-linear-gradients clipped to margins and progress fills.

## Tokens

### Colors

| Name | Value |
|------|-------|
| primary | `#1F1C19` |
| secondary | `#5A534B` |
| accent | `#B4573D` |
| background | `#FFFFFF` |
| surface | `#FFFFFF` |
| text | `#171412` |
| muted | `#746D64` |
| border | `#2A2622` |
| error | `#9B2F24` |
| success | `#3F6B4A` |
| warning | `#B08A2E` |
| info | `#3D5F7A` |

### Typography

- **Heading Font**: Newsreader
- **Body Font**: IBM Plex Sans
- **Mono Font**: IBM Plex Mono
- **Base Size**: 16px
- **Scale Ratio**: 1.22
- **Line Height**: 1.48
- **Letter Spacing**: -0.02em
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,500;6..72,650;6..72,750&display=swap

### Spacing

- **Base**: 8px
- **Scale**: [4,8,12,16,24,32,48,64,96]

### Radii

- **None**: 0px
- **Sm**: 0px
- **Md**: 16px
- **Lg**: 24px
- **Full**: 9999px

### Shadows

- **Sm**: 2px 2px 0 #2A2622
- **Md**: 4px 4px 0 rgba(42,38,34,0.22)
- **Lg**: 8px 8px 0 rgba(42,38,34,0.16)

### Surfaces

- **Treatment**: paper
- **Card Style**: Gallery-white paper cards with charcoal borders, offset ink registration lines, and faint newsprint grain.
- **Bg Pattern**: noise

### Borders

- **Default Width**: 1px
- **Accent Width**: 4px
- **Style**: solid
- **Character**: Charcoal pen rules that feel slightly overprinted, doubled, and editorial rather than slick.

### Motion

- **Duration**: 180ms
- **Easing**: cubic-bezier(0.2, 0.7, 0.2, 1)
- **Philosophy**: snappy

## Rules

### Composition

Use a publication-spread grid: a narrow folio rail, a broad lead-story workspace, and stacked marginal notes. Anchor every major zone with drawn rules, then allow one sketched or hatched element to break alignment as visual commentary. Keep the page mostly white and monochrome; spot color should identify urgency, state, or selected editorial material only. Align captions and metadata to baseline-like rows so the interface feels typeset, not randomly placed.

### Hierarchy

Lead headlines use Newsreader at large optical sizes with tight letter spacing and strong weight contrast. Interface labels are uppercase IBM Plex Mono, small and tracked only enough to read as print furniture. Primary actions are black ink blocks; secondary actions are outlined paper buttons. Hatching density, border duplication, and spot-color stamps mark importance more than size alone.

### Density

Medium-high information density is acceptable when surrounded by gallery-white gutters. Group related controls tightly inside ruled panels, but preserve generous outer margins so the screen reads as an editorial board rather than a crowded admin template.

### Signature Patterns

- Offset registration borders are created with ::before pseudo-elements translated 5px behind every major paper panel.
- Brush underlines below headings use rough repeating-linear-gradient bands with uneven thickness and charcoal opacity changes.
- Hatched surfaces use 45-degree repeating-linear-gradient linework for progress bars, chart strips, table status cells, and note margins.
- Spot-color label stamps use rectangular background blocks with slight rotate transforms and hard charcoal outlines.
- Ink-wash commentary shapes appear as low-opacity radial blobs contained inside cards, never as glossy gradients or buttons.

## Layout

### Grid

Desktop uses a 12-column editorial spread with a 72px folio rail, 24px gutters, and a max-width of 1320px. The lead desk spans seven columns, the margin stack spans four, and the folio rail carries navigation and pagination.

### Breakpoints

At 1024px the spread becomes an 8-column layout with the folio rail across the top; at 768px panels stack into two columns; at 480px and below everything becomes a single full-width column with tables in horizontal scroll wrappers and buttons stacked.

### Whitespace

Whitespace is gallery-white negative space: wide outer margins, strong gaps between ruled paper sheets, and compact internal rows. Empty space should feel curated and silent, not unfinished.

### Density

The language supports editorial density by separating blocks with rules, labels, and hatching instead of extra chromatic decoration.

### Responsive

- **Desktop**: 1440px 12 columns
- **Tablet**: 768px 2 columns
- **Mobile**: 375px 1 column

## Guidance

### Do

- Use pure #FFFFFF surfaces and let charcoal linework define structure before adding color.
- Make headings feel like publication headlines with Newsreader and tight -0.02em spacing on all text.
- Use hatching, cross-hatching, and ink-wash marks to encode progress, emphasis, and commentary.
- Keep spot color muted and scarce, as if limited to one press plate or editor stamp.
- Use offset pseudo-borders on panels, dialogs, cards, and alerts to preserve the hand-registered print quality.
- Wrap dense tables in ruled paper containers and use mono captions for dates, IDs, and status.
- Preserve 44px touch targets and stack controls on mobile while retaining drawn borders.

### Don't

- Do not use gradient buttons, glass cards, pastel backgrounds, or soft app-store illustration styles.
- Do not round every surface casually; use 0px for editorial sheets and 16px or 24px only when a control needs tactility.
- Do not center everything like a landing page; maintain editorial columns and marginal relationships.
- Do not introduce multiple bright accent colors; one muted spot color is enough.
- Do not use default browser form controls; every input must be explicitly ink-bordered and paper-like.
- Do not replace linework with generic icons or emoji when typographic marks and drawn rules can communicate.
- Do not allow mobile layouts to crop the modal, table, or folio navigation.

### Usage Context

Best for editorial planning tools, commentary dashboards, art-direction review boards, publishing analytics, research notebooks, and cultural criticism products.

### Accessibility

Maintain strong charcoal-on-white contrast, visible focus outlines, minimum 44px interactive targets, restrained motion, and non-color status cues via labels, hatching, and borders.
DESIGN.md
---
version: "alpha"
name: "Crossover Editorial Ink Fine Art"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  primary: "#1F1C19"
  secondary: "#5A534B"
  accent: "#B4573D"
  background: "#FFFFFF"
  surface: "#FFFFFF"
  text: "#171412"
  muted: "#746D64"
  border: "#2A2622"
  error: "#9B2F24"
  success: "#3F6B4A"
  warning: "#B08A2E"
  info: "#3D5F7A"
typography:
  headline-lg:
    fontFamily: "Newsreader"
    fontSize: "1.816rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.02em"
  headline-md:
    fontFamily: "Newsreader"
    fontSize: "1.488rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.02em"
  body-md:
    fontFamily: "IBM Plex Sans"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.48
    letterSpacing: "-0.02em"
  label-md:
    fontFamily: "IBM Plex Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  sm: "0px"
  md: "16px"
  lg: "24px"
  full: "9999px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "64px"
  step-8: "96px"
components:
  color-reference-primary:
    backgroundColor: "{colors.primary}"
  color-reference-secondary:
    backgroundColor: "{colors.secondary}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-background:
    backgroundColor: "{colors.background}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "#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"
---

# Crossover Editorial Ink Fine Art

## Overview

Crossover Editorial Ink Fine Art treats the product interface as a drawn publication spread: rigorous editorial structure crossed with visible pen pressure, gallery-white restraint, and the argumentative clarity of visual commentary. It is made for dashboards, briefs, and publishing tools where the interface should feel authored rather than decorated: every panel is a sheet, every rule is a drawn line, and every annotation behaves like marginalia in an artist-edited newspaper proof.

### Values

- Drawn evidence over decorative polish: line weight, hatching, and visible mark-making carry hierarchy instead of glossy effects.
- Editorial legibility: columns, captions, folios, and pull-quote scale make dense information feel like a composed publication page.
- Gallery restraint: large white fields, sparse muted spot color, and quiet borders leave room for the ink marks to breathe.
- Concept before ornament: illustration motifs are used to clarify argument, status, and priority rather than as filler texture.
- Material paper truth: newsprint fibers, ink wash, and imperfect strokes give the screen a tactile drawn-on-paper presence.
- Controlled asymmetry: strong grids hold deliberately offset sketches, notes, and callouts without collapsing into mess.

### Anti-Values

- No glossy gradient cards, plastic shadows, or SaaS-dashboard sheen that erase the hand-drawn editorial character.
- No pastel lifestyle softness; muted spot color must behave like limited press ink, not decoration.
- No generic component catalog layout; the screen must read as a working editorial art desk.
- No perfectly sterile vector iconography when an inked mark, hatch, or rule can carry the same meaning.

### Visual Character

- All primary panels use 1px charcoal ink borders with deliberately offset pseudo-element duplicate rules to mimic hand-registered publication boxes.
- Section headers combine uppercase folio labels with a thick brush-stroke underline made from rough repeating-linear-gradient ink marks.
- Cards and alerts sit on pure gallery-white surfaces over a subtle newsprint paper grain created with layered radial-gradient noise.
- Muted spot-color chips appear as small pressed-ink rectangles behind labels while the rest of the composition remains monochrome.
- Data blocks include hatching and cross-hatching backgrounds using thin repeating-linear-gradients clipped to margins and progress fills.

## Colors

Use the YAML color tokens as the normative palette. The prose below names the roles agents should preserve when generating UI.

| Token | Value |
|-------|-------|
| primary | `#1F1C19` |
| secondary | `#5A534B` |
| accent | `#B4573D` |
| background | `#FFFFFF` |
| surface | `#FFFFFF` |
| text | `#171412` |
| muted | `#746D64` |
| border | `#2A2622` |
| error | `#9B2F24` |
| success | `#3F6B4A` |
| warning | `#B08A2E` |
| info | `#3D5F7A` |

## Typography

- **Headline-Lg**: Newsreader, 1.816rem, weight 700, line-height 1.1.
- **Headline-Md**: Newsreader, 1.488rem, weight 600, line-height 1.15.
- **Body-Md**: IBM Plex Sans, 16px, weight 400, line-height 1.48.
- **Label-Md**: IBM Plex Mono, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

- **Base**: `8px`
- **Xs**: `4px`
- **Sm**: `8px`
- **Md**: `12px`
- **Lg**: `16px`
- **Xl**: `24px`
- **2xl**: `32px`
- **3xl**: `48px`
- **4xl**: `64px`
- **Step-8**: `96px`

### Grid

Desktop uses a 12-column editorial spread with a 72px folio rail, 24px gutters, and a max-width of 1320px. The lead desk spans seven columns, the margin stack spans four, and the folio rail carries navigation and pagination.

### Breakpoints

At 1024px the spread becomes an 8-column layout with the folio rail across the top; at 768px panels stack into two columns; at 480px and below everything becomes a single full-width column with tables in horizontal scroll wrappers and buttons stacked.

### Whitespace

Whitespace is gallery-white negative space: wide outer margins, strong gaps between ruled paper sheets, and compact internal rows. Empty space should feel curated and silent, not unfinished.

### Density

The language supports editorial density by separating blocks with rules, labels, and hatching instead of extra chromatic decoration.

### Responsive

- **Desktop**: 1440px 12 columns
- **Tablet**: 768px 2 columns
- **Mobile**: 375px 1 column

## Elevation & Depth

### Shadows

- **Sm**: 2px 2px 0 #2A2622
- **Md**: 4px 4px 0 rgba(42,38,34,0.22)
- **Lg**: 8px 8px 0 rgba(42,38,34,0.16)

## Shapes

### Rounded

- **None**: `0px`
- **Sm**: `0px`
- **Md**: `16px`
- **Lg**: `24px`
- **Full**: `9999px`

### Surfaces

- **Treatment**: paper
- **Card Style**: Gallery-white paper cards with charcoal borders, offset ink registration lines, and faint newsprint grain.
- **Bg Pattern**: noise

### Borders

- **Default Width**: 1px
- **Accent Width**: 4px
- **Style**: solid
- **Character**: Charcoal pen rules that feel slightly overprinted, doubled, and editorial rather than slick.

## Components

### Composition

Use a publication-spread grid: a narrow folio rail, a broad lead-story workspace, and stacked marginal notes. Anchor every major zone with drawn rules, then allow one sketched or hatched element to break alignment as visual commentary. Keep the page mostly white and monochrome; spot color should identify urgency, state, or selected editorial material only. Align captions and metadata to baseline-like rows so the interface feels typeset, not randomly placed.

### Hierarchy

Lead headlines use Newsreader at large optical sizes with tight letter spacing and strong weight contrast. Interface labels are uppercase IBM Plex Mono, small and tracked only enough to read as print furniture. Primary actions are black ink blocks; secondary actions are outlined paper buttons. Hatching density, border duplication, and spot-color stamps mark importance more than size alone.

### Density

Medium-high information density is acceptable when surrounded by gallery-white gutters. Group related controls tightly inside ruled panels, but preserve generous outer margins so the screen reads as an editorial board rather than a crowded admin template.

### Signature Patterns

- Offset registration borders are created with ::before pseudo-elements translated 5px behind every major paper panel.
- Brush underlines below headings use rough repeating-linear-gradient bands with uneven thickness and charcoal opacity changes.
- Hatched surfaces use 45-degree repeating-linear-gradient linework for progress bars, chart strips, table status cells, and note margins.
- Spot-color label stamps use rectangular background blocks with slight rotate transforms and hard charcoal outlines.
- Ink-wash commentary shapes appear as low-opacity radial blobs contained inside cards, never as glossy gradients or buttons.

## shadcn/ui Usage

When the target app uses shadcn/ui, copy DESIGN.md with shadcn instead of the plain DESIGN.md. It contains the same Katagami design-language source plus the shadcn/ui primitives, imports, theme variables, component recipes, and preview-shot guidance.

DESIGN.md with shadcn: `/language/en-019dca9f-5e57-7891-8193-7fcffb035b8e/DESIGN.with-shadcn.md`.

The shadcn page also exposes optional machine-readable files for automation, but the human-facing handoff is DESIGN.md with shadcn.

Install recommended primitives with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.

Use these primitives in shadcn apps:
- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table

Implementation rule for agents: import shadcn primitives from `@/components/ui/*`, apply the generated CSS variables first, then compose the language-specific recipes from the companion MD. Katagami remains the source of truth; shadcn names are the implementation surface.

## Do's and Don'ts

- Do Use pure #FFFFFF surfaces and let charcoal linework define structure before adding color.
- Do Make headings feel like publication headlines with Newsreader and tight -0.02em spacing on all text.
- Do Use hatching, cross-hatching, and ink-wash marks to encode progress, emphasis, and commentary.
- Do Keep spot color muted and scarce, as if limited to one press plate or editor stamp.
- Do Use offset pseudo-borders on panels, dialogs, cards, and alerts to preserve the hand-registered print quality.
- Do Wrap dense tables in ruled paper containers and use mono captions for dates, IDs, and status.
- Do Preserve 44px touch targets and stack controls on mobile while retaining drawn borders.
- Don't Do not use gradient buttons, glass cards, pastel backgrounds, or soft app-store illustration styles.
- Don't Do not round every surface casually; use 0px for editorial sheets and 16px or 24px only when a control needs tactility.
- Don't Do not center everything like a landing page; maintain editorial columns and marginal relationships.
- Don't Do not introduce multiple bright accent colors; one muted spot color is enough.
- Don't Do not use default browser form controls; every input must be explicitly ink-bordered and paper-like.
- Don't Do not replace linework with generic icons or emoji when typographic marks and drawn rules can communicate.
- Don't Do not allow mobile layouts to crop the modal, table, or folio navigation.

### Usage Context

Best for editorial planning tools, commentary dashboards, art-direction review boards, publishing analytics, research notebooks, and cultural criticism products.

### Accessibility

Maintain strong charcoal-on-white contrast, visible focus outlines, minimum 44px interactive targets, restrained motion, and non-color status cues via labels, hatching, and borders.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "crossover-editorial-ink-fine-art",
  "type": "registry:theme",
  "title": "Crossover Editorial Ink Fine Art shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#FFFFFF",
      "foreground": "#171412",
      "card": "#FFFFFF",
      "card-foreground": "#171412",
      "popover": "#FFFFFF",
      "popover-foreground": "#171412",
      "primary": "#1F1C19",
      "primary-foreground": "#ffffff",
      "secondary": "#5A534B",
      "secondary-foreground": "#ffffff",
      "muted": "#746D64",
      "muted-foreground": "#171412",
      "accent": "#B4573D",
      "accent-foreground": "#ffffff",
      "destructive": "#9B2F24",
      "border": "#2A2622",
      "input": "#2A2622",
      "ring": "#B4573D",
      "chart-1": "#1F1C19",
      "chart-2": "#5A534B",
      "chart-3": "#B4573D",
      "chart-4": "#3F6B4A",
      "chart-5": "#B08A2E",
      "sidebar": "#FFFFFF",
      "sidebar-foreground": "#171412",
      "sidebar-primary": "#1F1C19",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#3D5F7A",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#2A2622",
      "sidebar-ring": "#B4573D",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#1F1C19",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#B4573D",
      "accent-foreground": "#ffffff",
      "destructive": "#9B2F24",
      "border": "#303642",
      "input": "#303642",
      "ring": "#B4573D",
      "chart-1": "#1F1C19",
      "chart-2": "#5A534B",
      "chart-3": "#B4573D",
      "chart-4": "#3F6B4A",
      "chart-5": "#B08A2E",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#1F1C19",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#B4573D",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#B4573D",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019dca9f-5e57-7891-8193-7fcffb035b8e",
    "slug": "crossover-editorial-ink-fine-art",
    "componentManifest": [
      "button",
      "card",
      "input",
      "textarea",
      "select",
      "dialog",
      "sheet",
      "tabs",
      "badge",
      "separator",
      "checkbox",
      "switch",
      "slider",
      "tooltip",
      "dropdown-menu",
      "table"
    ],
    "installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
    "nativeTokenNames": {
      "colors": [
        "accent",
        "background",
        "border",
        "error",
        "info",
        "muted",
        "primary",
        "secondary",
        "success",
        "surface",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ]
    }
  }
}
```
in the wild

embodiments

the full element showcase
embodiment · crossover-editorial-ink-fine-art
DESIGN.md

at a glance

Palette

Typography

headline-lgNewsreader · 29px · 700

The quick brown fox jumps

headline-mdNewsreader · 24px · 600

The quick brown fox jumps

body-mdIBM Plex Sans · 16px · 400

The quick brown fox jumps

label-mdIBM Plex Mono · 12px · 600

The quick brown fox jumps

Components

New
Card title

Components rendered with this language’s tokens — colors, type, and rounded corners as specified.

Spacing

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

Shape

none0px
sm0px
md16px
lg24px
full9999px
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: #FFFFFF;
  --foreground: #171412;
  --card: #FFFFFF;
  --card-foreground: #171412;
  --popover: #FFFFFF;
  --popover-foreground: #171412;
  --primary: #1F1C19;
  --primary-foreground: #ffffff;
  --secondary: #5A534B;
  --secondary-foreground: #ffffff;
  --muted: #746D64;
  --muted-foreground: #171412;
  --accent: #B4573D;
  --accent-foreground: #ffffff;
  --destructive: #9B2F24;
  --border: #2A2622;
  --input: #2A2622;
  --ring: #B4573D;
  --chart-1: #1F1C19;
  --chart-2: #5A534B;
  --chart-3: #B4573D;
  --chart-4: #3F6B4A;
  --chart-5: #B08A2E;
  --sidebar: #FFFFFF;
  --sidebar-foreground: #171412;
  --sidebar-primary: #1F1C19;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #3D5F7A;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #2A2622;
  --sidebar-ring: #B4573D;
  --radius: 16px;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #1F1C19;
  --primary-foreground: #ffffff;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #B4573D;
  --accent-foreground: #ffffff;
  --destructive: #9B2F24;
  --border: #303642;
  --input: #303642;
  --ring: #B4573D;
  --chart-1: #1F1C19;
  --chart-2: #5A534B;
  --chart-3: #B4573D;
  --chart-4: #3F6B4A;
  --chart-5: #B08A2E;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #1F1C19;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #B4573D;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #303642;
  --sidebar-ring: #B4573D;
  --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 CrossoverEditorialInkFineArtShadcnKit() {
  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">Crossover Editorial Ink Fine Art</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": "crossover-editorial-ink-fine-art",
  "type": "registry:theme",
  "title": "Crossover Editorial Ink Fine Art shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#FFFFFF",
      "foreground": "#171412",
      "card": "#FFFFFF",
      "card-foreground": "#171412",
      "popover": "#FFFFFF",
      "popover-foreground": "#171412",
      "primary": "#1F1C19",
      "primary-foreground": "#ffffff",
      "secondary": "#5A534B",
      "secondary-foreground": "#ffffff",
      "muted": "#746D64",
      "muted-foreground": "#171412",
      "accent": "#B4573D",
      "accent-foreground": "#ffffff",
      "destructive": "#9B2F24",
      "border": "#2A2622",
      "input": "#2A2622",
      "ring": "#B4573D",
      "chart-1": "#1F1C19",
      "chart-2": "#5A534B",
      "chart-3": "#B4573D",
      "chart-4": "#3F6B4A",
      "chart-5": "#B08A2E",
      "sidebar": "#FFFFFF",
      "sidebar-foreground": "#171412",
      "sidebar-primary": "#1F1C19",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#3D5F7A",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#2A2622",
      "sidebar-ring": "#B4573D",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#1F1C19",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#B4573D",
      "accent-foreground": "#ffffff",
      "destructive": "#9B2F24",
      "border": "#303642",
      "input": "#303642",
      "ring": "#B4573D",
      "chart-1": "#1F1C19",
      "chart-2": "#5A534B",
      "chart-3": "#B4573D",
      "chart-4": "#3F6B4A",
      "chart-5": "#B08A2E",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#1F1C19",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#B4573D",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#B4573D",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019dca9f-5e57-7891-8193-7fcffb035b8e",
    "slug": "crossover-editorial-ink-fine-art",
    "componentManifest": [
      "button",
      "card",
      "input",
      "textarea",
      "select",
      "dialog",
      "sheet",
      "tabs",
      "badge",
      "separator",
      "checkbox",
      "switch",
      "slider",
      "tooltip",
      "dropdown-menu",
      "table"
    ],
    "installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
    "nativeTokenNames": {
      "colors": [
        "accent",
        "background",
        "border",
        "error",
        "info",
        "muted",
        "primary",
        "secondary",
        "success",
        "surface",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ]
    }
  }
}
component recipescompatibility fallback
# Crossover Editorial Ink Fine Art shadcn/ui Components

Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019dca9f-5e57-7891-8193-7fcffb035b8e`
Slug: `crossover-editorial-ink-fine-art`

## Intent

Crossover Editorial Ink Fine Art treats the product interface as a drawn publication spread: rigorous editorial structure crossed with visible pen pressure, gallery-white restraint, and the argumentative clarity of visual commentary. It is made for dashboards, briefs, and publishing tools where the interface should feel authored rather than decorated: every panel is a sheet, every rule is a drawn line, and every annotation behaves like marginalia in an artist-edited newspaper proof.

## Required primitives

- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table

Install with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.

## Token cues

Colors:

{
  "primary": "#1F1C19",
  "secondary": "#5A534B",
  "accent": "#B4573D",
  "background": "#FFFFFF",
  "surface": "#FFFFFF",
  "text": "#171412",
  "muted": "#746D64",
  "border": "#2A2622",
  "error": "#9B2F24",
  "success": "#3F6B4A",
  "warning": "#B08A2E",
  "info": "#3D5F7A"
}

Typography:

{
  "heading_font": "Newsreader",
  "body_font": "IBM Plex Sans",
  "mono_font": "IBM Plex Mono",
  "base_size": "16px",
  "scale_ratio": 1.22,
  "line_height": 1.48,
  "letter_spacing": "-0.02em",
  "google_fonts_url": "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600;700&family=Newsreader:opsz,wght@6..72,500;6..72,650;6..72,750&display=swap"
}

## Visual character to preserve

- All primary panels use 1px charcoal ink borders with deliberately offset pseudo-element duplicate rules to mimic hand-registered publication boxes.
- Section headers combine uppercase folio labels with a thick brush-stroke underline made from rough repeating-linear-gradient ink marks.
- Cards and alerts sit on pure gallery-white surfaces over a subtle newsprint paper grain created with layered radial-gradient noise.
- Muted spot-color chips appear as small pressed-ink rectangles behind labels while the rest of the composition remains monochrome.
- Data blocks include hatching and cross-hatching backgrounds using thin repeating-linear-gradients clipped to margins and progress fills.

## ShadSync visual profile

{
  "family": "paper-collage",
  "material": "paper",
  "contour": "blob",
  "border": "solid",
  "underlay": true,
  "grain": true,
  "stickerBadges": true,
  "motion": "lift-rotate",
  "density": "balanced",
  "accents": [
    "primary",
    "accent",
    "secondary",
    "muted"
  ]
}

## Signature component recipes

### Button
Use `Button` for primary, secondary, outline, and ghost actions. Primary actions must expose the language's strongest contrast pair, while secondary and ghost actions should preserve the surface treatment instead of falling back to default neutral SaaS styling.

### Card
Use `Card`, `CardHeader`, `CardContent`, `CardFooter`, and `CardAction` as the main composition frame. Cards should demonstrate the language's surface, border, hierarchy, and density rules rather than appearing as generic rounded rectangles.

### Input and Textarea
Use `Input` and `Textarea` with visible focus rings, field labels, validation states, and the language's rhythm. Forms should show real product content, not placeholder-only controls.

### Select, Tabs, and Table
Use `Select`, `Tabs`, and `Table` to prove navigation, filtering, and dense data states. The table should show row rhythm, separators, hover/focus states, and an empty or status state when the language calls for it.

### Dialog and Sheet
Use `Dialog` for centered decisions and `Sheet` for contextual editing. Both should inherit the language's spacing, border, overlay, and motion rules.

## Preview shots

- `application-shell`: dashboard or workspace shell with navigation, cards, forms, and state badges.
- `detail-editor`: focused editing flow using input, textarea, select, switch/checkbox, dialog or sheet, and action buttons.
- `data-operations`: table-heavy operational view with tabs, dropdown menu affordances, badges, and destructive/empty states.
- Each preview shot must include a renderable `scene` payload with concrete headline, description, actions, and rows/fields/stats for the UI preview.

## Implementation contract

- Start from local `ui/src/components/ui` shadcn-style primitives; do not create a second component system.
- Apply `/katagami/shadcn/crossover-editorial-ink-fine-art/registry-theme.json` variables, then use these recipes for composition and state design.
- Preserve Katagami token names as source metadata; shadcn semantic names are only the export surface.
- Do: Use pure #FFFFFF surfaces and let charcoal linework define structure before adding color.; Make headings feel like publication headlines with Newsreader and tight -0.02em spacing on all text.; Use hatching, cross-hatching, and ink-wash marks to encode progress, emphasis, and commentary.; Keep spot color muted and scarce, as if limited to one press plate or editor stamp.; Use offset pseudo-borders on panels, dialogs, cards, and alerts to preserve the hand-registered print quality.; Wrap dense tables in ruled paper containers and use mono captions for dates, IDs, and status.; Preserve 44px touch targets and stack controls on mobile while retaining drawn borders.
- Do not: Do not use gradient buttons, glass cards, pastel backgrounds, or soft app-store illustration styles.; Do not round every surface casually; use 0px for editorial sheets and 16px or 24px only when a control needs tactility.; Do not center everything like a landing page; maintain editorial columns and marginal relationships.; Do not introduce multiple bright accent colors; one muted spot color is enough.; Do not use default browser form controls; every input must be explicitly ink-bordered and paper-like.; Do not replace linework with generic icons or emoji when typographic marks and drawn rules can communicate.; Do not allow mobile layouts to crop the modal, table, or folio navigation.

## 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 CrossoverEditorialInkFineArtShadcnKit() {
  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">Crossover Editorial Ink Fine Art</h2>
          <p className="mt-1 max-w-xl text-sm text-muted-foreground">
            Use the Katagami registry theme, then compose these shadcn primitives
            with the language-specific component recipes.
          </p>
        </div>
        <Button>Apply theme</Button>
      </div>

      <Tabs defaultValue="components">
        <TabsList>
          <TabsTrigger value="components">Components</TabsTrigger>
          <TabsTrigger value="states">States</TabsTrigger>
          <TabsTrigger value="export">Export</TabsTrigger>
        </TabsList>
      </Tabs>

      <Card>
        <CardHeader>
          <CardTitle>Component recipe</CardTitle>
          <CardDescription>
            Replace this starter content with the agent-authored product scene
            from components.md and preview-shots.json.
          </CardDescription>
        </CardHeader>
        <CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
          <Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
          <Button variant="secondary">Preview state</Button>
        </CardContent>
        <CardFooter className="justify-between">
          <Badge>Ready</Badge>
          <Button variant="outline">Copy recipe</Button>
        </CardFooter>
      </Card>
    </section>
  );
}
```

## Layout notes

{
  "grid": "Desktop uses a 12-column editorial spread with a 72px folio rail, 24px gutters, and a max-width of 1320px. The lead desk spans seven columns, the margin stack spans four, and the folio rail carries navigation and pagination.",
  "breakpoints": "At 1024px the spread becomes an 8-column layout with the folio rail across the top; at 768px panels stack into two columns; at 480px and below everything becomes a single full-width column with tables in horizontal scroll wrappers and buttons stacked.",
  "whitespace": "Whitespace is gallery-white negative space: wide outer margins, strong gaps between ruled paper sheets, and compact internal rows. Empty space should feel curated and silent, not unfinished.",
  "density": "The language supports editorial density by separating blocks with rules, labels, and hatching instead of extra chromatic decoration.",
  "responsive": {
    "desktop": "1440px 12 columns",
    "tablet": "768px 2 columns",
    "mobile": "375px 1 column"
  }
}
preview shotscompatibility fallback
{
  "artifact": "katagami:shadcn-preview-shots",
  "version": "preview-shots-v1",
  "generator": "katagami-ui-compatibility-projection",
  "generatedBy": "katagami-ui-projection",
  "requiresVisualProfile": true,
  "schema": "katagami:shadcn-preview-shots/renderable-v1",
  "renderable": true,
  "language": {
    "id": "en-019dca9f-5e57-7891-8193-7fcffb035b8e",
    "name": "Crossover Editorial Ink Fine Art",
    "slug": "crossover-editorial-ink-fine-art"
  },
  "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": [
    "All primary panels use 1px charcoal ink borders with deliberately offset pseudo-element duplicate rules to mimic hand-registered publication boxes.",
    "Section headers combine uppercase folio labels with a thick brush-stroke underline made from rough repeating-linear-gradient ink marks.",
    "Cards and alerts sit on pure gallery-white surfaces over a subtle newsprint paper grain created with layered radial-gradient noise.",
    "Muted spot-color chips appear as small pressed-ink rectangles behind labels while the rest of the composition remains monochrome.",
    "Data blocks include hatching and cross-hatching backgrounds using thin repeating-linear-gradients clipped to margins and progress fills."
  ],
  "visualProfile": {
    "family": "paper-collage",
    "material": "paper",
    "contour": "blob",
    "border": "solid",
    "underlay": true,
    "grain": true,
    "stickerBadges": true,
    "motion": "lift-rotate",
    "density": "balanced",
    "accents": [
      "primary",
      "accent",
      "secondary",
      "muted"
    ]
  },
  "shots": [
    {
      "id": "application-shell",
      "title": "Application shell",
      "viewport": "desktop",
      "primitives": [
        "button",
        "card",
        "input",
        "select",
        "tabs",
        "badge",
        "separator",
        "table"
      ],
      "composition": "A real product workspace with navigation, summary cards, filtering controls, and one dense content region.",
      "mustShow": [
        "primary and secondary actions",
        "card hierarchy",
        "filterable state",
        "table or list density"
      ],
      "avoid": [
        "component inventory walls",
        "placeholder-only content",
        "generic rounded SaaS chrome"
      ],
      "scene": {
        "eyebrow": "workspace spread",
        "headline": "Crossover Editorial Ink Fine Art launch room",
        "description": "A product team workspace where navigation, filters, metrics, and dense rows carry the language's visible structure.",
        "primaryAction": "Apply theme",
        "secondaryAction": "Review states",
        "stats": [
          {
            "label": "components",
            "value": "16",
            "tone": "accent"
          },
          {
            "label": "states",
            "value": "ready"
          },
          {
            "label": "density",
            "value": "balanced",
            "tone": "warning"
          }
        ],
        "rows": [
          {
            "label": "Primary flow",
            "value": "mapped",
            "status": "active"
          },
          {
            "label": "Token coverage",
            "value": "semantic",
            "status": "synced"
          },
          {
            "label": "Responsive proof",
            "value": "queued",
            "status": "review"
          }
        ],
        "statuses": [
          "Active",
          "Synced",
          "Draft"
        ]
      }
    },
    {
      "id": "detail-editor",
      "title": "Detail editor",
      "viewport": "tablet",
      "primitives": [
        "button",
        "card",
        "input",
        "textarea",
        "select",
        "checkbox",
        "switch",
        "slider",
        "dialog",
        "sheet"
      ],
      "composition": "A focused editing flow with form fields, validation, confirmation, and a contextual side panel.",
      "mustShow": [
        "focus ring",
        "error or destructive state",
        "dialog or sheet treatment",
        "written guidance content"
      ],
      "avoid": [
        "unstyled browser controls",
        "floating cards inside cards",
        "missing labels"
      ],
      "scene": {
        "eyebrow": "editing flow",
        "headline": "Language recipe editor",
        "description": "A focused form proving labels, validation, toggles, panel rhythm, and action hierarchy.",
        "primaryAction": "Save recipe",
        "secondaryAction": "Open sheet",
        "fields": [
          {
            "label": "Component family",
            "value": "Narrative cards"
          },
          {
            "label": "State treatment",
            "value": "Visible focus + validation"
          },
          {
            "label": "Motion",
            "value": "Small lift, no opacity-only fade"
          }
        ],
        "statuses": [
          "Focus",
          "Invalid",
          "Confirmed"
        ]
      }
    },
    {
      "id": "data-operations",
      "title": "Data operations",
      "viewport": "mobile",
      "primitives": [
        "button",
        "tabs",
        "badge",
        "dropdown-menu",
        "table",
        "tooltip",
        "separator"
      ],
      "composition": "A compact operational view proving row rhythm, stacked actions, menu states, badges, and empty/destructive states.",
      "mustShow": [
        "responsive reflow",
        "dense row styling",
        "menu affordance",
        "status badge system"
      ],
      "avoid": [
        "desktop-only tables",
        "text overflow",
        "default shadcn spacing without Katagami character"
      ],
      "scene": {
        "eyebrow": "operations",
        "headline": "Compact review queue",
        "description": "A narrow viewport scene with rows, menus, tooltips, badges, and destructive affordances.",
        "primaryAction": "Resolve",
        "secondaryAction": "Filter",
        "rows": [
          {
            "label": "Button hierarchy",
            "value": "approved",
            "status": "ok"
          },
          {
            "label": "Table rhythm",
            "value": "needs pass",
            "status": "watch"
          },
          {
            "label": "Empty state",
            "value": "designed",
            "status": "done"
          }
        ],
        "statuses": [
          "Queued",
          "Blocked",
          "Done"
        ]
      }
    }
  ],
  "componentRecipes": [
    {
      "primitive": "button",
      "intent": "Prove action hierarchy, focus, disabled, and destructive states."
    },
    {
      "primitive": "card",
      "intent": "Carry the language surface, border, elevation, and density rules."
    },
    {
      "primitive": "input",
      "intent": "Show labels, focus rings, validation, and spacing rhythm."
    },
    {
      "primitive": "textarea",
      "intent": "Show longer guidance, validation copy, and writing density."
    },
    {
      "primitive": "select",
      "intent": "Show filtering, selection contrast, and menu trigger styling."
    },
    {
      "primitive": "dialog",
      "intent": "Show centered decision states and overlay treatment."
    },
    {
      "primitive": "sheet",
      "intent": "Show contextual side panels and responsive editing."
    },
    {
      "primitive": "tabs",
      "intent": "Show navigational structure and active/inactive contrast."
    },
    {
      "primitive": "badge",
      "intent": "Show compact status vocabulary and semantic colors."
    },
    {
      "primitive": "separator",
      "intent": "Show section rhythm without generic gray dividers."
    },
    {
      "primitive": "checkbox",
      "intent": "Show binary selection with visible focus and checked states."
    },
    {
      "primitive": "switch",
      "intent": "Show settings toggles and on/off contrast."
    },
    {
      "primitive": "slider",
      "intent": "Show numeric adjustment with track/thumb styling."
    },
    {
      "primitive": "tooltip",
      "intent": "Show concise explanation styling above compact controls."
    },
    {
      "primitive": "dropdown-menu",
      "intent": "Show action menus, destructive items, and grouped choices."
    },
    {
      "primitive": "table",
      "intent": "Show dense operational data, separators, row states, and responsive behavior."
    }
  ],
  "qualityRules": {
    "do": [
      "Use pure #FFFFFF surfaces and let charcoal linework define structure before adding color.",
      "Make headings feel like publication headlines with Newsreader and tight -0.02em spacing on all text.",
      "Use hatching, cross-hatching, and ink-wash marks to encode progress, emphasis, and commentary.",
      "Keep spot color muted and scarce, as if limited to one press plate or editor stamp.",
      "Use offset pseudo-borders on panels, dialogs, cards, and alerts to preserve the hand-registered print quality.",
      "Wrap dense tables in ruled paper containers and use mono captions for dates, IDs, and status.",
      "Preserve 44px touch targets and stack controls on mobile while retaining drawn borders."
    ],
    "dont": [
      "Do not use gradient buttons, glass cards, pastel backgrounds, or soft app-store illustration styles.",
      "Do not round every surface casually; use 0px for editorial sheets and 16px or 24px only when a control needs tactility.",
      "Do not center everything like a landing page; maintain editorial columns and marginal relationships.",
      "Do not introduce multiple bright accent colors; one muted spot color is enough.",
      "Do not use default browser form controls; every input must be explicitly ink-bordered and paper-like.",
      "Do not replace linework with generic icons or emoji when typographic marks and drawn rules can communicate.",
      "Do not allow mobile layouts to crop the modal, table, or folio navigation."
    ]
  }
}
related

More like this