Neo-RPG Interface Ritual
A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.
Download DESIGN.md
Portable DESIGN.md source of truth for most agents and apps.
specification
philosophy
tokens
borders4 items
- accent width
- 4px
- character
- hard square pixel seams, gold parchment outlines, and gem-colored state notches
- default width
- 2px
- style
- solid double-line with inset 1px highlight
colors12 items
motion3 items
- duration
- 140ms
- easing
- steps(2, jump-none)
- philosophy
- state changes snap like menu cursor movement; hover shifts by one grid unit with no floaty easing
radii5 items
- full
- 9999px
- lg
- 0
- md
- 0
- none
- 0
- sm
- 0
shadows3 items
- lg
- 14px 14px 0 rgba(2,8,19,0.86)
- md
- 8px 8px 0 rgba(2,8,19,0.82)
- sm
- 4px 4px 0 #020813
spacing2 items
- base
- 8px
- scale
- 4, 8, 12, 16, 24, 32, 48, 64
surfaces3 items
- bg pattern
- subtle 8px star-grid dots and horizontal CRT scanlines over deep navy
- card style
- stepped-corner panels with double borders, corner sockets, and inset grid cells
- treatment
- flat navy and parchment planes with bitmap dithering overlays, never glass or blur
typography8 items
- base size
- 16px
- body font
- Atkinson Hyperlegible
- google fonts url
- https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700&family=Cinzel:wght@600;700&family=IBM+Plex+Mono:wght@400;500;700&display=swap
- heading font
- Cinzel
- letter spacing
- 0.01em
- line height
- 1.48
- mono font
- IBM Plex Mono
- scale ratio
- 1.25
rules
Anchor screens with one dominant parchment quest or dialogue panel, then attach a left command rail and right inventory grid as subordinate game-state instruments.
Moderately dense like an RPG inventory screen: many explicit cells are allowed, but each cluster is separated by 24px or 48px ritual gaps.
Use Cinzel for chapter titles, IBM Plex Mono for coordinates and command labels, and Atkinson Hyperlegible for readable content; hierarchy is reinforced by panel material and gem slots.
layout
Desktop 1200px three columns; tablet 768px stacks command rail above two-column content; mobile 375px becomes single-column scroll with horizontal command chips.
8px base lattice with a 72px command rail, flexible central quest panel, and 320px inventory sidebar on desktop.
Use 8px and 12px inside inventory cells, 24px between related panels, and 48px around the dominant ritual workspace.
guidance
- Use one dominant interaction artifact such as a quest log, allocator, or ritual editor to organize the page.
- Keep fantasy references structural: borders, slots, dialogue hierarchy, and state gems rather than illustrations.
- Reserve gem accents for status, focus, and primary actions so color remains meaningful.
- Make every component keyboard-visible with the cursor-runic 4px focus rail.
- Do not use rounded glassmorphism, blurred gradients, or generic SaaS card shadows.
- Do not scatter pixel icons as decoration without tying them to inventory slots or command states.
- Do not lower body text contrast on navy or parchment surfaces for atmospheric effect.
- Do not make every panel equal weight; the quest/dialogue panel must dominate.
katagami spec
# Neo-RPG Interface Ritual ## Philosophy A ceremonial product interface language that treats complex workflows like a refined role-playing game command room: navy voids, parchment dialogue panels, gem-like state marks, and inventory-grid decisions without cosplay clutter. ### Values - ritualized navigation - legible game-state hierarchy - restrained fantasy materiality - tactile bitmap precision - product-grade accessibility ### Anti-Values - novelty arcade nostalgia - generic SaaS cards with pixel stickers - low-contrast fantasy gloom - random sprite decoration ### Visual Character - Use an 8px bitmap lattice as the governing grid, with panels snapping to hard stepped corners through clip-path polygon cuts instead of soft radii. - Layer parchment beige dialogue boxes over a deep navy shell, using double-line borders and small square corner sockets to make hierarchy feel like game UI windows. - Render status and affordance as gem-slot sprites: 10px to 18px diamond or square marks in emerald, ruby, sapphire, and amber placed in fixed inventory cells. - Apply restrained dithering and scanline textures with CSS repeating-linear-gradients on only selected surfaces so material grain supports depth without visual noise. - Build the primary composition around one dominant quest-log panel, a narrow command rail, and a gridded inventory sidebar rather than equal modular dashboard cards. ## Tokens ### Borders - **Accent Width**: 4px - **Character**: hard square pixel seams, gold parchment outlines, and gem-colored state notches - **Default Width**: 2px - **Style**: solid double-line with inset 1px highlight ### Colors | Name | Value | |------|-------| | accent | `#37D6A3` | | background | `#061020` | | border | `#C8A96A` | | error | `#E05A5A` | | info | `#68A6FF` | | muted | `#8CA0B8` | | primary | `#09162B` | | secondary | `#E9D8B4` | | success | `#37D6A3` | | surface | `#10223E` | | text | `#F5E8C8` | | warning | `#F3B64B` | ### Motion - **Duration**: 140ms - **Easing**: steps(2, jump-none) - **Philosophy**: state changes snap like menu cursor movement; hover shifts by one grid unit with no floaty easing ### Radii - **Full**: 9999px - **Lg**: 0 - **Md**: 0 - **None**: 0 - **Sm**: 0 ### Shadows - **Lg**: 14px 14px 0 rgba(2,8,19,0.86) - **Md**: 8px 8px 0 rgba(2,8,19,0.82) - **Sm**: 4px 4px 0 #020813 ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,48,64] ### Surfaces - **Bg Pattern**: subtle 8px star-grid dots and horizontal CRT scanlines over deep navy - **Card Style**: stepped-corner panels with double borders, corner sockets, and inset grid cells - **Treatment**: flat navy and parchment planes with bitmap dithering overlays, never glass or blur ### Typography - **Base Size**: 16px - **Body Font**: Atkinson Hyperlegible - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700&family=Cinzel:wght@600;700&family=IBM+Plex+Mono:wght@400;500;700&display=swap - **Heading Font**: Cinzel - **Letter Spacing**: 0.01em - **Line Height**: 1.48 - **Mono Font**: IBM Plex Mono - **Scale Ratio**: 1.25 ## Rules ### Composition Anchor screens with one dominant parchment quest or dialogue panel, then attach a left command rail and right inventory grid as subordinate game-state instruments. ### Density Moderately dense like an RPG inventory screen: many explicit cells are allowed, but each cluster is separated by 24px or 48px ritual gaps. ### Hierarchy Use Cinzel for chapter titles, IBM Plex Mono for coordinates and command labels, and Atkinson Hyperlegible for readable content; hierarchy is reinforced by panel material and gem slots. ### Signature Patterns - Stepped-corner windows appear on cards, dialogs, sheets, and tables using clip-path polygons plus small square gold corner sockets. - Inventory slot matrices organize choices, badges, table rows, and navigation states with 8px cells, inset shadows, and fixed gem markers. - Dialogue chrome places an eyebrow speaker label, a parchment text field, and two command buttons in a bottom-aligned panel for primary actions. - Dithered depth bands use repeating-linear-gradient masks on only hero and sidebar surfaces to create CRT and parchment grain without covering text. - Cursor-runic focus states draw a 4px accent rail and a one-cell offset shadow to make keyboard focus feel like a selected RPG menu item. ## Layout ### Breakpoints Desktop 1200px three columns; tablet 768px stacks command rail above two-column content; mobile 375px becomes single-column scroll with horizontal command chips. ### Grid 8px base lattice with a 72px command rail, flexible central quest panel, and 320px inventory sidebar on desktop. ### Whitespace Use 8px and 12px inside inventory cells, 24px between related panels, and 48px around the dominant ritual workspace. ## Guidance ### Do - Use one dominant interaction artifact such as a quest log, allocator, or ritual editor to organize the page. - Keep fantasy references structural: borders, slots, dialogue hierarchy, and state gems rather than illustrations. - Reserve gem accents for status, focus, and primary actions so color remains meaningful. - Make every component keyboard-visible with the cursor-runic 4px focus rail. ### Don't - Do not use rounded glassmorphism, blurred gradients, or generic SaaS card shadows. - Do not scatter pixel icons as decoration without tying them to inventory slots or command states. - Do not lower body text contrast on navy or parchment surfaces for atmospheric effect. - Do not make every panel equal weight; the quest/dialogue panel must dominate.
DESIGN.md
---
version: "alpha"
name: "Neo-RPG Interface Ritual"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
accent: "#37D6A3"
background: "#061020"
border: "#C8A96A"
error: "#E05A5A"
info: "#68A6FF"
muted: "#8CA0B8"
primary: "#09162B"
secondary: "#E9D8B4"
success: "#37D6A3"
surface: "#10223E"
text: "#F5E8C8"
warning: "#F3B64B"
typography:
headline-lg:
fontFamily: "Cinzel"
fontSize: "1.953rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "0.01em"
headline-md:
fontFamily: "Cinzel"
fontSize: "1.563rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "0.01em"
body-md:
fontFamily: "Atkinson Hyperlegible"
fontSize: "16px"
fontWeight: 400
lineHeight: 1.48
letterSpacing: "0.01em"
label-md:
fontFamily: "IBM Plex Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
full: "9999px"
lg: "0px"
md: "0px"
none: "0px"
sm: "0px"
spacing:
base: "8px"
xs: "4px"
sm: "8px"
md: "12px"
lg: "16px"
xl: "24px"
2xl: "32px"
3xl: "48px"
4xl: "64px"
components:
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-background:
backgroundColor: "{colors.background}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-error:
backgroundColor: "{colors.error}"
color-reference-info:
backgroundColor: "{colors.info}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-primary:
backgroundColor: "{colors.primary}"
color-reference-secondary:
backgroundColor: "{colors.secondary}"
color-reference-success:
backgroundColor: "{colors.success}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-warning:
backgroundColor: "{colors.warning}"
button-primary:
backgroundColor: "{colors.primary}"
textColor: "#ffffff"
typography: "{typography.label-md}"
rounded: "{rounded.md}"
padding: "{spacing.md}"
card-surface:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
padding: "{spacing.md}"
input-default:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
height: "44px"
---
# Neo-RPG Interface Ritual
## Overview
A ceremonial product interface language that treats complex workflows like a refined role-playing game command room: navy voids, parchment dialogue panels, gem-like state marks, and inventory-grid decisions without cosplay clutter.
### Values
- ritualized navigation
- legible game-state hierarchy
- restrained fantasy materiality
- tactile bitmap precision
- product-grade accessibility
### Anti-Values
- novelty arcade nostalgia
- generic SaaS cards with pixel stickers
- low-contrast fantasy gloom
- random sprite decoration
### Visual Character
- Use an 8px bitmap lattice as the governing grid, with panels snapping to hard stepped corners through clip-path polygon cuts instead of soft radii.
- Layer parchment beige dialogue boxes over a deep navy shell, using double-line borders and small square corner sockets to make hierarchy feel like game UI windows.
- Render status and affordance as gem-slot sprites: 10px to 18px diamond or square marks in emerald, ruby, sapphire, and amber placed in fixed inventory cells.
- Apply restrained dithering and scanline textures with CSS repeating-linear-gradients on only selected surfaces so material grain supports depth without visual noise.
- Build the primary composition around one dominant quest-log panel, a narrow command rail, and a gridded inventory sidebar rather than equal modular dashboard cards.
## Colors
Use the YAML color tokens as the normative palette. The prose below names the roles agents should preserve when generating UI.
| Token | Value |
|-------|-------|
| accent | `#37D6A3` |
| background | `#061020` |
| border | `#C8A96A` |
| error | `#E05A5A` |
| info | `#68A6FF` |
| muted | `#8CA0B8` |
| primary | `#09162B` |
| secondary | `#E9D8B4` |
| success | `#37D6A3` |
| surface | `#10223E` |
| text | `#F5E8C8` |
| warning | `#F3B64B` |
## Typography
- **Headline-Lg**: Cinzel, 1.953rem, weight 700, line-height 1.1.
- **Headline-Md**: Cinzel, 1.563rem, weight 600, line-height 1.15.
- **Body-Md**: Atkinson Hyperlegible, 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`
### Breakpoints
Desktop 1200px three columns; tablet 768px stacks command rail above two-column content; mobile 375px becomes single-column scroll with horizontal command chips.
### Grid
8px base lattice with a 72px command rail, flexible central quest panel, and 320px inventory sidebar on desktop.
### Whitespace
Use 8px and 12px inside inventory cells, 24px between related panels, and 48px around the dominant ritual workspace.
## Elevation & Depth
### Shadows
- **Lg**: 14px 14px 0 rgba(2,8,19,0.86)
- **Md**: 8px 8px 0 rgba(2,8,19,0.82)
- **Sm**: 4px 4px 0 #020813
## Shapes
### Rounded
- **Full**: `9999px`
- **Lg**: `0px`
- **Md**: `0px`
- **None**: `0px`
- **Sm**: `0px`
### Surfaces
- **Bg Pattern**: subtle 8px star-grid dots and horizontal CRT scanlines over deep navy
- **Card Style**: stepped-corner panels with double borders, corner sockets, and inset grid cells
- **Treatment**: flat navy and parchment planes with bitmap dithering overlays, never glass or blur
### Borders
- **Accent Width**: 4px
- **Character**: hard square pixel seams, gold parchment outlines, and gem-colored state notches
- **Default Width**: 2px
- **Style**: solid double-line with inset 1px highlight
## Components
### Composition
Anchor screens with one dominant parchment quest or dialogue panel, then attach a left command rail and right inventory grid as subordinate game-state instruments.
### Density
Moderately dense like an RPG inventory screen: many explicit cells are allowed, but each cluster is separated by 24px or 48px ritual gaps.
### Hierarchy
Use Cinzel for chapter titles, IBM Plex Mono for coordinates and command labels, and Atkinson Hyperlegible for readable content; hierarchy is reinforced by panel material and gem slots.
### Signature Patterns
- Stepped-corner windows appear on cards, dialogs, sheets, and tables using clip-path polygons plus small square gold corner sockets.
- Inventory slot matrices organize choices, badges, table rows, and navigation states with 8px cells, inset shadows, and fixed gem markers.
- Dialogue chrome places an eyebrow speaker label, a parchment text field, and two command buttons in a bottom-aligned panel for primary actions.
- Dithered depth bands use repeating-linear-gradient masks on only hero and sidebar surfaces to create CRT and parchment grain without covering text.
- Cursor-runic focus states draw a 4px accent rail and a one-cell offset shadow to make keyboard focus feel like a selected RPG menu item.
## 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-019e6c90-91af-7bd1-9ab0-d027b3f8a344/DESIGN.with-shadcn.md`.
The shadcn page also exposes optional machine-readable files for automation, but the human-facing handoff is DESIGN.md with shadcn.
Install recommended primitives with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.
Use these primitives in shadcn apps:
- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table
Implementation rule for agents: import shadcn primitives from `@/components/ui/*`, apply the generated CSS variables first, then compose the language-specific recipes from the companion MD. Katagami remains the source of truth; shadcn names are the implementation surface.
## Do's and Don'ts
- Do Use one dominant interaction artifact such as a quest log, allocator, or ritual editor to organize the page.
- Do Keep fantasy references structural: borders, slots, dialogue hierarchy, and state gems rather than illustrations.
- Do Reserve gem accents for status, focus, and primary actions so color remains meaningful.
- Do Make every component keyboard-visible with the cursor-runic 4px focus rail.
- Don't Do not use rounded glassmorphism, blurred gradients, or generic SaaS card shadows.
- Don't Do not scatter pixel icons as decoration without tying them to inventory slots or command states.
- Don't Do not lower body text contrast on navy or parchment surfaces for atmospheric effect.
- Don't Do not make every panel equal weight; the quest/dialogue panel must dominate.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "neo-rpg-interface-ritual",
"type": "registry:theme",
"title": "Neo-RPG Interface Ritual shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#061020",
"foreground": "#F5E8C8",
"card": "#10223E",
"card-foreground": "#F5E8C8",
"popover": "#10223E",
"popover-foreground": "#F5E8C8",
"primary": "#09162B",
"primary-foreground": "#ffffff",
"secondary": "#E9D8B4",
"secondary-foreground": "#111111",
"muted": "#8CA0B8",
"muted-foreground": "#F5E8C8",
"accent": "#37D6A3",
"accent-foreground": "#ffffff",
"destructive": "#E05A5A",
"border": "#C8A96A",
"input": "#C8A96A",
"ring": "#37D6A3",
"chart-1": "#09162B",
"chart-2": "#E9D8B4",
"chart-3": "#37D6A3",
"chart-4": "#37D6A3",
"chart-5": "#F3B64B",
"sidebar": "#10223E",
"sidebar-foreground": "#F5E8C8",
"sidebar-primary": "#09162B",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#68A6FF",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#C8A96A",
"sidebar-ring": "#37D6A3",
"radius": "0"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#09162B",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#37D6A3",
"accent-foreground": "#ffffff",
"destructive": "#E05A5A",
"border": "#303642",
"input": "#303642",
"ring": "#37D6A3",
"chart-1": "#09162B",
"chart-2": "#E9D8B4",
"chart-3": "#37D6A3",
"chart-4": "#37D6A3",
"chart-5": "#F3B64B",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#09162B",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#37D6A3",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#37D6A3",
"radius": "0"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019e6c90-91af-7bd1-9ab0-d027b3f8a344",
"slug": "neo-rpg-interface-ritual",
"componentManifest": [
"button",
"card",
"input",
"textarea",
"select",
"dialog",
"sheet",
"tabs",
"badge",
"separator",
"checkbox",
"switch",
"slider",
"tooltip",
"dropdown-menu",
"table"
],
"installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
"nativeTokenNames": {
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"colors": [
"accent",
"background",
"border",
"error",
"info",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"motion": [
"duration",
"easing",
"philosophy"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
]
}
}
}
```embodiments
at a glance
Typography
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
Components
Components rendered with this language’s tokens — colors, type, and rounded corners as specified.
Spacing
- base8px
- xs4px
- sm8px
- md12px
- lg16px
- xl24px
- 2xl32px
- 3xl48px
- 4xl64px
Shape
implementation kit
DESIGN.md with shadcn
Copy this when the target app uses shadcn/ui. It packages the Katagami DESIGN.md context with the install list, theme variables, component recipes, preview-shot contract, and starter TSX in one Markdown companion.
advanced implementation filesoptional machine-readable theme, CSS, TSX starter, recipes, and preview contract
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table:root {
--background: #061020;
--foreground: #F5E8C8;
--card: #10223E;
--card-foreground: #F5E8C8;
--popover: #10223E;
--popover-foreground: #F5E8C8;
--primary: #09162B;
--primary-foreground: #ffffff;
--secondary: #E9D8B4;
--secondary-foreground: #111111;
--muted: #8CA0B8;
--muted-foreground: #F5E8C8;
--accent: #37D6A3;
--accent-foreground: #ffffff;
--destructive: #E05A5A;
--border: #C8A96A;
--input: #C8A96A;
--ring: #37D6A3;
--chart-1: #09162B;
--chart-2: #E9D8B4;
--chart-3: #37D6A3;
--chart-4: #37D6A3;
--chart-5: #F3B64B;
--sidebar: #10223E;
--sidebar-foreground: #F5E8C8;
--sidebar-primary: #09162B;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #68A6FF;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #C8A96A;
--sidebar-ring: #37D6A3;
--radius: 0;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #09162B;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #37D6A3;
--accent-foreground: #ffffff;
--destructive: #E05A5A;
--border: #303642;
--input: #303642;
--ring: #37D6A3;
--chart-1: #09162B;
--chart-2: #E9D8B4;
--chart-3: #37D6A3;
--chart-4: #37D6A3;
--chart-5: #F3B64B;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #09162B;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #37D6A3;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #37D6A3;
--radius: 0;
}
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 NeoRpgInterfaceRitualShadcnKit() {
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">Neo-RPG Interface Ritual</h2>
<p className="mt-1 max-w-xl text-sm text-muted-foreground">
Use the Katagami registry theme, then compose these shadcn primitives
with the language-specific component recipes.
</p>
</div>
<Button>Apply theme</Button>
</div>
<Tabs defaultValue="components">
<TabsList>
<TabsTrigger value="components">Components</TabsTrigger>
<TabsTrigger value="states">States</TabsTrigger>
<TabsTrigger value="export">Export</TabsTrigger>
</TabsList>
</Tabs>
<Card>
<CardHeader>
<CardTitle>Component recipe</CardTitle>
<CardDescription>
Replace this starter content with the agent-authored product scene
from components.md and preview-shots.json.
</CardDescription>
</CardHeader>
<CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
<Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
<Button variant="secondary">Preview state</Button>
</CardContent>
<CardFooter className="justify-between">
<Badge>Ready</Badge>
<Button variant="outline">Copy recipe</Button>
</CardFooter>
</Card>
</section>
);
}
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "neo-rpg-interface-ritual",
"type": "registry:theme",
"title": "Neo-RPG Interface Ritual shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#061020",
"foreground": "#F5E8C8",
"card": "#10223E",
"card-foreground": "#F5E8C8",
"popover": "#10223E",
"popover-foreground": "#F5E8C8",
"primary": "#09162B",
"primary-foreground": "#ffffff",
"secondary": "#E9D8B4",
"secondary-foreground": "#111111",
"muted": "#8CA0B8",
"muted-foreground": "#F5E8C8",
"accent": "#37D6A3",
"accent-foreground": "#ffffff",
"destructive": "#E05A5A",
"border": "#C8A96A",
"input": "#C8A96A",
"ring": "#37D6A3",
"chart-1": "#09162B",
"chart-2": "#E9D8B4",
"chart-3": "#37D6A3",
"chart-4": "#37D6A3",
"chart-5": "#F3B64B",
"sidebar": "#10223E",
"sidebar-foreground": "#F5E8C8",
"sidebar-primary": "#09162B",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#68A6FF",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#C8A96A",
"sidebar-ring": "#37D6A3",
"radius": "0"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#09162B",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#37D6A3",
"accent-foreground": "#ffffff",
"destructive": "#E05A5A",
"border": "#303642",
"input": "#303642",
"ring": "#37D6A3",
"chart-1": "#09162B",
"chart-2": "#E9D8B4",
"chart-3": "#37D6A3",
"chart-4": "#37D6A3",
"chart-5": "#F3B64B",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#09162B",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#37D6A3",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#37D6A3",
"radius": "0"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019e6c90-91af-7bd1-9ab0-d027b3f8a344",
"slug": "neo-rpg-interface-ritual",
"componentManifest": [
"button",
"card",
"input",
"textarea",
"select",
"dialog",
"sheet",
"tabs",
"badge",
"separator",
"checkbox",
"switch",
"slider",
"tooltip",
"dropdown-menu",
"table"
],
"installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
"nativeTokenNames": {
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"colors": [
"accent",
"background",
"border",
"error",
"info",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"motion": [
"duration",
"easing",
"philosophy"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
]
}
}
}
# Neo-RPG Interface Ritual shadcn/ui Components
Author: `katagami-agent`
## Intent
Translate the language into shadcn/ui as a serious application shell for allocation, planning, and command workflows. Components should feel like hard-edged RPG interface windows without becoming decorative arcade nostalgia.
## Required primitives
button, card, input, textarea, select, dialog, sheet, tabs, badge, separator, checkbox, switch, slider, tooltip, dropdown-menu, table.
## Token cues
Use deep navy backgrounds, parchment cards, gold double borders, emerald primary actions, amber warning states, ruby destructive states, sapphire informational states, Cinzel headings, Atkinson body text, and IBM Plex Mono command labels.
## Visual character to preserve
Stepped-corner card silhouettes, 8px lattice spacing, gem-slot status marks, dithered side panels, and cursor-runic focus rails. Avoid glass, blur, arbitrary round corners, and generic neutral dashboards.
## ShadSync visual profile
family: neo-rpg-interface; material: navy-parchment-bitmap; contour: stepped-corner; border: double-gold-2px; underlay: scanline-grid; grain: restrained-dither; stickerBadges: false; motion: stepped-cursor-shift; density: moderately-dense; accents: emerald, amber, ruby, sapphire gems.
## Signature component recipes
- button: square control with 2px navy or gold border, IBM Plex Mono uppercase label, 4px hard offset shadow; primary uses emerald fill and snaps up one grid cell on hover/focus.
- card: use Card as a stepped parchment or navy window; add corner socket pseudo-elements and inner 1px rule; never use soft radius.
- input: command-line field on navy with gold border, mono text, emerald focus rail at left, and placeholder phrased as slash command.
- textarea: parchment note well for dialogue or quest text; keep line-height generous and border double.
- select: compact command selector with square chevron cell and sapphire selected-state gem.
- dialog: centered dialogue box with speaker eyebrow, parchment body, navy footer command row, and stepped-corner clipping.
- sheet: inventory drawer using navy dither background and 8px slot matrix for secondary actions.
- tabs: chapter tabs as connected inventory cells; active tab gains emerald gem and one-cell shadow.
- badge: small gem-state capsules with 2px border; use semantic gem colors only.
- separator: 2px gold rule with an 8px square socket at the start.
- checkbox: 18px square slot; checked state fills with rotated emerald diamond.
- switch: two-cell toggle track; thumb jumps in steps, not smooth sliding.
- slider: segmented meter built from 8px ticks; filled ticks use gem color.
- tooltip: miniature navy dialogue plaque with mono eyebrow and gold border.
- dropdown-menu: command list panel where focused items receive the cursor-runic left rail.
- table: route ledger rows with mono coordinates, gem badges, and 1px inner grid lines.
## Preview shots
application-shell: Moon Vault allocation shell with command rail, dominant quest card, inventory sheet, and route ledger. detail-editor: relic edit dialog with fields, tabs, slider meter, switch and tooltip. data-operations: convoy table with filters, dropdown actions, checkboxes, badges, and sheet summary.
## Implementation contract
Import local primitives from `@/components/ui/*`. Do not invent a second component system. Preserve the stepped-corner geometry with wrapper classes or CSS variables around shadcn primitives. Keep components accessible, keyboard-visible, and responsive.
## Copy-paste component example
```tsx
import { Button } from "@/components/ui/button"
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"
import { Input } from "@/components/ui/input"
import { Badge } from "@/components/ui/badge"
export function RelicCommandCard() {
return (
<Card className="clip-stepped border-2 border-[#C8A96A] bg-[#E9D8B4] text-[#09162B] shadow-[8px_8px_0_rgba(2,8,19,.82)] rounded-none">
<CardHeader>
<div className="font-mono text-xs uppercase tracking-widest text-[#6b5b38]">Archivist command</div>
<CardTitle className="font-serif">Assign ward stone</CardTitle>
</CardHeader>
<CardContent className="space-y-4">
<Input className="rounded-none border-2 border-[#C8A96A] bg-[#061020] font-mono text-[#F5E8C8] focus-visible:ring-0 focus-visible:border-[#37D6A3]" value="/assign emerald ward" readOnly />
<div className="flex gap-2"><Badge className="rounded-none border-2 border-[#37D6A3] bg-transparent text-[#37D6A3]">SAFE</Badge><Button className="rounded-none bg-[#37D6A3] font-mono uppercase text-[#061020] shadow-[4px_4px_0_rgba(9,22,43,.35)]">Commit</Button></div>
</CardContent>
</Card>
)
}
```
{
"artifact": "katagami:shadcn-preview-shots",
"author": "katagami-agent",
"componentRecipes": [
{
"component": "button",
"recipe": "Render as a stepped-corner RPG interface primitive on the 8px lattice, with gold or gem-colored borders, mono state labels, and cursor-runic focus treatment."
},
{
"component": "card",
"recipe": "Render as a stepped-corner RPG interface primitive on the 8px lattice, with gold or gem-colored borders, mono state labels, and cursor-runic focus treatment."
},
{
"component": "input",
"recipe": "Render as a stepped-corner RPG interface primitive on the 8px lattice, with gold or gem-colored borders, mono state labels, and cursor-runic focus treatment."
},
{
"component": "textarea",
"recipe": "Render as a stepped-corner RPG interface primitive on the 8px lattice, with gold or gem-colored borders, mono state labels, and cursor-runic focus treatment."
},
{
"component": "select",
"recipe": "Render as a stepped-corner RPG interface primitive on the 8px lattice, with gold or gem-colored borders, mono state labels, and cursor-runic focus treatment."
},
{
"component": "dialog",
"recipe": "Render as a stepped-corner RPG interface primitive on the 8px lattice, with gold or gem-colored borders, mono state labels, and cursor-runic focus treatment."
},
{
"component": "sheet",
"recipe": "Render as a stepped-corner RPG interface primitive on the 8px lattice, with gold or gem-colored borders, mono state labels, and cursor-runic focus treatment."
},
{
"component": "tabs",
"recipe": "Render as a stepped-corner RPG interface primitive on the 8px lattice, with gold or gem-colored borders, mono state labels, and cursor-runic focus treatment."
},
{
"component": "badge",
"recipe": "Render as a stepped-corner RPG interface primitive on the 8px lattice, with gold or gem-colored borders, mono state labels, and cursor-runic focus treatment."
},
{
"component": "separator",
"recipe": "Render as a stepped-corner RPG interface primitive on the 8px lattice, with gold or gem-colored borders, mono state labels, and cursor-runic focus treatment."
},
{
"component": "checkbox",
"recipe": "Render as a stepped-corner RPG interface primitive on the 8px lattice, with gold or gem-colored borders, mono state labels, and cursor-runic focus treatment."
},
{
"component": "switch",
"recipe": "Render as a stepped-corner RPG interface primitive on the 8px lattice, with gold or gem-colored borders, mono state labels, and cursor-runic focus treatment."
},
{
"component": "slider",
"recipe": "Render as a stepped-corner RPG interface primitive on the 8px lattice, with gold or gem-colored borders, mono state labels, and cursor-runic focus treatment."
},
{
"component": "tooltip",
"recipe": "Render as a stepped-corner RPG interface primitive on the 8px lattice, with gold or gem-colored borders, mono state labels, and cursor-runic focus treatment."
},
{
"component": "dropdown-menu",
"recipe": "Render as a stepped-corner RPG interface primitive on the 8px lattice, with gold or gem-colored borders, mono state labels, and cursor-runic focus treatment."
},
{
"component": "table",
"recipe": "Render as a stepped-corner RPG interface primitive on the 8px lattice, with gold or gem-colored borders, mono state labels, and cursor-runic focus treatment."
}
],
"generatedBy": "katagami-agent",
"renderable": true,
"requiresVisualProfile": true,
"schema": "katagami:shadcn-preview-shots/renderable-v1",
"shots": [
{
"avoid": [
"equal card wall",
"soft rounded SaaS shell",
"decorative sprites without state meaning"
],
"composition": "Three-zone allocation shell: command rail, dominant parchment quest card, and navy inventory ledger sidebar.",
"id": "application-shell",
"mustShowStates": [
"active tab with emerald gem",
"primary button hover-ready hard shadow",
"route badges in safe toll fast states"
],
"primitives": [
"button",
"card",
"input",
"badge",
"separator",
"tabs",
"table",
"dropdown-menu"
],
"scene": {
"actions": [
"Commit Loadout",
"Simulate Risk",
"Open Codex"
],
"description": "Assign relics to convoy routes before the archive gate closes.",
"eyebrow": "Moon Vault Quartermaster",
"headline": "Relic Allocation Rite",
"rows": [
{
"gem": "emerald",
"route": "North Fen",
"state": "SAFE"
},
{
"gem": "amber",
"route": "Ash Bridge",
"state": "TOLL"
},
{
"gem": "sapphire",
"route": "Glass Well",
"state": "FAST"
}
],
"stats": [
{
"label": "Ward stability",
"value": "72%"
},
{
"label": "Lantern reserve",
"value": "46%"
},
{
"label": "Route secrecy",
"value": "88%"
}
]
}
},
{
"avoid": [
"modal blur glass",
"generic form spacing",
"smooth pill toggles"
],
"composition": "Centered parchment dialogue editor over navy scanline underlay, with speaker eyebrow and command footer.",
"id": "detail-editor",
"mustShowStates": [
"open dialog",
"focused command field",
"segmented slider meter",
"switch in two-cell track"
],
"primitives": [
"dialog",
"textarea",
"select",
"switch",
"slider",
"tooltip",
"button",
"badge"
],
"scene": {
"actions": [
"Save Rune",
"Test Pulse"
],
"description": "Tune a relic before assigning it to a convoy slot.",
"eyebrow": "Archivist Iona",
"fields": [
{
"label": "Relic name",
"value": "Emerald Ward"
},
{
"label": "Route affinity",
"value": "North Fen"
},
{
"label": "Risk note",
"value": "Stabilizes fragile cargo but slows bridge crossing."
}
],
"headline": "Edit ward stone behavior",
"stats": [
{
"label": "Pulse strength",
"value": "64%"
},
{
"label": "Auto-bind",
"value": "On"
}
]
}
},
{
"avoid": [
"plain spreadsheet defaults",
"overuse of gem colors",
"unstructured dense data"
],
"composition": "Dense convoy operations table with selectable rows and an inventory sheet summary docked to the right.",
"id": "data-operations",
"mustShowStates": [
"checked square slots",
"dropdown command focus",
"warning and danger badges",
"sheet inventory matrix"
],
"primitives": [
"table",
"checkbox",
"dropdown-menu",
"sheet",
"card",
"badge",
"separator",
"button",
"input"
],
"scene": {
"actions": [
"Open Satchel",
"Batch Assign"
],
"description": "Review route risk, select cargo rows, and open the inventory sheet for batch assignment.",
"eyebrow": "Route Ledger",
"headline": "Convoy operations queue",
"rows": [
{
"cargo": "Glass vials",
"id": "CV-01",
"risk": "SAFE",
"route": "North Fen"
},
{
"cargo": "Lantern oil",
"id": "CV-02",
"risk": "TOLL",
"route": "Ash Bridge"
},
{
"cargo": "Ruby seals",
"id": "CV-03",
"risk": "DANGER",
"route": "Red Quarry"
}
]
}
}
],
"version": "preview-shots-v1",
"visualProfile": {
"accents": [
"emerald-gem",
"amber-warning",
"ruby-danger",
"sapphire-info"
],
"border": "double-gold-2px",
"contour": "stepped-corner",
"density": "moderately-dense",
"family": "neo-rpg-interface",
"grain": "restrained-dither",
"material": "navy-parchment-bitmap",
"motion": "stepped-cursor-shift",
"stickerBadges": false,
"underlay": "scanline-grid"
}
}