Frosted Steel Tints
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
- 3px
- character
- cool steel lines define hierarchy; focus rings are 3px ink-blue outside outlines
- default width
- 1px
- style
- solid with occasional double-rail separators
colors12 items
motion3 items
- duration
- 160ms
- easing
- cubic-bezier(.2,.8,.2,1)
- philosophy
- short material confirmations only: tint halo appears, steel edge darkens, elevation lifts by two pixels
radii5 items
- full
- 9999px
- lg
- 18px
- md
- 10px
- none
- 0
- sm
- 6px
shadows3 items
- lg
- 0 34px 80px rgba(17,24,39,.18)
- md
- 0 16px 42px rgba(30,58,95,.12)
- sm
- 0 1px 2px rgba(17,24,39,.08)
spacing2 items
- base
- 8px
- scale
- 4, 8, 12, 16, 24, 32, 48, 64
surfaces3 items
- bg pattern
- subtle 24px calibration grid with large desaturated blue and lilac glazes clipped behind content
- card style
- white or pearl cards with inset steel borders, slim tint cap strips, and one sharp dark anchor edge
- treatment
- pearl and frost tint slabs over steel-neutral foundations; tints are translucent surfaces, never text colors
typography8 items
- base size
- 16px
- body font
- Inter
- google fonts url
- https://fonts.googleapis.com/css2?family=Afacad+Flux:wght@500;650;750&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&display=swap
- heading font
- Afacad Flux
- letter spacing
- -0.01em
- line height
- 1.5
- mono font
- IBM Plex Mono
- scale ratio
- 1.22
rules
Build screens as steel-framed workbenches: a dark ink command rail, a broad pearl canvas, and frosted tint modules that step down in density from left navigation to data detail.
Medium-high product density with generous row height, compact metadata, and enough whitespace around tinted panels to keep the pale palette from becoming foggy.
The darkest ink and steel roles identify primary navigation, headings, active states, and focus; pale tints provide grouping, status, and editorial freshness only after contrast is solved.
layout
desktop 1200px+, tablet 768-1199px with collapsible rail, mobile below 640px with stacked modules and persistent command bar
12-column desktop workbench grid with a fixed 280px navigation rail, 24px gutters, and nested 4-column analysis cards.
Whitespace is used as frost separation: 24-32px between surface groups, 12-16px within dense rows, and no floating tint without a steel edge.
guidance
- Use pale tints as surfaces, status chips, chart fills, and hover glazes paired with ink labels.
- Maintain WCAG 2.2 contrast by setting body copy in ink or dark steel on every light tint.
- Create primitive ramps for blue, mint, lilac, blush, pearl, steel, and ink, then map them to semantic roles.
- In dark mode, place luminous desaturated glazes over charcoal while preserving white or near-white text.
- Do not set primary text in blush, mint, or lilac on white or pearl backgrounds.
- Do not use cotton-candy diagonal gradients as primary panels or behind dense data.
- Do not let glass blur, transparency, or pale borders replace clear structural hierarchy.
- Do not assign adjacent chart categories to indistinguishable pale tints without dark strokes or labels.
katagami spec
# Frosted Steel Tints ## Philosophy A production-ready palette language for creative interfaces that uses airy frosted blue, mint, lilac, blush, and pearl only as atmosphere, while steel and ink neutrals carry structure, text, controls, focus, and data legibility. ### Values - frosted freshness with enterprise discipline - semantic token readiness before decoration - accessible ink anchors for every interactive state - warm and cool tints balanced by neutral steel ### Anti-Values - pastel text on white surfaces - cotton-candy gradients without hierarchy - decorative tint overload in dense data - unstructured glassmorphism blur ### Visual Character - Layer pale tint panels over a charcoal-to-pearl neutral field using inset one-pixel steel borders and non-blurred translucent fills. - Use ink text blocks, dark steel header rails, and high-contrast focus outlines so every frosted surface has a hard structural anchor. - Compose cards as stepped elevation slabs with tiny OKLCH-like tint chips along the top edge rather than full-panel rainbow gradients. - Reserve mint, lilac, blush, and frosted blue for status glazes, chart accents, and hover halos while body copy remains ink or steel. ## Tokens ### Borders - **Accent Width**: 3px - **Character**: cool steel lines define hierarchy; focus rings are 3px ink-blue outside outlines - **Default Width**: 1px - **Style**: solid with occasional double-rail separators ### Colors | Name | Value | |------|-------| | accent | `#BDEDDC` | | background | `#F7FAFC` | | border | `#9AA8B8` | | error | `#B4233A` | | info | `#2563A8` | | muted | `#5B6675` | | primary | `#1E3A5F` | | secondary | `#CFE9F4` | | success | `#12785F` | | surface | `#FFFFFF` | | text | `#111827` | | warning | `#9A5B00` | ### Motion - **Duration**: 160ms - **Easing**: cubic-bezier(.2,.8,.2,1) - **Philosophy**: short material confirmations only: tint halo appears, steel edge darkens, elevation lifts by two pixels ### Radii - **Full**: 9999px - **Lg**: 18px - **Md**: 10px - **None**: 0 - **Sm**: 6px ### Shadows - **Lg**: 0 34px 80px rgba(17,24,39,.18) - **Md**: 0 16px 42px rgba(30,58,95,.12) - **Sm**: 0 1px 2px rgba(17,24,39,.08) ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,48,64] ### Surfaces - **Bg Pattern**: subtle 24px calibration grid with large desaturated blue and lilac glazes clipped behind content - **Card Style**: white or pearl cards with inset steel borders, slim tint cap strips, and one sharp dark anchor edge - **Treatment**: pearl and frost tint slabs over steel-neutral foundations; tints are translucent surfaces, never text colors ### Typography - **Base Size**: 16px - **Body Font**: Inter - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Afacad+Flux:wght@500;650;750&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&display=swap - **Heading Font**: Afacad Flux - **Letter Spacing**: -0.01em - **Line Height**: 1.5 - **Mono Font**: IBM Plex Mono - **Scale Ratio**: 1.22 ## Rules ### Composition Build screens as steel-framed workbenches: a dark ink command rail, a broad pearl canvas, and frosted tint modules that step down in density from left navigation to data detail. ### Density Medium-high product density with generous row height, compact metadata, and enough whitespace around tinted panels to keep the pale palette from becoming foggy. ### Hierarchy The darkest ink and steel roles identify primary navigation, headings, active states, and focus; pale tints provide grouping, status, and editorial freshness only after contrast is solved. ### Signature Patterns - Tint cap strips: each major card receives a 3px segmented top border in frosted blue, mint, lilac, or blush to signal category without flooding the surface. - Steel clamp rails: selected controls and table headers use a dark left or top rail that visually locks translucent panels to the grid. - Pearl-grid underlay: backgrounds use a nearly invisible steel calibration grid with large clipped tint glazes behind content, not over text. - Ink focus halo: interactive focus combines a 3px ink-blue outline with a pale mint outer glow so accessibility and softness coexist. ## Layout ### Breakpoints desktop 1200px+, tablet 768-1199px with collapsible rail, mobile below 640px with stacked modules and persistent command bar ### Grid 12-column desktop workbench grid with a fixed 280px navigation rail, 24px gutters, and nested 4-column analysis cards. ### Whitespace Whitespace is used as frost separation: 24-32px between surface groups, 12-16px within dense rows, and no floating tint without a steel edge. ## Guidance ### Do - Use pale tints as surfaces, status chips, chart fills, and hover glazes paired with ink labels. - Maintain WCAG 2.2 contrast by setting body copy in ink or dark steel on every light tint. - Create primitive ramps for blue, mint, lilac, blush, pearl, steel, and ink, then map them to semantic roles. - In dark mode, place luminous desaturated glazes over charcoal while preserving white or near-white text. ### Don't - Do not set primary text in blush, mint, or lilac on white or pearl backgrounds. - Do not use cotton-candy diagonal gradients as primary panels or behind dense data. - Do not let glass blur, transparency, or pale borders replace clear structural hierarchy. - Do not assign adjacent chart categories to indistinguishable pale tints without dark strokes or labels.
DESIGN.md
---
version: "alpha"
name: "Frosted Steel Tints"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
accent: "#BDEDDC"
background: "#F7FAFC"
border: "#9AA8B8"
error: "#B4233A"
info: "#2563A8"
muted: "#5B6675"
primary: "#1E3A5F"
secondary: "#CFE9F4"
success: "#12785F"
surface: "#FFFFFF"
text: "#111827"
warning: "#9A5B00"
typography:
headline-lg:
fontFamily: "Afacad Flux"
fontSize: "1.816rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.01em"
headline-md:
fontFamily: "Afacad Flux"
fontSize: "1.488rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.01em"
body-md:
fontFamily: "Inter"
fontSize: "16px"
fontWeight: 400
lineHeight: 1.5
letterSpacing: "-0.01em"
label-md:
fontFamily: "IBM Plex Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
full: "9999px"
lg: "18px"
md: "10px"
none: "0px"
sm: "6px"
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"
---
# Frosted Steel Tints
## Overview
A production-ready palette language for creative interfaces that uses airy frosted blue, mint, lilac, blush, and pearl only as atmosphere, while steel and ink neutrals carry structure, text, controls, focus, and data legibility.
### Values
- frosted freshness with enterprise discipline
- semantic token readiness before decoration
- accessible ink anchors for every interactive state
- warm and cool tints balanced by neutral steel
### Anti-Values
- pastel text on white surfaces
- cotton-candy gradients without hierarchy
- decorative tint overload in dense data
- unstructured glassmorphism blur
### Visual Character
- Layer pale tint panels over a charcoal-to-pearl neutral field using inset one-pixel steel borders and non-blurred translucent fills.
- Use ink text blocks, dark steel header rails, and high-contrast focus outlines so every frosted surface has a hard structural anchor.
- Compose cards as stepped elevation slabs with tiny OKLCH-like tint chips along the top edge rather than full-panel rainbow gradients.
- Reserve mint, lilac, blush, and frosted blue for status glazes, chart accents, and hover halos while body copy remains ink or steel.
## 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 | `#BDEDDC` |
| background | `#F7FAFC` |
| border | `#9AA8B8` |
| error | `#B4233A` |
| info | `#2563A8` |
| muted | `#5B6675` |
| primary | `#1E3A5F` |
| secondary | `#CFE9F4` |
| success | `#12785F` |
| surface | `#FFFFFF` |
| text | `#111827` |
| warning | `#9A5B00` |
## Typography
- **Headline-Lg**: Afacad Flux, 1.816rem, weight 700, line-height 1.1.
- **Headline-Md**: Afacad Flux, 1.488rem, weight 600, line-height 1.15.
- **Body-Md**: Inter, 16px, weight 400, line-height 1.5.
- **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+, tablet 768-1199px with collapsible rail, mobile below 640px with stacked modules and persistent command bar
### Grid
12-column desktop workbench grid with a fixed 280px navigation rail, 24px gutters, and nested 4-column analysis cards.
### Whitespace
Whitespace is used as frost separation: 24-32px between surface groups, 12-16px within dense rows, and no floating tint without a steel edge.
## Elevation & Depth
### Shadows
- **Lg**: 0 34px 80px rgba(17,24,39,.18)
- **Md**: 0 16px 42px rgba(30,58,95,.12)
- **Sm**: 0 1px 2px rgba(17,24,39,.08)
## Shapes
### Rounded
- **Full**: `9999px`
- **Lg**: `18px`
- **Md**: `10px`
- **None**: `0px`
- **Sm**: `6px`
### Surfaces
- **Bg Pattern**: subtle 24px calibration grid with large desaturated blue and lilac glazes clipped behind content
- **Card Style**: white or pearl cards with inset steel borders, slim tint cap strips, and one sharp dark anchor edge
- **Treatment**: pearl and frost tint slabs over steel-neutral foundations; tints are translucent surfaces, never text colors
### Borders
- **Accent Width**: 3px
- **Character**: cool steel lines define hierarchy; focus rings are 3px ink-blue outside outlines
- **Default Width**: 1px
- **Style**: solid with occasional double-rail separators
## Components
### Composition
Build screens as steel-framed workbenches: a dark ink command rail, a broad pearl canvas, and frosted tint modules that step down in density from left navigation to data detail.
### Density
Medium-high product density with generous row height, compact metadata, and enough whitespace around tinted panels to keep the pale palette from becoming foggy.
### Hierarchy
The darkest ink and steel roles identify primary navigation, headings, active states, and focus; pale tints provide grouping, status, and editorial freshness only after contrast is solved.
### Signature Patterns
- Tint cap strips: each major card receives a 3px segmented top border in frosted blue, mint, lilac, or blush to signal category without flooding the surface.
- Steel clamp rails: selected controls and table headers use a dark left or top rail that visually locks translucent panels to the grid.
- Pearl-grid underlay: backgrounds use a nearly invisible steel calibration grid with large clipped tint glazes behind content, not over text.
- Ink focus halo: interactive focus combines a 3px ink-blue outline with a pale mint outer glow so accessibility and softness coexist.
## 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-019ea9b1-6b38-7993-8963-ce5193525fd5/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 pale tints as surfaces, status chips, chart fills, and hover glazes paired with ink labels.
- Do Maintain WCAG 2.2 contrast by setting body copy in ink or dark steel on every light tint.
- Do Create primitive ramps for blue, mint, lilac, blush, pearl, steel, and ink, then map them to semantic roles.
- Do In dark mode, place luminous desaturated glazes over charcoal while preserving white or near-white text.
- Don't Do not set primary text in blush, mint, or lilac on white or pearl backgrounds.
- Don't Do not use cotton-candy diagonal gradients as primary panels or behind dense data.
- Don't Do not let glass blur, transparency, or pale borders replace clear structural hierarchy.
- Don't Do not assign adjacent chart categories to indistinguishable pale tints without dark strokes or labels.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "frosted-steel-tints",
"type": "registry:theme",
"title": "Frosted Steel Tints shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F7FAFC",
"foreground": "#111827",
"card": "#FFFFFF",
"card-foreground": "#111827",
"popover": "#FFFFFF",
"popover-foreground": "#111827",
"primary": "#1E3A5F",
"primary-foreground": "#ffffff",
"secondary": "#CFE9F4",
"secondary-foreground": "#111111",
"muted": "#5B6675",
"muted-foreground": "#111827",
"accent": "#BDEDDC",
"accent-foreground": "#111111",
"destructive": "#B4233A",
"border": "#9AA8B8",
"input": "#9AA8B8",
"ring": "#BDEDDC",
"chart-1": "#1E3A5F",
"chart-2": "#CFE9F4",
"chart-3": "#BDEDDC",
"chart-4": "#12785F",
"chart-5": "#9A5B00",
"sidebar": "#FFFFFF",
"sidebar-foreground": "#111827",
"sidebar-primary": "#1E3A5F",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#2563A8",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#9AA8B8",
"sidebar-ring": "#BDEDDC",
"radius": "10px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#1E3A5F",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#BDEDDC",
"accent-foreground": "#111111",
"destructive": "#B4233A",
"border": "#303642",
"input": "#303642",
"ring": "#BDEDDC",
"chart-1": "#1E3A5F",
"chart-2": "#CFE9F4",
"chart-3": "#BDEDDC",
"chart-4": "#12785F",
"chart-5": "#9A5B00",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#1E3A5F",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#BDEDDC",
"sidebar-accent-foreground": "#111111",
"sidebar-border": "#303642",
"sidebar-ring": "#BDEDDC",
"radius": "10px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019ea9b1-6b38-7993-8963-ce5193525fd5",
"slug": "frosted-steel-tints",
"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: #F7FAFC;
--foreground: #111827;
--card: #FFFFFF;
--card-foreground: #111827;
--popover: #FFFFFF;
--popover-foreground: #111827;
--primary: #1E3A5F;
--primary-foreground: #ffffff;
--secondary: #CFE9F4;
--secondary-foreground: #111111;
--muted: #5B6675;
--muted-foreground: #111827;
--accent: #BDEDDC;
--accent-foreground: #111111;
--destructive: #B4233A;
--border: #9AA8B8;
--input: #9AA8B8;
--ring: #BDEDDC;
--chart-1: #1E3A5F;
--chart-2: #CFE9F4;
--chart-3: #BDEDDC;
--chart-4: #12785F;
--chart-5: #9A5B00;
--sidebar: #FFFFFF;
--sidebar-foreground: #111827;
--sidebar-primary: #1E3A5F;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #2563A8;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #9AA8B8;
--sidebar-ring: #BDEDDC;
--radius: 10px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #1E3A5F;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #BDEDDC;
--accent-foreground: #111111;
--destructive: #B4233A;
--border: #303642;
--input: #303642;
--ring: #BDEDDC;
--chart-1: #1E3A5F;
--chart-2: #CFE9F4;
--chart-3: #BDEDDC;
--chart-4: #12785F;
--chart-5: #9A5B00;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #1E3A5F;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #BDEDDC;
--sidebar-accent-foreground: #111111;
--sidebar-border: #303642;
--sidebar-ring: #BDEDDC;
--radius: 10px;
}
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 FrostedSteelTintsShadcnKit() {
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">Frosted Steel Tints</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": "frosted-steel-tints",
"type": "registry:theme",
"title": "Frosted Steel Tints shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F7FAFC",
"foreground": "#111827",
"card": "#FFFFFF",
"card-foreground": "#111827",
"popover": "#FFFFFF",
"popover-foreground": "#111827",
"primary": "#1E3A5F",
"primary-foreground": "#ffffff",
"secondary": "#CFE9F4",
"secondary-foreground": "#111111",
"muted": "#5B6675",
"muted-foreground": "#111827",
"accent": "#BDEDDC",
"accent-foreground": "#111111",
"destructive": "#B4233A",
"border": "#9AA8B8",
"input": "#9AA8B8",
"ring": "#BDEDDC",
"chart-1": "#1E3A5F",
"chart-2": "#CFE9F4",
"chart-3": "#BDEDDC",
"chart-4": "#12785F",
"chart-5": "#9A5B00",
"sidebar": "#FFFFFF",
"sidebar-foreground": "#111827",
"sidebar-primary": "#1E3A5F",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#2563A8",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#9AA8B8",
"sidebar-ring": "#BDEDDC",
"radius": "10px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#1E3A5F",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#BDEDDC",
"accent-foreground": "#111111",
"destructive": "#B4233A",
"border": "#303642",
"input": "#303642",
"ring": "#BDEDDC",
"chart-1": "#1E3A5F",
"chart-2": "#CFE9F4",
"chart-3": "#BDEDDC",
"chart-4": "#12785F",
"chart-5": "#9A5B00",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#1E3A5F",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#BDEDDC",
"sidebar-accent-foreground": "#111111",
"sidebar-border": "#303642",
"sidebar-ring": "#BDEDDC",
"radius": "10px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019ea9b1-6b38-7993-8963-ce5193525fd5",
"slug": "frosted-steel-tints",
"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"
]
}
}
}
# Frosted Steel Tints shadcn/ui Components
Author: `katagami-agent`
## Intent
Translate airy frosted blue, mint, lilac, blush, and pearl tints into credible shadcn/ui product screens. Pale color is surface atmosphere; steel and ink provide structure, text, focus, and interaction.
## Required primitives
button, card, input, textarea, select, dialog, sheet, tabs, badge, separator, checkbox, switch, slider, tooltip, dropdown-menu, and table from `@/components/ui/*`.
## Token cues
Use `{colors.primary}` for command rails, active controls, focus outlines, and selected table headers. Use `{colors.secondary}` and `{colors.accent}` as frosted surface fills only. Use `{colors.text}` for all copy and `{colors.border}` for one-pixel steel seams. Use `{rounded.lg}` for cards, `{rounded.md}` for fields, and `{rounded.full}` for badges.
## Visual character to preserve
Tint cap strips on every primary Card; steel clamp rails on selected panels and tables; pearl-grid or quiet underlay behind shell content; ink focus halo on all interactive primitives.
## ShadSync visual profile
family: frosted-enterprise; material: pearl-tint-slab; contour: measured-rounded; border: steel-inset; underlay: true; grain: false; stickerBadges: false; motion: tint-halo-lift; density: medium-high; accents: frosted-blue, mint, lilac, blush.
## Signature component recipes
- button: primary buttons use ink-blue fill, white text, rounded-full, and a 3px focus ring with mint halo. Secondary buttons stay white with steel border.
- card: white or pearl background, 1px steel border, rounded-lg, soft shadow, and a 3px segmented tint cap via pseudo-element or top border wrapper.
- input: white field, steel border, rounded-md, ink text, placeholder muted steel, focus ring in info blue plus mint halo.
- textarea: same as input with min-height 120px and no pastel text.
- select: steel-bordered trigger with dark chevron, selected state on pearl background.
- dialog: pearl surface, dark steel title rail, tint cap strip, restrained shadow, no glass blur over text.
- sheet: side sheet uses an ink clamp rail and frosted blue header surface.
- tabs: active tab has ink underline or dark top rail; inactive tabs can sit on pearl tint.
- badge: semantic badges use pale fills with dark text and steel border, never low-contrast pastel copy.
- separator: one-pixel steel line; use double rail only between major regions.
- checkbox: checked state fills primary ink blue; focus uses halo.
- switch: checked track primary, unchecked steel; thumb remains pearl.
- slider: primary ink track with pale mint range glow and visible thumb outline.
- tooltip: ink background with pearl text and small blue border highlight.
- dropdown-menu: white card with steel border, selected item gets frosted blue surface and ink label.
- table: header row primary ink; data rows white/pearl with steel dividers and optional tint status chips.
## Preview shots
application-shell, detail-editor, and data-operations must look like finished product screenshots with realistic palette-system content.
## Implementation contract
Import local primitives from `@/components/ui/*`; do not create a second component system. Preserve contrast by mapping pale tints to backgrounds, not typography. Keep container radius 18px, fields 10px, pills 9999px.
## Copy-paste component example
```tsx
import { Button } from "@/components/ui/button"
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"
import { Badge } from "@/components/ui/badge"
import { Input } from "@/components/ui/input"
export function FrostedSteelTokenCard() {
return (
<Card className="relative overflow-hidden rounded-[18px] border border-[#9AA8B8] bg-white shadow-[0_16px_42px_rgba(30,58,95,.12)] before:absolute before:left-0 before:top-0 before:h-[3px] before:w-full before:bg-[linear-gradient(90deg,#CFE9F4_0_25%,#BDEDDC_25%_50%,#E5D3F7_50%_75%,#F5D8DD_75%)]">
<CardHeader className="pt-7">
<Badge className="w-fit border border-[#9AA8B8] bg-[#EAF6FB] text-[#111827]">WCAG guarded</Badge>
<CardTitle className="font-semibold text-[#111827]">Semantic tint ramp</CardTitle>
</CardHeader>
<CardContent className="space-y-4">
<Input className="rounded-[10px] border-[#9AA8B8] focus-visible:ring-[#2563A8] focus-visible:ring-offset-2" defaultValue="Frost blue surface / Ink text" />
<Button className="rounded-full bg-[#1E3A5F] text-white hover:bg-[#172E4C] focus-visible:ring-[#2563A8]">Apply palette</Button>
</CardContent>
</Card>
)
}
```
{
"artifact": "katagami:shadcn-preview-shots",
"author": "katagami-agent",
"componentRecipes": [
"button",
"card",
"input",
"textarea",
"select",
"dialog",
"sheet",
"tabs",
"badge",
"separator",
"checkbox",
"switch",
"slider",
"tooltip",
"dropdown-menu",
"table"
],
"generatedBy": "katagami-agent",
"renderable": true,
"requiresVisualProfile": true,
"schema": "katagami:shadcn-preview-shots/renderable-v1",
"shots": [
{
"avoid": [
"pastel body text",
"rainbow gradient panels"
],
"composition": "Ink command rail, pearl workbench canvas, tint-capped cards, and steel-clamped table header.",
"id": "application-shell",
"mustShowStates": [
"active nav",
"focus halo",
"semantic badges",
"hoverable menu trigger"
],
"primitives": [
"button",
"card",
"tabs",
"badge",
"separator",
"tooltip",
"dropdown-menu",
"table"
],
"scene": {
"actions": [
"Export tokens",
"Run contrast audit"
],
"description": "A design-system team reviews 2026 frosted tint roles before shipping to product squads.",
"eyebrow": "Palette operations",
"headline": "Token readiness dashboard",
"rows": [
[
"Frost blue 50",
"Surface selected",
"Ink 950",
"AA"
],
[
"Mint 60",
"Success glaze",
"Steel 900",
"AA"
],
[
"Lilac 40",
"Grouping only",
"Ink 950",
"Guarded"
]
],
"stats": [
{
"label": "AA pairs",
"value": "42"
},
{
"label": "Tint roles",
"value": "18"
},
{
"label": "Dark glazes",
"value": "6"
}
]
}
},
{
"avoid": [
"blurred glass over text",
"low contrast placeholder"
],
"composition": "A pearl editor sheet with dark title rail, blue focus halo, semantic controls, and pale tint status surfaces.",
"id": "detail-editor",
"mustShowStates": [
"focused input",
"checked checkbox",
"enabled switch",
"open dialog treatment"
],
"primitives": [
"input",
"textarea",
"select",
"dialog",
"sheet",
"checkbox",
"switch",
"slider",
"button",
"badge"
],
"scene": {
"actions": [
"Save role",
"Preview dark glaze"
],
"description": "Curators map primitive ramps to accessible UI semantics across light and dark mode.",
"eyebrow": "Semantic token editor",
"fields": [
{
"label": "Role name",
"value": "surface.selected.frostBlue"
},
{
"label": "Text color",
"value": "ink.950"
},
{
"label": "Contrast note",
"value": "Tint remains a background only."
}
],
"headline": "Edit frosted blue surface role"
}
},
{
"avoid": [
"adjacent indistinguishable pale chart categories",
"decorative gradients"
],
"composition": "Dense operational table with primary ink header, pale chart fills with dark strokes, and steel row dividers.",
"id": "data-operations",
"mustShowStates": [
"sorted column",
"warning badge",
"chart-safe labels",
"dropdown action"
],
"primitives": [
"table",
"card",
"badge",
"separator",
"slider",
"switch",
"dropdown-menu",
"button",
"tooltip"
],
"scene": {
"actions": [
"Approve ramp",
"Open actions"
],
"description": "Analysts inspect colorblind-safe labels and dark strokes before enabling a chart token set.",
"eyebrow": "Chart safety lab",
"headline": "Frosted palette data operations",
"rows": [
[
"Blue",
"Info",
"Dark stroke",
"Pass"
],
[
"Mint",
"Success",
"Pattern optional",
"Pass"
],
[
"Blush",
"Warning surface",
"Needs label",
"Review"
]
],
"stats": [
{
"label": "Colorblind pass",
"value": "94%"
},
{
"label": "Min contrast",
"value": "4.8"
},
{
"label": "Series cap",
"value": "7"
}
]
}
}
],
"version": "preview-shots-v1",
"visualProfile": {
"accents": [
"frosted-blue",
"mint",
"lilac",
"blush"
],
"border": "steel-inset",
"contour": "measured-rounded",
"density": "medium-high",
"family": "frosted-enterprise",
"grain": false,
"material": "pearl-tint-slab",
"motion": "tint-halo-lift",
"stickerBadges": false,
"underlay": true
}
}