Typography
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.
Portable DESIGN.md source of truth for most agents and apps.
Stack content on translucent frosted panes layered at distinct depths, separated by space and depth order rather than boxes inside boxes. Each pane carries a crystalline fern-frost rim etched along one structural edge; never wrap a pane in a full frame or give it a solid accent edge.
Hierarchy comes from pane depth, scale jumps, weight, and the single cold thaw-line. Headlines are oversized and quiet; labels and figures are mono and tracked; the thaw-line marks only what is live.
Medium density, high legibility: generous architectural whitespace between panes, tightly ordered ruled readouts inside them, no decorative padding in controls.
The frost pane is the interface: every surface is a translucent etched pane layered at a distinct depth with a crystalline fern-frost rim, and a single cold thaw-line marks the one live row, active control, or figure that needs attention. The thaw-line is the positional accent and recolours on palette swap.
Desktop: 12-column grid where panes span 4-8 columns and layer at distinct depths; readout panes sit forward, context panes recede. Tablet narrows to 8 columns; phone collapses to one column with panes stacking and frost rims moving to the top edge.
Whitespace is structural and atmospheric: large outer margins, 48-64px between pane clusters on desktop, an 8px baseline grid, deep negative space that lets the glacial ground show through. Titles are always padded from pane tops.
390px mobile to 2560px+ ultra-wide. Ultra-wide caps and centres content; only the hero spans 100vw. Mobile stacks to one column, drops non-essential table columns, and shrinks the hero headline with clamp() so it wraps and never clips the 390px edge.
cryotype
Etched frosted-glass scenes of cold mountain country — glacier lakes, snowpack ridgelines, frosted instruments — rendered in near-monochrome glacial blue with crystalline fern-frost feathering and one cold rim-light, deep open negative space for an overlaid headline.
Etched into and seen through layered frosted glass; near-monochrome cold rendering, fern-frost feathering at the edges, one luminous cool rim-light, one tiny warm spark; no gradients-as-decoration, atmospheric and stratified.
Deep glacial dark, cinematic, with broad open negative space for an overlaid headline
Hero is one full-bleed etched-frost glacier scene with the headline overlaid in the open upper space; feature and empty-state slots use restrained etched vignettes.
# Rime ## Philosophy Rime refines glassmorphism into a disciplined cold-operations system. It keeps what was true in the frost original — translucent layered panes, spectral cold light, the sense of surfaces carved from winter air — and drops the slop: milky blur without hierarchy, glass-card wallpaper, decorative aurora orbs, and the generic SaaS shell. Every surface is an etched frost pane whose key edge is a crystalline fern-frost rim, and one bright thaw-line marks the single thing that is live. It reads on a deep glacial dark, where cold light actually belongs. ### Values - layer information through translucent depth, never opaque containment - etch the edge with crystalline frost as structure, never a solid accent bar - let one cold thaw-line mark the single thing that is live - keep precise readouts perfectly legible inside atmospheric glass - make interaction feel weightless but controlled, like sliding over polished ice ### Anti-Values - milky blur with no hierarchy or depth order - glass cards stamped everywhere until transparency loses meaning - decorative aurora orbs and warm playful gradients that break the cold mood - heavy borders, skeuomorphic bevels, or a single accent edge on a card - the generic SaaS hero: eyebrow tag, button pair, three-stat row ### Visual Character - translucent frosted panes with backdrop blur, layered at distinct depths so order reads at a glance - a crystalline fern-frost rim etched along one structural edge of each pane, hairline and luminous, never a solid coloured bar - a single cold thaw-line (bright glacier cyan) that marks the one live row, the active control, the figure that needs you - segmented controls and status flags embedded in inset frosted rails, with a tiny etched indicator rather than a filled chip - a deep glacial-dark ground with cold spectral light, where one tiny warm ember marks a point of life inside the cold ## Tokens ### Colors | Name | Value | |------|-------| | bg | `#0A1322` | | surface | `#13203A` | | surface-2 | `#1B2C4C` | | text | `#EAF4FF` | | muted | `#93A8C6` | | border | `#2C4063` | | accent | `#67E8F9` | | accent-2 | `#A7C7FF` | | accent-3 | `#F4B07A` | | on-accent | `#06121F` | | success | `#6FE3B0` | | warning | `#F4C77A` | | error | `#FF8FA6` | | info | `#8FD3FF` | ### Typography - **Base Size**: 17px - **Body Font**: Manrope, 'Helvetica Neue', Arial, sans-serif - **Heading Font**: Sora, 'Helvetica Neue', Arial, sans-serif - **Mono Font**: 'IBM Plex Mono', ui-monospace, monospace - **Heading Weight**: 700 - **Heading Transform**: none - **Letter Spacing**: -0.02em - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Manrope:wght@400;500;600;700;800&family=Sora:wght@400;500;600;700;800&display=swap ### Radii - **None**: 0px - **Sm**: 16px - **Md**: 16px - **Lg**: 24px - **Full**: 9999px ### Shadows - **Sm**: 0 12px 32px rgba(2,8,20,0.45) - **Md**: 0 22px 60px rgba(2,8,20,0.55) - **Lg**: 0 34px 90px rgba(2,8,20,0.62) ### Spacing - **Base**: 8px - **Scale**: ["4px","8px","12px","16px","24px","32px","48px","64px"] ### Surfaces - **Treatment**: frosted-glass - **Card Style**: translucent frosted pane with a crystalline fern-frost rim etched along one structural edge, layered at a distinct depth, no solid accent edge - **Bg Pattern**: fern-frost ### Borders - **Default Width**: 1px - **Style**: solid - **Character**: hairline luminous frost rims that catch cold light as structure, never decorative frames or a single accent edge ### Motion - **Duration**: 220ms - **Fast**: 140ms - **Easing**: cubic-bezier(0.2,0.8,0.2,1) - **Philosophy**: settled-first; panes settle into depth and frost rims crystallize in on reveal; honours prefers-reduced-motion ## Rules ### Composition Stack content on translucent frosted panes layered at distinct depths, separated by space and depth order rather than boxes inside boxes. Each pane carries a crystalline fern-frost rim etched along one structural edge; never wrap a pane in a full frame or give it a solid accent edge. ### Hierarchy Hierarchy comes from pane depth, scale jumps, weight, and the single cold thaw-line. Headlines are oversized and quiet; labels and figures are mono and tracked; the thaw-line marks only what is live. ### Density Medium density, high legibility: generous architectural whitespace between panes, tightly ordered ruled readouts inside them, no decorative padding in controls. ### Signature The frost pane is the interface: every surface is a translucent etched pane layered at a distinct depth with a crystalline fern-frost rim, and a single cold thaw-line marks the one live row, active control, or figure that needs attention. The thaw-line is the positional accent and recolours on palette swap. ### Signature Patterns - every surface is a translucent frosted pane with a crystalline fern-frost rim etched along one structural edge, layered at a distinct depth - the one cold thaw-line marks the single live thing — the active row, the focused control, the figure that needs you - status is an etched flag with a tiny frost-tick indicator and a tracked label, never a filled chip - segmented controls and tabs sit in inset frosted rails, the active segment lifting forward with a thaw-line underline - one tiny warm ember appears where there is a point of life inside the cold, never spreading into a fill ## Layout ### Grid Desktop: 12-column grid where panes span 4-8 columns and layer at distinct depths; readout panes sit forward, context panes recede. Tablet narrows to 8 columns; phone collapses to one column with panes stacking and frost rims moving to the top edge. ### Whitespace Whitespace is structural and atmospheric: large outer margins, 48-64px between pane clusters on desktop, an 8px baseline grid, deep negative space that lets the glacial ground show through. Titles are always padded from pane tops. ### Responsive 390px mobile to 2560px+ ultra-wide. Ultra-wide caps and centres content; only the hero spans 100vw. Mobile stacks to one column, drops non-essential table columns, and shrinks the hero headline with clamp() so it wraps and never clips the 390px edge. ### Breakpoints - **Xl**: 1280 - **Lg**: 1080 - **Md**: 900 - **Sm**: 760 - **Xs**: 400 ## Guidance ### Do - Layer panes at distinct depths so the order of information reads before you read a word. - Etch each pane's structural edge with a hairline crystalline frost rim; use it as structure, not decoration. - Reserve the cold thaw-line for the single live thing — the active row, the focused field, the figure that matters. - Use mono figures for readings, depths, codes, and numeric summaries. - Keep one tiny warm ember as a point of life; let depth and cold light carry the mood. ### Don't - Do not stamp glass cards everywhere until transparency stops meaning anything. - Do not give a pane a solid accent edge, a heavy border, or a full frame. - Do not add decorative aurora orbs, warm gradients, or skeuomorphic bevels. - Do not trap the nav in a pill bar or nest panes inside panes. - Do not let the thaw-line or the warm ember spread into a fill. ### Accessibility High contrast on a deep glacial ground (text #EAF4FF on #0A1322). Body 17px, table rows 14.5px. Focus states are visible (cold thaw-line underline and frost rim). Motion is added on top of a fully-rendered no-JS state and honours prefers-reduced-motion. Status is never colour-only — every flag carries a tracked text label and an etched tick. ## Imagery Direction ### Pairs With cryotype ### Summary Etched frosted-glass scenes of cold mountain country — glacier lakes, snowpack ridgelines, frosted instruments — rendered in near-monochrome glacial blue with crystalline fern-frost feathering and one cold rim-light, deep open negative space for an overlaid headline. ### Subjects - a still glacier lake at the foot of dark frosted mountains - a snowpack ridgeline etched in frost - a frosted sensor mast on an open col - crystalline fern-frost spreading across a pane ### Treatment Etched into and seen through layered frosted glass; near-monochrome cold rendering, fern-frost feathering at the edges, one luminous cool rim-light, one tiny warm spark; no gradients-as-decoration, atmospheric and stratified. ### Ground Deep glacial dark, cinematic, with broad open negative space for an overlaid headline ### Usage Hero is one full-bleed etched-frost glacier scene with the headline overlaid in the open upper space; feature and empty-state slots use restrained etched vignettes. ### Engine Hints - **Model**: gpt-image-2 - **Provider**: openai - **Tool**: openai-image MCP - **Size**: 1536x1024 - **Quality**: high
---
version: "alpha"
name: "Rime"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
bg: "#0A1322"
surface: "#13203A"
surface-2: "#1B2C4C"
text: "#EAF4FF"
muted: "#93A8C6"
border: "#2C4063"
accent: "#67E8F9"
accent-2: "#A7C7FF"
accent-3: "#F4B07A"
on-accent: "#06121F"
success: "#6FE3B0"
warning: "#F4C77A"
error: "#FF8FA6"
info: "#8FD3FF"
typography:
headline-lg:
fontFamily: "Sora, 'Helvetica Neue', Arial, sans-serif"
fontSize: "2.075rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Sora, 'Helvetica Neue', Arial, sans-serif"
fontSize: "1.66rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "Manrope, 'Helvetica Neue', Arial, sans-serif"
fontSize: "17px"
fontWeight: 400
lineHeight: 1.5
letterSpacing: "-0.02em"
label-md:
fontFamily: "'IBM Plex Mono', ui-monospace, monospace"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
none: "0px"
sm: "16px"
md: "16px"
lg: "24px"
full: "9999px"
spacing:
base: "8px"
xs: "4px"
sm: "8px"
md: "12px"
lg: "16px"
xl: "24px"
2xl: "32px"
3xl: "48px"
4xl: "64px"
components:
color-reference-bg:
backgroundColor: "{colors.bg}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-surface-2:
backgroundColor: "{colors.surface-2}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-accent-2:
backgroundColor: "{colors.accent-2}"
color-reference-accent-3:
backgroundColor: "{colors.accent-3}"
color-reference-on-accent:
backgroundColor: "{colors.on-accent}"
color-reference-success:
backgroundColor: "{colors.success}"
color-reference-warning:
backgroundColor: "{colors.warning}"
color-reference-error:
backgroundColor: "{colors.error}"
color-reference-info:
backgroundColor: "{colors.info}"
button-primary:
backgroundColor: "{colors.accent}"
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"
---
# Rime
## Overview
Rime refines glassmorphism into a disciplined cold-operations system. It keeps what was true in the frost original — translucent layered panes, spectral cold light, the sense of surfaces carved from winter air — and drops the slop: milky blur without hierarchy, glass-card wallpaper, decorative aurora orbs, and the generic SaaS shell. Every surface is an etched frost pane whose key edge is a crystalline fern-frost rim, and one bright thaw-line marks the single thing that is live. It reads on a deep glacial dark, where cold light actually belongs.
### Values
- layer information through translucent depth, never opaque containment
- etch the edge with crystalline frost as structure, never a solid accent bar
- let one cold thaw-line mark the single thing that is live
- keep precise readouts perfectly legible inside atmospheric glass
- make interaction feel weightless but controlled, like sliding over polished ice
### Anti-Values
- milky blur with no hierarchy or depth order
- glass cards stamped everywhere until transparency loses meaning
- decorative aurora orbs and warm playful gradients that break the cold mood
- heavy borders, skeuomorphic bevels, or a single accent edge on a card
- the generic SaaS hero: eyebrow tag, button pair, three-stat row
### Visual Character
- translucent frosted panes with backdrop blur, layered at distinct depths so order reads at a glance
- a crystalline fern-frost rim etched along one structural edge of each pane, hairline and luminous, never a solid coloured bar
- a single cold thaw-line (bright glacier cyan) that marks the one live row, the active control, the figure that needs you
- segmented controls and status flags embedded in inset frosted rails, with a tiny etched indicator rather than a filled chip
- a deep glacial-dark ground with cold spectral light, where one tiny warm ember marks a point of life inside the cold
## Colors
Use the YAML color tokens as the normative palette. The prose below names the roles agents should preserve when generating UI.
| Token | Value |
|-------|-------|
| bg | `#0A1322` |
| surface | `#13203A` |
| surface-2 | `#1B2C4C` |
| text | `#EAF4FF` |
| muted | `#93A8C6` |
| border | `#2C4063` |
| accent | `#67E8F9` |
| accent-2 | `#A7C7FF` |
| accent-3 | `#F4B07A` |
| on-accent | `#06121F` |
| success | `#6FE3B0` |
| warning | `#F4C77A` |
| error | `#FF8FA6` |
| info | `#8FD3FF` |
## Typography
- **Headline-Lg**: Sora, 'Helvetica Neue', Arial, sans-serif, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Sora, 'Helvetica Neue', Arial, sans-serif, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: Manrope, 'Helvetica Neue', Arial, sans-serif, 17px, weight 400, line-height 1.5.
- **Label-Md**: 'IBM Plex Mono', ui-monospace, monospace, 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`
### Grid
Desktop: 12-column grid where panes span 4-8 columns and layer at distinct depths; readout panes sit forward, context panes recede. Tablet narrows to 8 columns; phone collapses to one column with panes stacking and frost rims moving to the top edge.
### Whitespace
Whitespace is structural and atmospheric: large outer margins, 48-64px between pane clusters on desktop, an 8px baseline grid, deep negative space that lets the glacial ground show through. Titles are always padded from pane tops.
### Responsive
390px mobile to 2560px+ ultra-wide. Ultra-wide caps and centres content; only the hero spans 100vw. Mobile stacks to one column, drops non-essential table columns, and shrinks the hero headline with clamp() so it wraps and never clips the 390px edge.
### Breakpoints
- **Xl**: 1280
- **Lg**: 1080
- **Md**: 900
- **Sm**: 760
- **Xs**: 400
## Elevation & Depth
### Shadows
- **Sm**: 0 12px 32px rgba(2,8,20,0.45)
- **Md**: 0 22px 60px rgba(2,8,20,0.55)
- **Lg**: 0 34px 90px rgba(2,8,20,0.62)
## Shapes
### Rounded
- **None**: `0px`
- **Sm**: `16px`
- **Md**: `16px`
- **Lg**: `24px`
- **Full**: `9999px`
### Surfaces
- **Treatment**: frosted-glass
- **Card Style**: translucent frosted pane with a crystalline fern-frost rim etched along one structural edge, layered at a distinct depth, no solid accent edge
- **Bg Pattern**: fern-frost
### Borders
- **Default Width**: 1px
- **Style**: solid
- **Character**: hairline luminous frost rims that catch cold light as structure, never decorative frames or a single accent edge
## Components
### Composition
Stack content on translucent frosted panes layered at distinct depths, separated by space and depth order rather than boxes inside boxes. Each pane carries a crystalline fern-frost rim etched along one structural edge; never wrap a pane in a full frame or give it a solid accent edge.
### Hierarchy
Hierarchy comes from pane depth, scale jumps, weight, and the single cold thaw-line. Headlines are oversized and quiet; labels and figures are mono and tracked; the thaw-line marks only what is live.
### Density
Medium density, high legibility: generous architectural whitespace between panes, tightly ordered ruled readouts inside them, no decorative padding in controls.
### Signature
The frost pane is the interface: every surface is a translucent etched pane layered at a distinct depth with a crystalline fern-frost rim, and a single cold thaw-line marks the one live row, active control, or figure that needs attention. The thaw-line is the positional accent and recolours on palette swap.
### Signature Patterns
- every surface is a translucent frosted pane with a crystalline fern-frost rim etched along one structural edge, layered at a distinct depth
- the one cold thaw-line marks the single live thing — the active row, the focused control, the figure that needs you
- status is an etched flag with a tiny frost-tick indicator and a tracked label, never a filled chip
- segmented controls and tabs sit in inset frosted rails, the active segment lifting forward with a thaw-line underline
- one tiny warm ember appears where there is a point of life inside the cold, never spreading into a fill
## 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-019efd25-dda7-74c1-a06f-466b9ae898b7/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 Layer panes at distinct depths so the order of information reads before you read a word.
- Do Etch each pane's structural edge with a hairline crystalline frost rim; use it as structure, not decoration.
- Do Reserve the cold thaw-line for the single live thing — the active row, the focused field, the figure that matters.
- Do Use mono figures for readings, depths, codes, and numeric summaries.
- Do Keep one tiny warm ember as a point of life; let depth and cold light carry the mood.
- Don't Do not stamp glass cards everywhere until transparency stops meaning anything.
- Don't Do not give a pane a solid accent edge, a heavy border, or a full frame.
- Don't Do not add decorative aurora orbs, warm gradients, or skeuomorphic bevels.
- Don't Do not trap the nav in a pill bar or nest panes inside panes.
- Don't Do not let the thaw-line or the warm ember spread into a fill.
### Accessibility
High contrast on a deep glacial ground (text #EAF4FF on #0A1322). Body 17px, table rows 14.5px. Focus states are visible (cold thaw-line underline and frost rim). Motion is added on top of a fully-rendered no-JS state and honours prefers-reduced-motion. Status is never colour-only — every flag carries a tracked text label and an etched tick.
## Imagery Direction
### Pairs With
cryotype
### Summary
Etched frosted-glass scenes of cold mountain country — glacier lakes, snowpack ridgelines, frosted instruments — rendered in near-monochrome glacial blue with crystalline fern-frost feathering and one cold rim-light, deep open negative space for an overlaid headline.
### Subjects
- a still glacier lake at the foot of dark frosted mountains
- a snowpack ridgeline etched in frost
- a frosted sensor mast on an open col
- crystalline fern-frost spreading across a pane
### Treatment
Etched into and seen through layered frosted glass; near-monochrome cold rendering, fern-frost feathering at the edges, one luminous cool rim-light, one tiny warm spark; no gradients-as-decoration, atmospheric and stratified.
### Ground
Deep glacial dark, cinematic, with broad open negative space for an overlaid headline
### Usage
Hero is one full-bleed etched-frost glacier scene with the headline overlaid in the open upper space; feature and empty-state slots use restrained etched vignettes.
### Engine Hints
- **Model**: gpt-image-2
- **Provider**: openai
- **Tool**: openai-image MCP
- **Size**: 1536x1024
- **Quality**: high
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "rime",
"type": "registry:theme",
"title": "Rime shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#0A1322",
"foreground": "#EAF4FF",
"card": "#13203A",
"card-foreground": "#EAF4FF",
"popover": "#13203A",
"popover-foreground": "#EAF4FF",
"primary": "#EAF4FF",
"primary-foreground": "#111111",
"secondary": "#f4f4f5",
"secondary-foreground": "#111111",
"muted": "#93A8C6",
"muted-foreground": "#EAF4FF",
"accent": "#67E8F9",
"accent-foreground": "#111111",
"destructive": "#FF8FA6",
"border": "#2C4063",
"input": "#2C4063",
"ring": "#67E8F9",
"chart-1": "#EAF4FF",
"chart-2": "#f4f4f5",
"chart-3": "#67E8F9",
"chart-4": "#6FE3B0",
"chart-5": "#F4C77A",
"sidebar": "#13203A",
"sidebar-foreground": "#EAF4FF",
"sidebar-primary": "#EAF4FF",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#8FD3FF",
"sidebar-accent-foreground": "#111111",
"sidebar-border": "#2C4063",
"sidebar-ring": "#67E8F9",
"radius": "16px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#EAF4FF",
"primary-foreground": "#111111",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#67E8F9",
"accent-foreground": "#111111",
"destructive": "#FF8FA6",
"border": "#303642",
"input": "#303642",
"ring": "#67E8F9",
"chart-1": "#EAF4FF",
"chart-2": "#f4f4f5",
"chart-3": "#67E8F9",
"chart-4": "#6FE3B0",
"chart-5": "#F4C77A",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#EAF4FF",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#67E8F9",
"sidebar-accent-foreground": "#111111",
"sidebar-border": "#303642",
"sidebar-ring": "#67E8F9",
"radius": "16px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019efd25-dda7-74c1-a06f-466b9ae898b7",
"slug": "rime",
"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",
"accent-2",
"accent-3",
"bg",
"border",
"error",
"info",
"muted",
"on-accent",
"success",
"surface",
"surface-2",
"text",
"warning"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"heading_transform",
"heading_weight",
"letter_spacing",
"mono_font"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"borders": [
"character",
"default_width",
"style"
],
"motion": [
"duration",
"easing",
"fast",
"philosophy"
]
}
}
}
```The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
Agent-generated
produced by opus-4.8 · sourced by opus-4.8 · images by gpt-image-2
Keep Rimeand swap a palette and an art style onto it — the landing & dashboard recolor live. The Studio does the same with all three lanes free.
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.
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table:root {
--background: #0A1322;
--foreground: #EAF4FF;
--card: #13203A;
--card-foreground: #EAF4FF;
--popover: #13203A;
--popover-foreground: #EAF4FF;
--primary: #EAF4FF;
--primary-foreground: #111111;
--secondary: #f4f4f5;
--secondary-foreground: #111111;
--muted: #93A8C6;
--muted-foreground: #EAF4FF;
--accent: #67E8F9;
--accent-foreground: #111111;
--destructive: #FF8FA6;
--border: #2C4063;
--input: #2C4063;
--ring: #67E8F9;
--chart-1: #EAF4FF;
--chart-2: #f4f4f5;
--chart-3: #67E8F9;
--chart-4: #6FE3B0;
--chart-5: #F4C77A;
--sidebar: #13203A;
--sidebar-foreground: #EAF4FF;
--sidebar-primary: #EAF4FF;
--sidebar-primary-foreground: #111111;
--sidebar-accent: #8FD3FF;
--sidebar-accent-foreground: #111111;
--sidebar-border: #2C4063;
--sidebar-ring: #67E8F9;
--radius: 16px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #EAF4FF;
--primary-foreground: #111111;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #67E8F9;
--accent-foreground: #111111;
--destructive: #FF8FA6;
--border: #303642;
--input: #303642;
--ring: #67E8F9;
--chart-1: #EAF4FF;
--chart-2: #f4f4f5;
--chart-3: #67E8F9;
--chart-4: #6FE3B0;
--chart-5: #F4C77A;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #EAF4FF;
--sidebar-primary-foreground: #111111;
--sidebar-accent: #67E8F9;
--sidebar-accent-foreground: #111111;
--sidebar-border: #303642;
--sidebar-ring: #67E8F9;
--radius: 16px;
}
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { Input } from "@/components/ui/input";
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs";
export function RimeShadcnKit() {
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">Rime</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": "rime",
"type": "registry:theme",
"title": "Rime",
"description": "Frosted-pane cold-operations theme: deep glacial-dark ground, translucent panes with an etched fern-frost rim, one positional thaw-cyan accent, one warm ember.",
"visualProfile": {
"mode": "dark",
"ground": "glacial-dark",
"material": "frosted-glass",
"surface": "translucent backdrop-blur panes layered at distinct depths",
"edge": "hairline crystalline fern-frost rim on one structural edge, never a solid accent edge or heavy border",
"accentUse": "positional — a single cold thaw-line marks the one live element; never a fill",
"radius": "16px / 24px / 9999px, never arbitrary in-between",
"elevation": "soft cold shadow stacks, no skeuomorphic bevels",
"warmth": "one faint ember as the only warm note",
"typography": {
"display": "Sora 700-800, -0.02em",
"body": "Manrope 17px",
"mono": "IBM Plex Mono, tabular figures"
}
},
"cssVars": {
"theme": {
"font-sans": "Manrope, ui-sans-serif, system-ui, sans-serif",
"font-mono": "IBM Plex Mono, ui-monospace, monospace",
"radius": "1rem"
},
"dark": {
"background": "#0A1322",
"foreground": "#EAF4FF",
"card": "#13203A",
"card-foreground": "#EAF4FF",
"popover": "#1B2C4C",
"popover-foreground": "#EAF4FF",
"primary": "#67E8F9",
"primary-foreground": "#06121F",
"secondary": "#1B2C4C",
"secondary-foreground": "#EAF4FF",
"muted": "#13203A",
"muted-foreground": "#93A8C6",
"accent": "#A7C7FF",
"accent-foreground": "#06121F",
"destructive": "#FF8FA6",
"destructive-foreground": "#06121F",
"border": "#2C4063",
"input": "#2C4063",
"ring": "#67E8F9",
"chart-1": "#67E8F9",
"chart-2": "#A7C7FF",
"chart-3": "#6FE3B0",
"chart-4": "#F4C77A",
"chart-5": "#F4B07A",
"sidebar": "#0A1322",
"sidebar-foreground": "#EAF4FF",
"sidebar-primary": "#67E8F9",
"sidebar-primary-foreground": "#06121F",
"sidebar-accent": "#1B2C4C",
"sidebar-accent-foreground": "#EAF4FF",
"sidebar-border": "#2C4063",
"sidebar-ring": "#67E8F9"
}
}
}
# Rime shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019efd25-dda7-74c1-a06f-466b9ae898b7`
Slug: `rime`
## Intent
Rime refines glassmorphism into a disciplined cold-operations system. It keeps what was true in the frost original — translucent layered panes, spectral cold light, the sense of surfaces carved from winter air — and drops the slop: milky blur without hierarchy, glass-card wallpaper, decorative aurora orbs, and the generic SaaS shell. Every surface is an etched frost pane whose key edge is a crystalline fern-frost rim, and one bright thaw-line marks the single thing that is live. It reads on a deep glacial dark, where cold light actually belongs.
## 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:
{
"bg": "#0A1322",
"surface": "#13203A",
"surface-2": "#1B2C4C",
"text": "#EAF4FF",
"muted": "#93A8C6",
"border": "#2C4063",
"accent": "#67E8F9",
"accent-2": "#A7C7FF",
"accent-3": "#F4B07A",
"on-accent": "#06121F",
"success": "#6FE3B0",
"warning": "#F4C77A",
"error": "#FF8FA6",
"info": "#8FD3FF"
}
Typography:
{
"base_size": "17px",
"body_font": "Manrope, 'Helvetica Neue', Arial, sans-serif",
"heading_font": "Sora, 'Helvetica Neue', Arial, sans-serif",
"mono_font": "'IBM Plex Mono', ui-monospace, monospace",
"heading_weight": "700",
"heading_transform": "none",
"letter_spacing": "-0.02em",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Manrope:wght@400;500;600;700;800&family=Sora:wght@400;500;600;700;800&display=swap"
}
## Visual character to preserve
- translucent frosted panes with backdrop blur, layered at distinct depths so order reads at a glance
- a crystalline fern-frost rim etched along one structural edge of each pane, hairline and luminous, never a solid coloured bar
- a single cold thaw-line (bright glacier cyan) that marks the one live row, the active control, the figure that needs you
- segmented controls and status flags embedded in inset frosted rails, with a tiny etched indicator rather than a filled chip
- a deep glacial-dark ground with cold spectral light, where one tiny warm ember marks a point of life inside the cold
## ShadSync visual profile
{
"family": "system",
"material": "flat",
"contour": "default",
"border": "solid",
"underlay": true,
"grain": false,
"stickerBadges": false,
"motion": "lift",
"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/rime/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: Layer panes at distinct depths so the order of information reads before you read a word.; Etch each pane's structural edge with a hairline crystalline frost rim; use it as structure, not decoration.; Reserve the cold thaw-line for the single live thing — the active row, the focused field, the figure that matters.; Use mono figures for readings, depths, codes, and numeric summaries.; Keep one tiny warm ember as a point of life; let depth and cold light carry the mood.
- Do not: Do not stamp glass cards everywhere until transparency stops meaning anything.; Do not give a pane a solid accent edge, a heavy border, or a full frame.; Do not add decorative aurora orbs, warm gradients, or skeuomorphic bevels.; Do not trap the nav in a pill bar or nest panes inside panes.; Do not let the thaw-line or the warm ember spread into a fill.
## 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 RimeShadcnKit() {
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">Rime</h2>
<p className="mt-1 max-w-xl text-sm text-muted-foreground">
Use the Katagami registry theme, then compose these shadcn primitives
with the language-specific component recipes.
</p>
</div>
<Button>Apply theme</Button>
</div>
<Tabs defaultValue="components">
<TabsList>
<TabsTrigger value="components">Components</TabsTrigger>
<TabsTrigger value="states">States</TabsTrigger>
<TabsTrigger value="export">Export</TabsTrigger>
</TabsList>
</Tabs>
<Card>
<CardHeader>
<CardTitle>Component recipe</CardTitle>
<CardDescription>
Replace this starter content with the agent-authored product scene
from components.md and preview-shots.json.
</CardDescription>
</CardHeader>
<CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
<Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
<Button variant="secondary">Preview state</Button>
</CardContent>
<CardFooter className="justify-between">
<Badge>Ready</Badge>
<Button variant="outline">Copy recipe</Button>
</CardFooter>
</Card>
</section>
);
}
```
## Layout notes
{
"grid": "Desktop: 12-column grid where panes span 4-8 columns and layer at distinct depths; readout panes sit forward, context panes recede. Tablet narrows to 8 columns; phone collapses to one column with panes stacking and frost rims moving to the top edge.",
"whitespace": "Whitespace is structural and atmospheric: large outer margins, 48-64px between pane clusters on desktop, an 8px baseline grid, deep negative space that lets the glacial ground show through. Titles are always padded from pane tops.",
"responsive": "390px mobile to 2560px+ ultra-wide. Ultra-wide caps and centres content; only the hero spans 100vw. Mobile stacks to one column, drops non-essential table columns, and shrinks the hero headline with clamp() so it wraps and never clips the 390px edge.",
"breakpoints": {
"xl": "1280",
"lg": "1080",
"md": "900",
"sm": "760",
"xs": "400"
}
}
{
"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-019efd25-dda7-74c1-a06f-466b9ae898b7",
"name": "Rime",
"slug": "rime"
},
"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": [
"translucent frosted panes with backdrop blur, layered at distinct depths so order reads at a glance",
"a crystalline fern-frost rim etched along one structural edge of each pane, hairline and luminous, never a solid coloured bar",
"a single cold thaw-line (bright glacier cyan) that marks the one live row, the active control, the figure that needs you",
"segmented controls and status flags embedded in inset frosted rails, with a tiny etched indicator rather than a filled chip",
"a deep glacial-dark ground with cold spectral light, where one tiny warm ember marks a point of life inside the cold"
],
"visualProfile": {
"family": "system",
"material": "flat",
"contour": "default",
"border": "solid",
"underlay": true,
"grain": false,
"stickerBadges": false,
"motion": "lift",
"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": "Rime 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": [
"Layer panes at distinct depths so the order of information reads before you read a word.",
"Etch each pane's structural edge with a hairline crystalline frost rim; use it as structure, not decoration.",
"Reserve the cold thaw-line for the single live thing — the active row, the focused field, the figure that matters.",
"Use mono figures for readings, depths, codes, and numeric summaries.",
"Keep one tiny warm ember as a point of life; let depth and cold light carry the mood."
],
"dont": [
"Do not stamp glass cards everywhere until transparency stops meaning anything.",
"Do not give a pane a solid accent edge, a heavy border, or a full frame.",
"Do not add decorative aurora orbs, warm gradients, or skeuomorphic bevels.",
"Do not trap the nav in a pill bar or nest panes inside panes.",
"Do not let the thaw-line or the warm ember spread into a fill."
]
}
}