back to gallerydo avoid
design language·retrofuturism-chrome
Retrofuturism Chrome
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
Chrome and metallic surfaces meet neon highlights in a retrofuturist vision — sci-fi optimism fused with arcade nostalgia, where every interface feels like a control panel from a future that never was
values
Chrome metallic surfaces as the foundational texture — brushed steel, reflective gradients, and polished aluminum evoke tactile hardwareNeon highlights that cut through dark space like cockpit indicators — cyan, pink, and amber used sparingly for maximum signalSci-fi optimism — the future is exciting, exploration-worthy, and built by humans with ambitionArcade nostalgia filtered through modern craft — pixel-perfect meets resolution-independentDeep space darkness as canvas — elements float in void with purposeful glowTypography as engineering — monospaced readouts, angular headings, technical precisionMotion as mechanical response — elastic springs and servo-like transitions, not organic flow
anti-values
×Flat corporate minimalism that strips away all personality and texture×Warm organic palettes — no wood grain, no earth tones, no botanical softness×Rounded bubbly shapes that suggest toys rather than instruments×Pastel anything — this is high-contrast neon on deep dark, never gentle
tokens
colors12 items
primary
#00d4ff
secondary
#ff6ec7
accent
#ffd700
background
#0d0d1a
surface
#1a1a2e
text
#e8e8f0
muted
#7a7a8e
border
#2d2d4a
error
#ff4757
success
#2ed573
warning
#ffd700
info
#00d4ff
typography6 items
- heading font
- Orbitron
- body font
- Rajdhani
- mono
- Share Tech Mono
- google fonts url
- https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700;800;900&family=Rajdhani:wght@300;400;500;600;700&family=Share+Tech+Mono&display=swap
- scale
- xs 0.75rem·sm 0.875rem·base 1rem·lg 1.125rem·xl 1.25rem·2xl 1.5rem·3xl 1.875rem·4xl 2.25rem·5xl 3rem
- line heights
- tight 1.2·normal 1.5·relaxed 1.75
spacing2 items
- unit
- 4px
- scale
- 0, 4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px, 96px, 128px
radii7 items
- none
- 0
- sm
- 2px
- md
- 4px
- lg
- 8px
- xl
- 12px
- 2xl
- 16px
- full
- 9999px
shadows5 items
- sm
- 0 0 10px rgba(0,212,255,0.1)
- md
- 0 0 20px rgba(0,212,255,0.2), 0 0 40px rgba(255,110,199,0.1)
- lg
- 0 0 30px rgba(0,212,255,0.3), 0 0 60px rgba(255,110,199,0.15)
- glow
- 0 0 20px rgba(0,212,255,0.5), 0 0 40px rgba(255,110,199,0.25)
- chrome
- inset 0 1px 0 rgba(255,255,255,0.15), inset 0 -1px 0 rgba(0,0,0,0.3)
surfaces4 items
- treatment
- gradient
- primary gradient
- linear-gradient(135deg, #00d4ff, #ff6ec7)
- chrome gradient
- linear-gradient(180deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.02) 50%, rgba(0,0,0,0.1) 100%)
- space gradient
- linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%)
borders4 items
- default width
- 1px
- accent width
- 2px
- default color
- #2d2d4a
- accent colors
- #00d4ff, #ff6ec7, #ffd700
motion3 items
- philosophy
- elastic
- durations
- instant 100ms·fast 200ms·normal 300ms·slow 500ms·dramatic 800ms
- easings
- default cubic-bezier(0.34, 1.56, 0.64, 1)·in cubic-bezier(0.55, 0, 1, 0.45)·out cubic-bezier(0, 0.55, 0.45, 1)·bounce cubic-bezier(0.34, 1.8, 0.64, 1)
rules
composition
- max colors per view
- 5
- gradient direction
- 135deg for neon diagonals, 180deg for chrome vertical sheen
- contrast ratio minimum
- 4.5:1 for body text, 3:1 for large text and UI components
- neon usage
- Neon glow reserved for headings, active states, and focus indicators — never body text
- chrome usage
- Chrome gradients on buttons, card headers, and interactive surfaces — subtle metallic sheen, not mirror-finish
hierarchy
- levels
- 4
- primary signal
- Neon gradient fills and glow shadows for highest priority actions
- secondary signal
- Chrome metallic gradient surfaces with neon border accents
- tertiary signal
- Muted text on dark surfaces with subtle border
- background signal
- Deep space surface color with no embellishment
density
- default
- comfortable
- options
- compact, comfortable, spacious
- comfortable cell padding
- 16px 24px
- compact cell padding
- 8px 16px
signature patterns
Neon gradient borders using border-image: linear-gradient(135deg, #ff6ec7, #00d4ff) 1 on cards and containersMetallic text gradients via background: linear-gradient(180deg, #e8e8f0, #7a7a8e); -webkit-background-clip: text on display headingsGlow text-shadow: 0 0 20px rgba(0,212,255,0.5) on all h1 and h2 headings for neon presenceChrome-effect linear gradients on buttons: linear-gradient(180deg, rgba(255,255,255,0.1), rgba(255,255,255,0.02), rgba(0,0,0,0.1)) layered over primary colorScanline overlay using repeating-linear-gradient for retro CRT texture on hero sections
layout
grid
- type
- 12-column
- max width
- 1440px
- gutter
- 24px
- margin
- 48px on desktop, 24px on tablet, 16px on mobile
- column behavior
- Fluid columns with fixed gutters
breakpoints
- desktop
- min width 1440px·columns 12·sidebar 260px fixed
- tablet
- min width 768px·columns 8·sidebar collapsed to icon rail
- mobile
- min width 375px·columns 4·sidebar hidden, hamburger menu
whitespace
- section gap
- 64px on desktop, 48px on tablet, 32px on mobile
- card gap
- 24px
- content padding
- 24px inside cards and containers
- approach
- Generous whitespace so neon glow effects breathe against deep dark backgrounds
density
- default mode
- comfortable
- comfortable
- row height 56px for table rows, 48px for list items·input height 44px·button height 44px
- compact
- row height 40px for table rows, 36px for list items·input height 36px·button height 36px
guidance
- Use neon gradient border-image on cards and containers to define boundaries with electric personality
- Apply text-shadow glow (0 0 20px) on h1 and h2 headings for neon presence against dark space
- Layer chrome metallic gradients on buttons and interactive surfaces for tactile depth
- Use Orbitron for all headings to reinforce the retrofuturist engineering aesthetic
- Pair Rajdhani body text with Share Tech Mono code blocks for typographic hierarchy
- Reserve accent amber (#ffd700) for warnings, highlights, and star ratings only
- Use elastic easing (cubic-bezier 0.34, 1.56, 0.64, 1) on hover and click for mechanical spring feel
- Maintain 4.5:1 contrast ratio for all body text against surface colors
- Apply scanline or CRT texture overlays sparingly on hero sections for retro depth
- Test all neon glow effects at mobile sizes to ensure they do not bleed or overlap
- Never use glow text-shadow on body text — it destroys readability below 16px
- Never combine more than two gradient directions in a single viewport
- Do not use cyan or pink as body text colors on dark backgrounds — insufficient contrast
- Do not apply elastic motion to more than three elements simultaneously
- Never use neon colors at full saturation for large background areas — they cause eye fatigue
- Do not pair pink and red in proximity — they vibrate uncomfortably
- Avoid chrome gradient on elements smaller than 32px — the metallic effect is invisible
- Do not use full neon gradient on disabled states — use muted color with 40% opacity
- Never auto-play glow pulse animations on more than one element per viewport
- Do not use border-radius > 12px on containers — keep edges sharp and technical
katagami spec
# Retrofuturism Chrome
## Philosophy
Chrome and metallic surfaces meet neon highlights in a retrofuturist vision — sci-fi optimism fused with arcade nostalgia, where every interface feels like a control panel from a future that never was
### Values
- Chrome metallic surfaces as the foundational texture — brushed steel, reflective gradients, and polished aluminum evoke tactile hardware
- Neon highlights that cut through dark space like cockpit indicators — cyan, pink, and amber used sparingly for maximum signal
- Sci-fi optimism — the future is exciting, exploration-worthy, and built by humans with ambition
- Arcade nostalgia filtered through modern craft — pixel-perfect meets resolution-independent
- Deep space darkness as canvas — elements float in void with purposeful glow
- Typography as engineering — monospaced readouts, angular headings, technical precision
- Motion as mechanical response — elastic springs and servo-like transitions, not organic flow
### Anti-Values
- Flat corporate minimalism that strips away all personality and texture
- Warm organic palettes — no wood grain, no earth tones, no botanical softness
- Rounded bubbly shapes that suggest toys rather than instruments
- Pastel anything — this is high-contrast neon on deep dark, never gentle
### Visual Character
- background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%) for deep space base
- border-image: linear-gradient(135deg, #ff6ec7, #00d4ff) 1 for neon gradient borders on cards
- text-shadow: 0 0 20px rgba(0,212,255,0.5) on headings for neon glow
- background: linear-gradient(180deg, rgba(0,212,255,0.15), rgba(255,110,199,0.05)) for chrome-tinted surface overlays
- box-shadow: 0 0 30px rgba(0,212,255,0.2), inset 0 1px 0 rgba(255,255,255,0.1) for metallic depth with chrome highlight
## Tokens
### Colors
| Name | Value |
|------|-------|
| primary | `#00d4ff` |
| secondary | `#ff6ec7` |
| accent | `#ffd700` |
| background | `#0d0d1a` |
| surface | `#1a1a2e` |
| text | `#e8e8f0` |
| muted | `#7a7a8e` |
| border | `#2d2d4a` |
| error | `#ff4757` |
| success | `#2ed573` |
| warning | `#ffd700` |
| info | `#00d4ff` |
### Typography
- **Heading Font**: Orbitron
- **Body Font**: Rajdhani
- **Mono**: Share Tech Mono
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700;800;900&family=Rajdhani:wght@300;400;500;600;700&family=Share+Tech+Mono&display=swap
- **Scale**: {"xs":"0.75rem","sm":"0.875rem","base":"1rem","lg":"1.125rem","xl":"1.25rem","2xl":"1.5rem","3xl":"1.875rem","4xl":"2.25rem","5xl":"3rem"}
- **Line Heights**: {"tight":"1.2","normal":"1.5","relaxed":"1.75"}
### Spacing
- **Unit**: 4px
- **Scale**: ["0","4px","8px","12px","16px","24px","32px","48px","64px","96px","128px"]
### Radii
- **None**: 0
- **Sm**: 2px
- **Md**: 4px
- **Lg**: 8px
- **Xl**: 12px
- **2xl**: 16px
- **Full**: 9999px
### Shadows
- **Sm**: 0 0 10px rgba(0,212,255,0.1)
- **Md**: 0 0 20px rgba(0,212,255,0.2), 0 0 40px rgba(255,110,199,0.1)
- **Lg**: 0 0 30px rgba(0,212,255,0.3), 0 0 60px rgba(255,110,199,0.15)
- **Glow**: 0 0 20px rgba(0,212,255,0.5), 0 0 40px rgba(255,110,199,0.25)
- **Chrome**: inset 0 1px 0 rgba(255,255,255,0.15), inset 0 -1px 0 rgba(0,0,0,0.3)
### Surfaces
- **Treatment**: gradient
- **Primary Gradient**: linear-gradient(135deg, #00d4ff, #ff6ec7)
- **Chrome Gradient**: linear-gradient(180deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.02) 50%, rgba(0,0,0,0.1) 100%)
- **Space Gradient**: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%)
### Borders
- **Default Width**: 1px
- **Accent Width**: 2px
- **Default Color**: #2d2d4a
- **Accent Colors**: ["#00d4ff","#ff6ec7","#ffd700"]
### Motion
- **Philosophy**: elastic
- **Durations**: {"instant":"100ms","fast":"200ms","normal":"300ms","slow":"500ms","dramatic":"800ms"}
- **Easings**: {"default":"cubic-bezier(0.34, 1.56, 0.64, 1)","in":"cubic-bezier(0.55, 0, 1, 0.45)","out":"cubic-bezier(0, 0.55, 0.45, 1)","bounce":"cubic-bezier(0.34, 1.8, 0.64, 1)"}
## Rules
### Composition
- **Max Colors Per View**: 5
- **Gradient Direction**: 135deg for neon diagonals, 180deg for chrome vertical sheen
- **Contrast Ratio Minimum**: 4.5:1 for body text, 3:1 for large text and UI components
- **Neon Usage**: Neon glow reserved for headings, active states, and focus indicators — never body text
- **Chrome Usage**: Chrome gradients on buttons, card headers, and interactive surfaces — subtle metallic sheen, not mirror-finish
### Hierarchy
- **Levels**: 4
- **Primary Signal**: Neon gradient fills and glow shadows for highest priority actions
- **Secondary Signal**: Chrome metallic gradient surfaces with neon border accents
- **Tertiary Signal**: Muted text on dark surfaces with subtle border
- **Background Signal**: Deep space surface color with no embellishment
### Density
- **Default**: comfortable
- **Options**: ["compact","comfortable","spacious"]
- **Comfortable Cell Padding**: 16px 24px
- **Compact Cell Padding**: 8px 16px
### Signature Patterns
- Neon gradient borders using border-image: linear-gradient(135deg, #ff6ec7, #00d4ff) 1 on cards and containers
- Metallic text gradients via background: linear-gradient(180deg, #e8e8f0, #7a7a8e); -webkit-background-clip: text on display headings
- Glow text-shadow: 0 0 20px rgba(0,212,255,0.5) on all h1 and h2 headings for neon presence
- Chrome-effect linear gradients on buttons: linear-gradient(180deg, rgba(255,255,255,0.1), rgba(255,255,255,0.02), rgba(0,0,0,0.1)) layered over primary color
- Scanline overlay using repeating-linear-gradient for retro CRT texture on hero sections
## Layout
### Grid
- **Type**: 12-column
- **Max Width**: 1440px
- **Gutter**: 24px
- **Margin**: 48px on desktop, 24px on tablet, 16px on mobile
- **Column Behavior**: Fluid columns with fixed gutters
### Breakpoints
- **Desktop**: {"min_width":"1440px","columns":12,"sidebar":"260px fixed"}
- **Tablet**: {"min_width":"768px","columns":8,"sidebar":"collapsed to icon rail"}
- **Mobile**: {"min_width":"375px","columns":4,"sidebar":"hidden, hamburger menu"}
### Whitespace
- **Section Gap**: 64px on desktop, 48px on tablet, 32px on mobile
- **Card Gap**: 24px
- **Content Padding**: 24px inside cards and containers
- **Approach**: Generous whitespace so neon glow effects breathe against deep dark backgrounds
### Density
- **Default Mode**: comfortable
- **Comfortable**: {"row_height":"56px for table rows, 48px for list items","input_height":"44px","button_height":"44px"}
- **Compact**: {"row_height":"40px for table rows, 36px for list items","input_height":"36px","button_height":"36px"}
## Guidance
### Do
- Use neon gradient border-image on cards and containers to define boundaries with electric personality
- Apply text-shadow glow (0 0 20px) on h1 and h2 headings for neon presence against dark space
- Layer chrome metallic gradients on buttons and interactive surfaces for tactile depth
- Use Orbitron for all headings to reinforce the retrofuturist engineering aesthetic
- Pair Rajdhani body text with Share Tech Mono code blocks for typographic hierarchy
- Reserve accent amber (#ffd700) for warnings, highlights, and star ratings only
- Use elastic easing (cubic-bezier 0.34, 1.56, 0.64, 1) on hover and click for mechanical spring feel
- Maintain 4.5:1 contrast ratio for all body text against surface colors
- Apply scanline or CRT texture overlays sparingly on hero sections for retro depth
- Test all neon glow effects at mobile sizes to ensure they do not bleed or overlap
### Don't
- Never use glow text-shadow on body text — it destroys readability below 16px
- Never combine more than two gradient directions in a single viewport
- Do not use cyan or pink as body text colors on dark backgrounds — insufficient contrast
- Do not apply elastic motion to more than three elements simultaneously
- Never use neon colors at full saturation for large background areas — they cause eye fatigue
- Do not pair pink and red in proximity — they vibrate uncomfortably
- Avoid chrome gradient on elements smaller than 32px — the metallic effect is invisible
- Do not use full neon gradient on disabled states — use muted color with 40% opacity
- Never auto-play glow pulse animations on more than one element per viewport
- Do not use border-radius > 12px on containers — keep edges sharp and technical
### Usage Context
- **Ideal For**: ["Space and sci-fi themed applications","Retro arcade launchers and gaming dashboards","Music production and media player interfaces","Developer tools and terminal-style UIs","Portfolio sites for digital artists and designers"]
- **Poor Fit For**: ["Enterprise B2B SaaS with conservative audiences","Medical or healthcare interfaces","E-commerce checkout flows","Government and accessibility-critical systems"]
- **Time Of Day**: Optimized for dark/night-mode usage — neon on dark backgrounds excels in low-light environments
### Accessibility
- **Contrast Targets**: WCAG AA minimum (4.5:1 body, 3:1 large text and UI components)
- **Focus Indicators**: 2px solid #00d4ff outline with 2px offset — high visibility against dark surfaces
- **Motion Sensitivity**: Respect prefers-reduced-motion: disable glow pulses, reduce transitions to 100ms, disable scanline animations
- **Color Independence**: Never convey meaning through color alone — always pair with icons, labels, or patterns
- **Screen Reader**: All decorative gradients, chrome textures, and glow effects use aria-hidden; meaningful states have text alternatives
DESIGN.md
---
version: "alpha"
name: "Retrofuturism Chrome"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
primary: "#00d4ff"
secondary: "#ff6ec7"
accent: "#ffd700"
background: "#0d0d1a"
surface: "#1a1a2e"
text: "#e8e8f0"
muted: "#7a7a8e"
border: "#2d2d4a"
error: "#ff4757"
success: "#2ed573"
warning: "#ffd700"
info: "#00d4ff"
typography:
headline-lg:
fontFamily: "Orbitron"
fontSize: "1.953rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Orbitron"
fontSize: "1.563rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "Rajdhani"
fontSize: "16px"
fontWeight: 400
lineHeight: 1.5
letterSpacing: "-0.02em"
label-md:
fontFamily: "Rajdhani"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
none: "0px"
sm: "2px"
md: "4px"
lg: "8px"
xl: "12px"
2xl: "16px"
full: "9999px"
spacing:
xs: "0px"
sm: "4px"
md: "8px"
lg: "12px"
xl: "16px"
2xl: "24px"
3xl: "32px"
4xl: "48px"
step-8: "64px"
step-9: "96px"
step-10: "128px"
unit: "4px"
components:
color-reference-primary:
backgroundColor: "{colors.primary}"
color-reference-secondary:
backgroundColor: "{colors.secondary}"
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-background:
backgroundColor: "{colors.background}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-error:
backgroundColor: "{colors.error}"
color-reference-success:
backgroundColor: "{colors.success}"
color-reference-warning:
backgroundColor: "{colors.warning}"
color-reference-info:
backgroundColor: "{colors.info}"
button-primary:
backgroundColor: "{colors.primary}"
textColor: "#000000"
typography: "{typography.label-md}"
rounded: "{rounded.md}"
padding: "{spacing.md}"
card-surface:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
padding: "{spacing.md}"
input-default:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
height: "44px"
---
# Retrofuturism Chrome
## Overview
Chrome and metallic surfaces meet neon highlights in a retrofuturist vision — sci-fi optimism fused with arcade nostalgia, where every interface feels like a control panel from a future that never was
### Values
- Chrome metallic surfaces as the foundational texture — brushed steel, reflective gradients, and polished aluminum evoke tactile hardware
- Neon highlights that cut through dark space like cockpit indicators — cyan, pink, and amber used sparingly for maximum signal
- Sci-fi optimism — the future is exciting, exploration-worthy, and built by humans with ambition
- Arcade nostalgia filtered through modern craft — pixel-perfect meets resolution-independent
- Deep space darkness as canvas — elements float in void with purposeful glow
- Typography as engineering — monospaced readouts, angular headings, technical precision
- Motion as mechanical response — elastic springs and servo-like transitions, not organic flow
### Anti-Values
- Flat corporate minimalism that strips away all personality and texture
- Warm organic palettes — no wood grain, no earth tones, no botanical softness
- Rounded bubbly shapes that suggest toys rather than instruments
- Pastel anything — this is high-contrast neon on deep dark, never gentle
### Visual Character
- background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%) for deep space base
- border-image: linear-gradient(135deg, #ff6ec7, #00d4ff) 1 for neon gradient borders on cards
- text-shadow: 0 0 20px rgba(0,212,255,0.5) on headings for neon glow
- background: linear-gradient(180deg, rgba(0,212,255,0.15), rgba(255,110,199,0.05)) for chrome-tinted surface overlays
- box-shadow: 0 0 30px rgba(0,212,255,0.2), inset 0 1px 0 rgba(255,255,255,0.1) for metallic depth with chrome highlight
## 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 | `#00d4ff` |
| secondary | `#ff6ec7` |
| accent | `#ffd700` |
| background | `#0d0d1a` |
| surface | `#1a1a2e` |
| text | `#e8e8f0` |
| muted | `#7a7a8e` |
| border | `#2d2d4a` |
| error | `#ff4757` |
| success | `#2ed573` |
| warning | `#ffd700` |
| info | `#00d4ff` |
## Typography
- **Headline-Lg**: Orbitron, 1.953rem, weight 700, line-height 1.1.
- **Headline-Md**: Orbitron, 1.563rem, weight 600, line-height 1.15.
- **Body-Md**: Rajdhani, 16px, weight 400, line-height 1.5.
- **Label-Md**: Rajdhani, 0.75rem, weight 600, line-height 1.
## Layout
### Spacing Tokens
- **Xs**: `0px`
- **Sm**: `4px`
- **Md**: `8px`
- **Lg**: `12px`
- **Xl**: `16px`
- **2xl**: `24px`
- **3xl**: `32px`
- **4xl**: `48px`
- **Step-8**: `64px`
- **Step-9**: `96px`
- **Step-10**: `128px`
- **Unit**: `4px`
### Grid
- **Type**: 12-column
- **Max Width**: 1440px
- **Gutter**: 24px
- **Margin**: 48px on desktop, 24px on tablet, 16px on mobile
- **Column Behavior**: Fluid columns with fixed gutters
### Breakpoints
- **Desktop**: {"min_width":"1440px","columns":12,"sidebar":"260px fixed"}
- **Tablet**: {"min_width":"768px","columns":8,"sidebar":"collapsed to icon rail"}
- **Mobile**: {"min_width":"375px","columns":4,"sidebar":"hidden, hamburger menu"}
### Whitespace
- **Section Gap**: 64px on desktop, 48px on tablet, 32px on mobile
- **Card Gap**: 24px
- **Content Padding**: 24px inside cards and containers
- **Approach**: Generous whitespace so neon glow effects breathe against deep dark backgrounds
### Density
- **Default Mode**: comfortable
- **Comfortable**: {"row_height":"56px for table rows, 48px for list items","input_height":"44px","button_height":"44px"}
- **Compact**: {"row_height":"40px for table rows, 36px for list items","input_height":"36px","button_height":"36px"}
## Elevation & Depth
### Shadows
- **Sm**: 0 0 10px rgba(0,212,255,0.1)
- **Md**: 0 0 20px rgba(0,212,255,0.2), 0 0 40px rgba(255,110,199,0.1)
- **Lg**: 0 0 30px rgba(0,212,255,0.3), 0 0 60px rgba(255,110,199,0.15)
- **Glow**: 0 0 20px rgba(0,212,255,0.5), 0 0 40px rgba(255,110,199,0.25)
- **Chrome**: inset 0 1px 0 rgba(255,255,255,0.15), inset 0 -1px 0 rgba(0,0,0,0.3)
## Shapes
### Rounded
- **None**: `0px`
- **Sm**: `2px`
- **Md**: `4px`
- **Lg**: `8px`
- **Xl**: `12px`
- **2xl**: `16px`
- **Full**: `9999px`
### Surfaces
- **Treatment**: gradient
- **Primary Gradient**: linear-gradient(135deg, #00d4ff, #ff6ec7)
- **Chrome Gradient**: linear-gradient(180deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.02) 50%, rgba(0,0,0,0.1) 100%)
- **Space Gradient**: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%)
### Borders
- **Default Width**: 1px
- **Accent Width**: 2px
- **Default Color**: #2d2d4a
- **Accent Colors**: ["#00d4ff","#ff6ec7","#ffd700"]
## Components
### Composition
- **Max Colors Per View**: 5
- **Gradient Direction**: 135deg for neon diagonals, 180deg for chrome vertical sheen
- **Contrast Ratio Minimum**: 4.5:1 for body text, 3:1 for large text and UI components
- **Neon Usage**: Neon glow reserved for headings, active states, and focus indicators — never body text
- **Chrome Usage**: Chrome gradients on buttons, card headers, and interactive surfaces — subtle metallic sheen, not mirror-finish
### Hierarchy
- **Levels**: 4
- **Primary Signal**: Neon gradient fills and glow shadows for highest priority actions
- **Secondary Signal**: Chrome metallic gradient surfaces with neon border accents
- **Tertiary Signal**: Muted text on dark surfaces with subtle border
- **Background Signal**: Deep space surface color with no embellishment
### Density
- **Default**: comfortable
- **Options**: ["compact","comfortable","spacious"]
- **Comfortable Cell Padding**: 16px 24px
- **Compact Cell Padding**: 8px 16px
### Signature Patterns
- Neon gradient borders using border-image: linear-gradient(135deg, #ff6ec7, #00d4ff) 1 on cards and containers
- Metallic text gradients via background: linear-gradient(180deg, #e8e8f0, #7a7a8e); -webkit-background-clip: text on display headings
- Glow text-shadow: 0 0 20px rgba(0,212,255,0.5) on all h1 and h2 headings for neon presence
- Chrome-effect linear gradients on buttons: linear-gradient(180deg, rgba(255,255,255,0.1), rgba(255,255,255,0.02), rgba(0,0,0,0.1)) layered over primary color
- Scanline overlay using repeating-linear-gradient for retro CRT texture on hero sections
## 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-019daca7-70ac-7ca1-83fe-b7ef7ef24981/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 neon gradient border-image on cards and containers to define boundaries with electric personality
- Do Apply text-shadow glow (0 0 20px) on h1 and h2 headings for neon presence against dark space
- Do Layer chrome metallic gradients on buttons and interactive surfaces for tactile depth
- Do Use Orbitron for all headings to reinforce the retrofuturist engineering aesthetic
- Do Pair Rajdhani body text with Share Tech Mono code blocks for typographic hierarchy
- Do Reserve accent amber (#ffd700) for warnings, highlights, and star ratings only
- Do Use elastic easing (cubic-bezier 0.34, 1.56, 0.64, 1) on hover and click for mechanical spring feel
- Do Maintain 4.5:1 contrast ratio for all body text against surface colors
- Do Apply scanline or CRT texture overlays sparingly on hero sections for retro depth
- Do Test all neon glow effects at mobile sizes to ensure they do not bleed or overlap
- Don't Never use glow text-shadow on body text — it destroys readability below 16px
- Don't Never combine more than two gradient directions in a single viewport
- Don't Do not use cyan or pink as body text colors on dark backgrounds — insufficient contrast
- Don't Do not apply elastic motion to more than three elements simultaneously
- Don't Never use neon colors at full saturation for large background areas — they cause eye fatigue
- Don't Do not pair pink and red in proximity — they vibrate uncomfortably
- Don't Avoid chrome gradient on elements smaller than 32px — the metallic effect is invisible
- Don't Do not use full neon gradient on disabled states — use muted color with 40% opacity
- Don't Never auto-play glow pulse animations on more than one element per viewport
- Don't Do not use border-radius > 12px on containers — keep edges sharp and technical
### Usage Context
- **Ideal For**: ["Space and sci-fi themed applications","Retro arcade launchers and gaming dashboards","Music production and media player interfaces","Developer tools and terminal-style UIs","Portfolio sites for digital artists and designers"]
- **Poor Fit For**: ["Enterprise B2B SaaS with conservative audiences","Medical or healthcare interfaces","E-commerce checkout flows","Government and accessibility-critical systems"]
- **Time Of Day**: Optimized for dark/night-mode usage — neon on dark backgrounds excels in low-light environments
### Accessibility
- **Contrast Targets**: WCAG AA minimum (4.5:1 body, 3:1 large text and UI components)
- **Focus Indicators**: 2px solid #00d4ff outline with 2px offset — high visibility against dark surfaces
- **Motion Sensitivity**: Respect prefers-reduced-motion: disable glow pulses, reduce transitions to 100ms, disable scanline animations
- **Color Independence**: Never convey meaning through color alone — always pair with icons, labels, or patterns
- **Screen Reader**: All decorative gradients, chrome textures, and glow effects use aria-hidden; meaningful states have text alternatives
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "retrofuturism-chrome",
"type": "registry:theme",
"title": "Retrofuturism Chrome shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#0d0d1a",
"foreground": "#e8e8f0",
"card": "#1a1a2e",
"card-foreground": "#e8e8f0",
"popover": "#1a1a2e",
"popover-foreground": "#e8e8f0",
"primary": "#00d4ff",
"primary-foreground": "#111111",
"secondary": "#ff6ec7",
"secondary-foreground": "#ffffff",
"muted": "#7a7a8e",
"muted-foreground": "#e8e8f0",
"accent": "#ffd700",
"accent-foreground": "#111111",
"destructive": "#ff4757",
"border": "#2d2d4a",
"input": "#2d2d4a",
"ring": "#ffd700",
"chart-1": "#00d4ff",
"chart-2": "#ff6ec7",
"chart-3": "#ffd700",
"chart-4": "#2ed573",
"chart-5": "#ffd700",
"sidebar": "#1a1a2e",
"sidebar-foreground": "#e8e8f0",
"sidebar-primary": "#00d4ff",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#00d4ff",
"sidebar-accent-foreground": "#111111",
"sidebar-border": "#2d2d4a",
"sidebar-ring": "#ffd700",
"radius": "4px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#00d4ff",
"primary-foreground": "#111111",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#ffd700",
"accent-foreground": "#111111",
"destructive": "#ff4757",
"border": "#303642",
"input": "#303642",
"ring": "#ffd700",
"chart-1": "#00d4ff",
"chart-2": "#ff6ec7",
"chart-3": "#ffd700",
"chart-4": "#2ed573",
"chart-5": "#ffd700",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#00d4ff",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#ffd700",
"sidebar-accent-foreground": "#111111",
"sidebar-border": "#303642",
"sidebar-ring": "#ffd700",
"radius": "4px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019daca7-70ac-7ca1-83fe-b7ef7ef24981",
"slug": "retrofuturism-chrome",
"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": [
"body_font",
"google_fonts_url",
"heading_font",
"line_heights",
"mono",
"scale"
],
"spacing": [
"scale",
"unit"
],
"radii": [
"2xl",
"full",
"lg",
"md",
"none",
"sm",
"xl"
],
"shadows": [
"chrome",
"glow",
"lg",
"md",
"sm"
],
"surfaces": [
"chrome_gradient",
"primary_gradient",
"space_gradient",
"treatment"
],
"borders": [
"accent_colors",
"accent_width",
"default_color",
"default_width"
],
"motion": [
"durations",
"easings",
"philosophy"
]
}
}
}
```in the wild
embodiments
the full element showcase
embodiment · retrofuturism-chrome
DESIGN.md
at a glance
Typography
headline-lgOrbitron · 31px · 700
The quick brown fox jumps
headline-mdOrbitron · 25px · 600
The quick brown fox jumps
body-mdRajdhani · 16px · 400
The quick brown fox jumps
label-mdRajdhani · 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
- xs0px
- sm4px
- md8px
- lg12px
- xl16px
- 2xl24px
- 3xl32px
- 4xl48px
- step-864px
- step-996px
- step-10128px
- unit4px
Shape
none0px
sm2px
md4px
lg8px
xl12px
2xl16px
full9999px
shadcn/ui
implementation kit
recommendedcompatibility fallback
DESIGN.md with shadcn
Copy this when the target app uses shadcn/ui. It packages the Katagami DESIGN.md context with the install list, theme variables, component recipes, preview-shot contract, and starter TSX in one Markdown companion.
advanced implementation filesoptional machine-readable theme, CSS, TSX starter, recipes, and preview contract
shadcn add
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu tabletheme css
:root {
--background: #0d0d1a;
--foreground: #e8e8f0;
--card: #1a1a2e;
--card-foreground: #e8e8f0;
--popover: #1a1a2e;
--popover-foreground: #e8e8f0;
--primary: #00d4ff;
--primary-foreground: #111111;
--secondary: #ff6ec7;
--secondary-foreground: #ffffff;
--muted: #7a7a8e;
--muted-foreground: #e8e8f0;
--accent: #ffd700;
--accent-foreground: #111111;
--destructive: #ff4757;
--border: #2d2d4a;
--input: #2d2d4a;
--ring: #ffd700;
--chart-1: #00d4ff;
--chart-2: #ff6ec7;
--chart-3: #ffd700;
--chart-4: #2ed573;
--chart-5: #ffd700;
--sidebar: #1a1a2e;
--sidebar-foreground: #e8e8f0;
--sidebar-primary: #00d4ff;
--sidebar-primary-foreground: #111111;
--sidebar-accent: #00d4ff;
--sidebar-accent-foreground: #111111;
--sidebar-border: #2d2d4a;
--sidebar-ring: #ffd700;
--radius: 4px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #00d4ff;
--primary-foreground: #111111;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #ffd700;
--accent-foreground: #111111;
--destructive: #ff4757;
--border: #303642;
--input: #303642;
--ring: #ffd700;
--chart-1: #00d4ff;
--chart-2: #ff6ec7;
--chart-3: #ffd700;
--chart-4: #2ed573;
--chart-5: #ffd700;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #00d4ff;
--sidebar-primary-foreground: #111111;
--sidebar-accent: #ffd700;
--sidebar-accent-foreground: #111111;
--sidebar-border: #303642;
--sidebar-ring: #ffd700;
--radius: 4px;
}
tsx starter
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { Input } from "@/components/ui/input";
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs";
export function RetrofuturismChromeShadcnKit() {
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">Retrofuturism Chrome</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": "retrofuturism-chrome",
"type": "registry:theme",
"title": "Retrofuturism Chrome shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#0d0d1a",
"foreground": "#e8e8f0",
"card": "#1a1a2e",
"card-foreground": "#e8e8f0",
"popover": "#1a1a2e",
"popover-foreground": "#e8e8f0",
"primary": "#00d4ff",
"primary-foreground": "#111111",
"secondary": "#ff6ec7",
"secondary-foreground": "#ffffff",
"muted": "#7a7a8e",
"muted-foreground": "#e8e8f0",
"accent": "#ffd700",
"accent-foreground": "#111111",
"destructive": "#ff4757",
"border": "#2d2d4a",
"input": "#2d2d4a",
"ring": "#ffd700",
"chart-1": "#00d4ff",
"chart-2": "#ff6ec7",
"chart-3": "#ffd700",
"chart-4": "#2ed573",
"chart-5": "#ffd700",
"sidebar": "#1a1a2e",
"sidebar-foreground": "#e8e8f0",
"sidebar-primary": "#00d4ff",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#00d4ff",
"sidebar-accent-foreground": "#111111",
"sidebar-border": "#2d2d4a",
"sidebar-ring": "#ffd700",
"radius": "4px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#00d4ff",
"primary-foreground": "#111111",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#ffd700",
"accent-foreground": "#111111",
"destructive": "#ff4757",
"border": "#303642",
"input": "#303642",
"ring": "#ffd700",
"chart-1": "#00d4ff",
"chart-2": "#ff6ec7",
"chart-3": "#ffd700",
"chart-4": "#2ed573",
"chart-5": "#ffd700",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#00d4ff",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#ffd700",
"sidebar-accent-foreground": "#111111",
"sidebar-border": "#303642",
"sidebar-ring": "#ffd700",
"radius": "4px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019daca7-70ac-7ca1-83fe-b7ef7ef24981",
"slug": "retrofuturism-chrome",
"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": [
"body_font",
"google_fonts_url",
"heading_font",
"line_heights",
"mono",
"scale"
],
"spacing": [
"scale",
"unit"
],
"radii": [
"2xl",
"full",
"lg",
"md",
"none",
"sm",
"xl"
],
"shadows": [
"chrome",
"glow",
"lg",
"md",
"sm"
],
"surfaces": [
"chrome_gradient",
"primary_gradient",
"space_gradient",
"treatment"
],
"borders": [
"accent_colors",
"accent_width",
"default_color",
"default_width"
],
"motion": [
"durations",
"easings",
"philosophy"
]
}
}
}
component recipescompatibility fallback
# Retrofuturism Chrome shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019daca7-70ac-7ca1-83fe-b7ef7ef24981`
Slug: `retrofuturism-chrome`
## Intent
Chrome and metallic surfaces meet neon highlights in a retrofuturist vision — sci-fi optimism fused with arcade nostalgia, where every interface feels like a control panel from a future that never was
## 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": "#00d4ff",
"secondary": "#ff6ec7",
"accent": "#ffd700",
"background": "#0d0d1a",
"surface": "#1a1a2e",
"text": "#e8e8f0",
"muted": "#7a7a8e",
"border": "#2d2d4a",
"error": "#ff4757",
"success": "#2ed573",
"warning": "#ffd700",
"info": "#00d4ff"
}
Typography:
{
"heading_font": "Orbitron",
"body_font": "Rajdhani",
"mono": "Share Tech Mono",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700;800;900&family=Rajdhani:wght@300;400;500;600;700&family=Share+Tech+Mono&display=swap",
"scale": {
"xs": "0.75rem",
"sm": "0.875rem",
"base": "1rem",
"lg": "1.125rem",
"xl": "1.25rem",
"2xl": "1.5rem",
"3xl": "1.875rem",
"4xl": "2.25rem",
"5xl": "3rem"
},
"line_heights": {
"tight": "1.2",
"normal": "1.5",
"relaxed": "1.75"
}
}
## Visual character to preserve
- background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%) for deep space base
- border-image: linear-gradient(135deg, #ff6ec7, #00d4ff) 1 for neon gradient borders on cards
- text-shadow: 0 0 20px rgba(0,212,255,0.5) on headings for neon glow
- background: linear-gradient(180deg, rgba(0,212,255,0.15), rgba(255,110,199,0.05)) for chrome-tinted surface overlays
- box-shadow: 0 0 30px rgba(0,212,255,0.2), inset 0 1px 0 rgba(255,255,255,0.1) for metallic depth with chrome highlight
## ShadSync visual profile
{
"family": "system",
"material": "flat",
"contour": "default",
"border": "solid",
"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/retrofuturism-chrome/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 neon gradient border-image on cards and containers to define boundaries with electric personality; Apply text-shadow glow (0 0 20px) on h1 and h2 headings for neon presence against dark space; Layer chrome metallic gradients on buttons and interactive surfaces for tactile depth; Use Orbitron for all headings to reinforce the retrofuturist engineering aesthetic; Pair Rajdhani body text with Share Tech Mono code blocks for typographic hierarchy; Reserve accent amber (#ffd700) for warnings, highlights, and star ratings only; Use elastic easing (cubic-bezier 0.34, 1.56, 0.64, 1) on hover and click for mechanical spring feel; Maintain 4.5:1 contrast ratio for all body text against surface colors; Apply scanline or CRT texture overlays sparingly on hero sections for retro depth; Test all neon glow effects at mobile sizes to ensure they do not bleed or overlap
- Do not: Never use glow text-shadow on body text — it destroys readability below 16px; Never combine more than two gradient directions in a single viewport; Do not use cyan or pink as body text colors on dark backgrounds — insufficient contrast; Do not apply elastic motion to more than three elements simultaneously; Never use neon colors at full saturation for large background areas — they cause eye fatigue; Do not pair pink and red in proximity — they vibrate uncomfortably; Avoid chrome gradient on elements smaller than 32px — the metallic effect is invisible; Do not use full neon gradient on disabled states — use muted color with 40% opacity; Never auto-play glow pulse animations on more than one element per viewport; Do not use border-radius > 12px on containers — keep edges sharp and technical
## 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 RetrofuturismChromeShadcnKit() {
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">Retrofuturism Chrome</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": {
"type": "12-column",
"max_width": "1440px",
"gutter": "24px",
"margin": "48px on desktop, 24px on tablet, 16px on mobile",
"column_behavior": "Fluid columns with fixed gutters"
},
"breakpoints": {
"desktop": {
"min_width": "1440px",
"columns": 12,
"sidebar": "260px fixed"
},
"tablet": {
"min_width": "768px",
"columns": 8,
"sidebar": "collapsed to icon rail"
},
"mobile": {
"min_width": "375px",
"columns": 4,
"sidebar": "hidden, hamburger menu"
}
},
"whitespace": {
"section_gap": "64px on desktop, 48px on tablet, 32px on mobile",
"card_gap": "24px",
"content_padding": "24px inside cards and containers",
"approach": "Generous whitespace so neon glow effects breathe against deep dark backgrounds"
},
"density": {
"default_mode": "comfortable",
"comfortable": {
"row_height": "56px for table rows, 48px for list items",
"input_height": "44px",
"button_height": "44px"
},
"compact": {
"row_height": "40px for table rows, 36px for list items",
"input_height": "36px",
"button_height": "36px"
}
}
}
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-019daca7-70ac-7ca1-83fe-b7ef7ef24981",
"name": "Retrofuturism Chrome",
"slug": "retrofuturism-chrome"
},
"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": [
"background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%) for deep space base",
"border-image: linear-gradient(135deg, #ff6ec7, #00d4ff) 1 for neon gradient borders on cards",
"text-shadow: 0 0 20px rgba(0,212,255,0.5) on headings for neon glow",
"background: linear-gradient(180deg, rgba(0,212,255,0.15), rgba(255,110,199,0.05)) for chrome-tinted surface overlays",
"box-shadow: 0 0 30px rgba(0,212,255,0.2), inset 0 1px 0 rgba(255,255,255,0.1) for metallic depth with chrome highlight"
],
"visualProfile": {
"family": "system",
"material": "flat",
"contour": "default",
"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": "Retrofuturism Chrome 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 neon gradient border-image on cards and containers to define boundaries with electric personality",
"Apply text-shadow glow (0 0 20px) on h1 and h2 headings for neon presence against dark space",
"Layer chrome metallic gradients on buttons and interactive surfaces for tactile depth",
"Use Orbitron for all headings to reinforce the retrofuturist engineering aesthetic",
"Pair Rajdhani body text with Share Tech Mono code blocks for typographic hierarchy",
"Reserve accent amber (#ffd700) for warnings, highlights, and star ratings only",
"Use elastic easing (cubic-bezier 0.34, 1.56, 0.64, 1) on hover and click for mechanical spring feel",
"Maintain 4.5:1 contrast ratio for all body text against surface colors",
"Apply scanline or CRT texture overlays sparingly on hero sections for retro depth",
"Test all neon glow effects at mobile sizes to ensure they do not bleed or overlap"
],
"dont": [
"Never use glow text-shadow on body text — it destroys readability below 16px",
"Never combine more than two gradient directions in a single viewport",
"Do not use cyan or pink as body text colors on dark backgrounds — insufficient contrast",
"Do not apply elastic motion to more than three elements simultaneously",
"Never use neon colors at full saturation for large background areas — they cause eye fatigue",
"Do not pair pink and red in proximity — they vibrate uncomfortably",
"Avoid chrome gradient on elements smaller than 32px — the metallic effect is invisible",
"Do not use full neon gradient on disabled states — use muted color with 40% opacity",
"Never auto-play glow pulse animations on more than one element per viewport",
"Do not use border-radius > 12px on containers — keep edges sharp and technical"
]
}
}
related