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.
Corkboard scatter over a strict responsive skeleton.
Use Chiclet when information should feel arranged by hand — idea boards, planning tools, directories, briefs, dashboards.
mixed-media-pop
Paper-collage cutouts placed directly on the page — cut construction paper, translucent cellophane and polyethylene film, glossy tape, crinkled foil, sticker dots, torn edges — in the live palette, background-removed, one soft drop-shadow, no boxes or frames. Objects carry the page's story (rocket to star, plane to flag, bulb as the idea, clouds as the sky) and tuck behind the frosted notes wherever they meet copy.
# Chiclet ## Philosophy Chiclet builds pages the way you'd cover a bright corkboard under an open sky: matte-translucent sticky-notes scattered by hand, paper-collage cutouts telling a launch story, and dashed journey-lines connecting the pieces. Everything is arranged, never gridded; alive, never busy; playful, never kitsch. ## Tokens ### Colors | Name | Value | |------|-------| | bg | `#F4F7FB` | | surface | `#FFFFFF` | | surface_solid | `#FFFFFF` | | text | `#151719` | | muted | `#697180` | | border | `rgba(24,30,46,0.10)` | | accent | `#35E0C4` | | accent_2 | `#B7FF3B` | | accent_soft | `rgba(53,224,196,0.19)` | | on_accent | `#141414` | | success | `#1F8F4E` | | warning | `#C77B0E` | | error | `#C94B4B` | | info | `#1D7B6C` | | accent_3 | `#FF5FB4` | | accent_shade | `#1D7B6C` | | accent_2_shade | `#52731B` | | accent_3_shade | `#B2427E` | ### Typography - **Base Size**: 17px - **Body Font**: Manrope - **Heading Font**: Unbounded - **Mono Font**: Sometype Mono - **Heading Weight**: 600 - **Heading Transform**: none - **Letter Spacing**: -0.02em - **Line Height**: 1.55 - **Scale Ratio**: 1.24 - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Unbounded:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&family=Sometype+Mono:wght@400;500;600;700&display=swap ### Radii - **None**: 0px - **Md**: 16px - **Lg**: 24px - **Full**: 9999px - **Note Exception**: 5px ### Shadows - **Sm**: 0 2px 6px rgba(24,30,46,.05) - **Md**: 0 6px 20px rgba(24,30,46,.08),0 2px 6px rgba(24,30,46,.05) - **Lg**: 0 16px 40px rgba(24,30,46,.16),0 4px 10px rgba(24,30,46,.06) ### Spacing - **Base**: 22px - **Scale**: generous; titles always padded above; sections clamp(44px,5.5vw,76px) ### Surfaces - **Treatment**: matte-translucent pinned notes (rgba(255,255,255,.58) + accent wash over backdrop-blur(6px)); overlapping washes blend; imagery tucks behind the frost - **Card Style**: borderless note with gloss pin, folded corner, 5px sticky-note radius; taped variant swaps the pin for translucent tape - **Bg Pattern**: cool near-white ground with a barely-there dotted corkboard grid (radial-gradient dots, 26px) ### Borders - **Default Width**: 0 - **Accent Width**: 0 - **Style**: none - **Character**: no borders ever — hierarchy from space, tint and one soft shadow ### Motion - **Duration**: .3s (micro) / .6s (reveals) - **Easing**: cubic-bezier(.2,.85,.25,1) - **Philosophy**: scroll-driven story: flyers ride drawn journey-lines nose-first; reveals settle like pinned paper; everything gated so no-JS and reduced-motion get the finished page ## Rules ### Do - Let overlapping notes blend — the material is the language - Tuck imagery behind frosted paper wherever it meets copy - Draw journey-lines from real element geometry; anchor to asset alpha - Give every cutout a story job; let every motif recur - Hand-scatter the board; keep an open corridor for the leading line - Body >=17px, micro >=13px, high contrast, titles padded above - One primary button per view; buttons never wrap ### Dont - No borders, especially grey; no decorative sidelines - No emoji on buttons; no symbol glyphs in copy - No pastel washes, no decorative gradients, no muddy colour - No shrunken cutouts — recur with lines and dots instead - No flyer without its line; no line that doesn't connect real points - No straight rows where a pinned wall should be - No serifs; no Inter/Roboto/Poppins-class generics - No bounce/elastic easing; nothing hidden without JS ## Layout ### Summary Corkboard scatter over a strict responsive skeleton. ### Principles - Content caps at 1280 and centres on wide screens; only heroes and seam-bridging cutouts bleed - Board: absolute 2D scatter >=1200px (curator's arrangement is the default; visitor drags persist), compact overlapping cascade below - Stats/features/steps/pricing all stagger — rotation +-1.5-3.5deg, offset 6-38px; pricing pins the middle plan proud - Sections pad clamp(44px,5.5vw,76px); note grids gutter 22px; zero horizontal overflow 390-2560 (overflow-x clip at the root) - Cutouts may bridge section seams deliberately — fully visible, never accidentally clipped ## Guidance ### Summary Use Chiclet when information should feel arranged by hand — idea boards, planning tools, directories, briefs, dashboards. ### Notes - Ship the live Style panel on embodiments and dashboards, not marketing landings (a landing commits to Y2K Aqua) - The palette engine derives AA shades, washes and pins from raw primaries — feed it hexes only - The three.js confetti field and Lenis smooth scroll are progressive enhancements with static fallbacks - Interactive props stay honest: bulb lights when reached, balloon leaves as its section does, notes drag and remember ## Imagery Direction ### Pairs With mixed-media-pop ### Summary Paper-collage cutouts placed directly on the page — cut construction paper, translucent cellophane and polyethylene film, glossy tape, crinkled foil, sticker dots, torn edges — in the live palette, background-removed, one soft drop-shadow, no boxes or frames. Objects carry the page's story (rocket to star, plane to flag, bulb as the idea, clouds as the sky) and tuck behind the frosted notes wherever they meet copy.
---
version: "alpha"
name: "Chiclet"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
bg: "#F4F7FB"
surface: "#FFFFFF"
surface_solid: "#FFFFFF"
text: "#151719"
muted: "#697180"
accent: "#35E0C4"
accent_2: "#B7FF3B"
on_accent: "#141414"
success: "#1F8F4E"
warning: "#C77B0E"
error: "#C94B4B"
info: "#1D7B6C"
accent_3: "#FF5FB4"
accent_shade: "#1D7B6C"
accent_2_shade: "#52731B"
accent_3_shade: "#B2427E"
typography:
headline-lg:
fontFamily: "Unbounded"
fontSize: "2.075rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Unbounded"
fontSize: "1.66rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "Manrope"
fontSize: "17px"
fontWeight: 400
lineHeight: 1.5
letterSpacing: "-0.02em"
label-md:
fontFamily: "Sometype Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
none: "0px"
md: "16px"
lg: "24px"
full: "9999px"
note_exception: "5px"
spacing:
base: "22px"
components:
color-reference-bg:
backgroundColor: "{colors.bg}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-surface_solid:
backgroundColor: "{colors.surface_solid}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-accent_2:
backgroundColor: "{colors.accent_2}"
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}"
color-reference-accent_3:
backgroundColor: "{colors.accent_3}"
color-reference-accent_shade:
backgroundColor: "{colors.accent_shade}"
color-reference-accent_2_shade:
backgroundColor: "{colors.accent_2_shade}"
color-reference-accent_3_shade:
backgroundColor: "{colors.accent_3_shade}"
button-primary:
backgroundColor: "{colors.accent}"
textColor: "#000000"
typography: "{typography.label-md}"
rounded: "{rounded.md}"
padding: "{spacing.base}"
card-surface:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
padding: "{spacing.base}"
input-default:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
height: "44px"
---
# Chiclet
## Overview
Chiclet builds pages the way you'd cover a bright corkboard under an open sky: matte-translucent sticky-notes scattered by hand, paper-collage cutouts telling a launch story, and dashed journey-lines connecting the pieces. Everything is arranged, never gridded; alive, never busy; playful, never kitsch.
## 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 | `#F4F7FB` |
| surface | `#FFFFFF` |
| surface_solid | `#FFFFFF` |
| text | `#151719` |
| muted | `#697180` |
| accent | `#35E0C4` |
| accent_2 | `#B7FF3B` |
| on_accent | `#141414` |
| success | `#1F8F4E` |
| warning | `#C77B0E` |
| error | `#C94B4B` |
| info | `#1D7B6C` |
| accent_3 | `#FF5FB4` |
| accent_shade | `#1D7B6C` |
| accent_2_shade | `#52731B` |
| accent_3_shade | `#B2427E` |
## Typography
- **Headline-Lg**: Unbounded, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Unbounded, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: Manrope, 17px, weight 400, line-height 1.5.
- **Label-Md**: Sometype Mono, 0.75rem, weight 600, line-height 1.
## Layout
### Spacing Tokens
- **Base**: `22px`
### Summary
Corkboard scatter over a strict responsive skeleton.
### Principles
- Content caps at 1280 and centres on wide screens; only heroes and seam-bridging cutouts bleed
- Board: absolute 2D scatter >=1200px (curator's arrangement is the default; visitor drags persist), compact overlapping cascade below
- Stats/features/steps/pricing all stagger — rotation +-1.5-3.5deg, offset 6-38px; pricing pins the middle plan proud
- Sections pad clamp(44px,5.5vw,76px); note grids gutter 22px; zero horizontal overflow 390-2560 (overflow-x clip at the root)
- Cutouts may bridge section seams deliberately — fully visible, never accidentally clipped
## Elevation & Depth
### Shadows
- **Sm**: 0 2px 6px rgba(24,30,46,.05)
- **Md**: 0 6px 20px rgba(24,30,46,.08),0 2px 6px rgba(24,30,46,.05)
- **Lg**: 0 16px 40px rgba(24,30,46,.16),0 4px 10px rgba(24,30,46,.06)
## Shapes
### Rounded
- **None**: `0px`
- **Md**: `16px`
- **Lg**: `24px`
- **Full**: `9999px`
- **Note Exception**: `5px`
### Surfaces
- **Treatment**: matte-translucent pinned notes (rgba(255,255,255,.58) + accent wash over backdrop-blur(6px)); overlapping washes blend; imagery tucks behind the frost
- **Card Style**: borderless note with gloss pin, folded corner, 5px sticky-note radius; taped variant swaps the pin for translucent tape
- **Bg Pattern**: cool near-white ground with a barely-there dotted corkboard grid (radial-gradient dots, 26px)
### Borders
- **Default Width**: 0
- **Accent Width**: 0
- **Style**: none
- **Character**: no borders ever — hierarchy from space, tint and one soft shadow
## Components
### Do
- Let overlapping notes blend — the material is the language
- Tuck imagery behind frosted paper wherever it meets copy
- Draw journey-lines from real element geometry; anchor to asset alpha
- Give every cutout a story job; let every motif recur
- Hand-scatter the board; keep an open corridor for the leading line
- Body >=17px, micro >=13px, high contrast, titles padded above
- One primary button per view; buttons never wrap
### Dont
- No borders, especially grey; no decorative sidelines
- No emoji on buttons; no symbol glyphs in copy
- No pastel washes, no decorative gradients, no muddy colour
- No shrunken cutouts — recur with lines and dots instead
- No flyer without its line; no line that doesn't connect real points
- No straight rows where a pinned wall should be
- No serifs; no Inter/Roboto/Poppins-class generics
- No bounce/elastic easing; nothing hidden without JS
## 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-019f2b45-34c5-7c81-871a-526574dd70e8/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.
### Summary
Use Chiclet when information should feel arranged by hand — idea boards, planning tools, directories, briefs, dashboards.
### Notes
- Ship the live Style panel on embodiments and dashboards, not marketing landings (a landing commits to Y2K Aqua)
- The palette engine derives AA shades, washes and pins from raw primaries — feed it hexes only
- The three.js confetti field and Lenis smooth scroll are progressive enhancements with static fallbacks
- Interactive props stay honest: bulb lights when reached, balloon leaves as its section does, notes drag and remember
## Imagery Direction
### Pairs With
mixed-media-pop
### Summary
Paper-collage cutouts placed directly on the page — cut construction paper, translucent cellophane and polyethylene film, glossy tape, crinkled foil, sticker dots, torn edges — in the live palette, background-removed, one soft drop-shadow, no boxes or frames. Objects carry the page's story (rocket to star, plane to flag, bulb as the idea, clouds as the sky) and tuck behind the frosted notes wherever they meet copy.
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "chiclet",
"type": "registry:theme",
"title": "Chiclet shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F4F7FB",
"foreground": "#151719",
"card": "#FFFFFF",
"card-foreground": "#151719",
"popover": "#FFFFFF",
"popover-foreground": "#151719",
"primary": "#151719",
"primary-foreground": "#ffffff",
"secondary": "#f4f4f5",
"secondary-foreground": "#111111",
"muted": "#697180",
"muted-foreground": "#151719",
"accent": "#35E0C4",
"accent-foreground": "#111111",
"destructive": "#C94B4B",
"border": "rgba(24,30,46,0.10)",
"input": "rgba(24,30,46,0.10)",
"ring": "#35E0C4",
"chart-1": "#151719",
"chart-2": "#f4f4f5",
"chart-3": "#35E0C4",
"chart-4": "#1F8F4E",
"chart-5": "#C77B0E",
"sidebar": "#FFFFFF",
"sidebar-foreground": "#151719",
"sidebar-primary": "#151719",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#1D7B6C",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "rgba(24,30,46,0.10)",
"sidebar-ring": "#35E0C4",
"radius": "16px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#151719",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#35E0C4",
"accent-foreground": "#111111",
"destructive": "#C94B4B",
"border": "#303642",
"input": "#303642",
"ring": "#35E0C4",
"chart-1": "#151719",
"chart-2": "#f4f4f5",
"chart-3": "#35E0C4",
"chart-4": "#1F8F4E",
"chart-5": "#C77B0E",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#151719",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#35E0C4",
"sidebar-accent-foreground": "#111111",
"sidebar-border": "#303642",
"sidebar-ring": "#35E0C4",
"radius": "16px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019f2b45-34c5-7c81-871a-526574dd70e8",
"slug": "chiclet",
"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_2_shade",
"accent_3",
"accent_3_shade",
"accent_shade",
"accent_soft",
"bg",
"border",
"error",
"info",
"muted",
"on_accent",
"success",
"surface",
"surface_solid",
"text",
"warning"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"heading_transform",
"heading_weight",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
],
"radii": [
"full",
"lg",
"md",
"none",
"note_exception"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"motion": [
"duration",
"easing",
"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 claude-opus-4-8 / claude-fable-5 · images by grok-imagine-image (quality)
Keep Chicletand 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: #F4F7FB;
--foreground: #151719;
--card: #FFFFFF;
--card-foreground: #151719;
--popover: #FFFFFF;
--popover-foreground: #151719;
--primary: #151719;
--primary-foreground: #ffffff;
--secondary: #f4f4f5;
--secondary-foreground: #111111;
--muted: #697180;
--muted-foreground: #151719;
--accent: #35E0C4;
--accent-foreground: #111111;
--destructive: #C94B4B;
--border: rgba(24,30,46,0.10);
--input: rgba(24,30,46,0.10);
--ring: #35E0C4;
--chart-1: #151719;
--chart-2: #f4f4f5;
--chart-3: #35E0C4;
--chart-4: #1F8F4E;
--chart-5: #C77B0E;
--sidebar: #FFFFFF;
--sidebar-foreground: #151719;
--sidebar-primary: #151719;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #1D7B6C;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: rgba(24,30,46,0.10);
--sidebar-ring: #35E0C4;
--radius: 16px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #151719;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #35E0C4;
--accent-foreground: #111111;
--destructive: #C94B4B;
--border: #303642;
--input: #303642;
--ring: #35E0C4;
--chart-1: #151719;
--chart-2: #f4f4f5;
--chart-3: #35E0C4;
--chart-4: #1F8F4E;
--chart-5: #C77B0E;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #151719;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #35E0C4;
--sidebar-accent-foreground: #111111;
--sidebar-border: #303642;
--sidebar-ring: #35E0C4;
--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 ChicletShadcnKit() {
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">Chiclet</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": "chiclet",
"type": "registry:theme",
"author": "katagami-agent",
"title": "Chiclet",
"description": "A bright corkboard under an open sky: matte-translucent sticky-note surfaces over a cool near-white dotted ground, gloss pins and folded corners, three Y2K accents (aqua, lime, pink) used like highlighters, dashed journey-lines, no borders anywhere. Fills and soft shadows carry all hierarchy.",
"cssVars": {
"theme": {
"radius": "1rem"
},
"light": {
"background": "210 47% 97%",
"foreground": "210 8% 9%",
"card": "0 0% 100%",
"card-foreground": "210 8% 9%",
"popover": "0 0% 100%",
"popover-foreground": "210 8% 9%",
"primary": "169 71% 54%",
"primary-foreground": "0 0% 8%",
"secondary": "80 100% 62%",
"secondary-foreground": "81 62% 28%",
"muted": "210 47% 94%",
"muted-foreground": "217 10% 46%",
"accent": "329 100% 69%",
"accent-foreground": "330 46% 48%",
"destructive": "0 51% 54%",
"destructive-foreground": "0 0% 100%",
"border": "222 31% 14% / 0.10",
"input": "210 47% 94%",
"ring": "169 63% 30%",
"radius": "1rem"
}
},
"visualProfile": "corkboard-sky-collage",
"notes": "Notes use a 5px sticky-note radius (deliberate exception); pills/buttons full-round; containers 16-24px. No visible borders: use fills, matte accent tints (color-mix accent 20% over white) and one soft shadow. Primary button = solid aqua with near-black ink; links use a marker-sweep underline, never text-decoration."
}---
format: component-recipes-v1
language: Chiclet
slug: chiclet
author: katagami-agent
visualProfile: corkboard-sky-collage
---
# Chiclet — shadcn/ui Components
Author: `katagami-agent`
Chiclet makes every shadcn primitive read as matte-translucent paper pinned to a
bright corkboard. The rules are physical: **fill, not border** (a surface is a
frosted white sheet — `rgba(255,255,255,.58)` over `backdrop-blur(6px)` — washed
with a low-alpha accent tint, never an outline), **one soft shadow**
(`0 6px 20px rgba(24,30,46,.08)` at rest, deeper on lift), and a **5px
sticky-note corner** on note-like cards (deliberate exception; everything else
uses 16 / 24 / 9999).
## ShadSync visual profile
- **family:** paper-collage
- **material:** matte-translucent frosted paper over a cool near-white dotted corkboard (`#F4F7FB`)
- **contour:** soft 5px sticky-note corners on cards; 16–24px on chrome; full-round pills
- **border:** none — hierarchy comes from fills, matte accent tints and one soft shadow
- **underlay:** yes (frosted washes let the board read through; overlaps blend)
- **grain:** no (clean matte, never noisy)
- **stickerBadges:** yes (matte accent-tint pills with AA-shade ink)
- **motion:** gentle settle, `cubic-bezier(.2,.85,.25,1)`, no bounce
- **density:** generous
- **accents:** `#35E0C4` aqua (primary) · `#B7FF3B` lime (links) · `#FF5FB4` pink (tags) — AA shades `#1D7B6C` / `#52731B` / `#B2427E`
- **type:** Unbounded 600 `-0.02em` display · Manrope 17px+ body · Sometype Mono UPPERCASE 13px micro
## Signature component recipes
- **Button** — full-round pill, mono uppercase 13px w700, `padding:14px 22px`, no border. Primary: solid aqua, near-black ink, lifts `-2px` on hover; active presses back (`scale .985`). Ghost: pure-white pill. Destructive: `#C94B4B` fill, white ink. Label never wraps.
- **Card** — the pinned note: frosted accent wash, 5px radius, gloss-pin dot top-centre (radial highlight at 38% 32%), folded bottom-right corner, one soft shadow; tilt siblings ±1.5–3° on walls; the taped variant swaps the pin for a translucent tape strip.
- **Badge / Tag** — `color-mix(in srgb, accent 20%, white)` fill with the accent's AA shade as ink, full-round, mono 13px. Never grey, dark, or muddy.
- **Input / Textarea** — ground-tinted fill (`#EAEFF6`), radius 16, no border; focus = 2px inset ring in the accent shade.
- **Select** — input material, native arrow hidden, a 2-stroke drawn SVG chevron; never a browser default.
- **Checkbox / Radio / Switch** — borderless fills: off = ground tint; on = solid aqua with near-black glyph; the switch thumb is a gloss pin.
- **Tabs** — white chip row (full-round, soft shadow); active chip inks solid near-black with white text; never an underline bar.
- **Table** — rows ≥14.5px, zebra via 3% ink tint, mono uppercase muted headers, no cell borders; row hover lifts.
- **Dialog / Sheet** — pure-white, radius 24, deep soft shadow, backdrop `rgba(24,30,46,.28)`; titles padded above, never flush.
- **Tooltip** — ink-solid pill: near-black, white text, full-round, mono micro.
- **Progress / Slider** — ground track, aqua fill, gloss-pin thumb.
- **Toast / Alert** — a pinned note sliding in: severity wash (success `#1F8F4E` / warning `#C77B0E` / error `#C94B4B` tint), gloss pin, 5px radius.
## Preview shots
Three renderable product scenes ship in `preview-shots.json`
(`katagami:shadcn-preview-shots/renderable-v1`, all 16 primitives covered):
1. **Review queue** — zebra table + chip tabs + accent-tint status badges + one solid-aqua primary.
2. **Pin composer** — borderless dialog, ground-tinted fields, gloss-pin switch, single primary.
3. **Team wall** — tilted note cards (one taped), pin-thumb slider, avatar tooltips, space-only separation.
## 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";
export function PinnedNote() {
return (
<Card className="relative max-w-sm -rotate-1 rounded-[5px] border-0 bg-white/60 shadow-[0_6px_20px_rgba(24,30,46,.08)] backdrop-blur-md">
{/* gloss pin */}
<span className="absolute -top-2 left-1/2 h-3.5 w-3.5 -translate-x-1/2 rounded-full bg-[radial-gradient(circle_at_38%_32%,#a4f1e4,#35E0C4_55%,#26a18d)] shadow" />
<CardHeader className="pt-6">
<CardTitle className="font-semibold tracking-[-0.02em]">Q3 launch spark</CardTitle>
</CardHeader>
<CardContent className="space-y-3 text-[17px] leading-relaxed">
Pin the teardown thread and the pricing doc — all in one place before Thursday.
<div className="flex gap-1.5">
<Badge className="rounded-full border-0 bg-[#D7F9F1] font-mono text-[13px] uppercase text-[#1D7B6C]">launch</Badge>
<Badge className="rounded-full border-0 bg-[#FFDFEF] font-mono text-[13px] uppercase text-[#B2427E]">links</Badge>
</div>
</CardContent>
</Card>
);
}
```
Theme variables come from the finalizer-owned registry theme (`export.json`,
`registry-theme-v1`); these recipes and the preview shots are the agent-authored
half of the kit.
{
"artifact": "katagami:shadcn-preview-shots",
"version": "preview-shots-v1",
"schema": "katagami:shadcn-preview-shots/renderable-v1",
"renderable": true,
"author": "katagami-agent",
"generatedBy": "katagami-agent",
"requiresVisualProfile": true,
"language": {
"id": "en-019f2b45-34c5-7c81-871a-526574dd70e8",
"name": "Chiclet",
"slug": "chiclet"
},
"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": [
"Fill, not border: surfaces are frosted white washes tinted by one accent \u2014 never an outline",
"One soft shadow keyed to the radius; 5px sticky-note corner on notes (deliberate exception), 16/24/9999 everywhere else",
"Three Y2K accents used like highlighters (aqua primary, lime links, pink tags), each paired with its AA text shade",
"Gloss pins and translucent tape are the fasteners; mono uppercase 13px micro labels; button text never wraps",
"Motion: settle-in via cubic-bezier(.2,.85,.25,1); the finished page is the no-JS default"
],
"visualProfile": {
"family": "paper-collage",
"material": "matte-translucent frosted paper over a cool near-white dotted corkboard",
"contour": "soft 5px sticky-note corners on cards; 16\u201324px on chrome; full-round pills",
"border": "none \u2014 hierarchy from fills, tints and one soft shadow",
"underlay": true,
"grain": false,
"stickerBadges": true,
"motion": "gentle settle, no bounce",
"density": "generous",
"accents": [
"#35E0C4",
"#B7FF3B",
"#FF5FB4"
]
},
"tokens": {
"background": "#F4F7FB",
"card": "#FFFFFF",
"popover": "#FFFFFF",
"foreground": "#151719",
"primary": "#35E0C4",
"primaryForeground": "#141414",
"secondary": "#E6FBF6",
"secondaryForeground": "#1D7B6C",
"muted": "#EAEFF6",
"mutedForeground": "#697180",
"accent": "#FFE0F0",
"accentForeground": "#B2427E",
"destructive": "#C94B4B",
"destructiveForeground": "#FFFFFF",
"success": "#1F8F4E",
"warning": "#C77B0E",
"border": "rgba(24,30,46,0.10)",
"input": "#EAEFF6",
"ring": "#1D7B6C",
"radius": "16px",
"fontDisplay": "Unbounded, sans-serif",
"fontSans": "Manrope, sans-serif",
"fontMono": "Sometype Mono, monospace"
},
"shots": [
{
"id": "review-queue",
"title": "Curation board \u2014 review queue",
"viewport": "1280x800",
"primitives": [
"table",
"tabs",
"badge",
"button",
"dropdown-menu"
],
"composition": "A full-width review table under a chip-tab filter row; one primary action top-right; a row menu open.",
"mustShow": [
"zebra 3% ink rows with no cell borders",
"chip tabs with the active chip inked solid",
"status badges in three accent tints",
"one solid-aqua primary pill"
],
"avoid": [
"cell borders",
"grey badges",
"underline tab indicators"
],
"scene": {
"eyebrow": "CURATION",
"headline": "Review queue",
"description": "Submissions from the last week, pinned in the order they arrived.",
"primaryAction": "Approve selected",
"secondaryAction": "Open board",
"statuses": [
"under review",
"approved",
"sent back"
],
"rows": [
{
"label": "Tidepool \u2014 refreshed landing",
"value": "submitted 2h ago",
"status": "under review"
},
{
"label": "Grape Soda \u2014 palette update",
"value": "submitted yesterday",
"status": "approved"
},
{
"label": "Marquee \u2014 new embodiment",
"value": "submitted 3d ago",
"status": "sent back"
},
{
"label": "Halation \u2014 dashboard pass",
"value": "submitted 4d ago",
"status": "under review"
}
]
}
},
{
"id": "pin-composer",
"title": "Pin composer",
"viewport": "900x720",
"primitives": [
"dialog",
"input",
"select",
"textarea",
"switch",
"checkbox",
"button"
],
"composition": "A dialog over the frosted board: stacked form fields, a notify switch, tag checkboxes, one primary submit.",
"mustShow": [
"radius-24 borderless dialog",
"ground-tinted inputs with accent focus ring",
"gloss-pin switch thumb",
"title padded above"
],
"avoid": [
"input borders",
"browser default selects",
"two competing primary buttons"
],
"scene": {
"eyebrow": "NEW PIN",
"headline": "Pin something to the wall",
"description": "Drop a link, a note or a file \u2014 it lands where your cursor is.",
"primaryAction": "Pin it",
"secondaryAction": "Save as draft",
"fields": [
{
"label": "Title",
"value": "Pick up matte paper stock",
"type": "input"
},
{
"label": "Lane",
"value": "Materials",
"type": "select"
},
{
"label": "Note",
"value": "The 120gsm felt-press sheets \u2014 the frosted ones.",
"type": "textarea"
},
{
"label": "Notify the room",
"value": "on",
"type": "switch"
}
]
}
},
{
"id": "team-wall",
"title": "Team wall \u2014 signals",
"viewport": "1280x820",
"primitives": [
"card",
"badge",
"tooltip",
"slider",
"separator",
"sheet"
],
"composition": "Three pinned note cards at hand tilts (one taped), a capacity slider, avatar tooltips, a lane sheet ajar.",
"mustShow": [
"frosted note washes that blend where cards overlap",
"gloss pins + one tape variant",
"slider thumb as a gloss pin",
"space as the only separator"
],
"avoid": [
"straight-row card grids",
"borders anywhere",
"shrunken decorative art"
],
"scene": {
"eyebrow": "THIS WEEK",
"headline": "The wall, at a glance",
"description": "What the team pinned, argued over and shipped.",
"stats": [
{
"label": "pins added",
"value": "128",
"tone": "accent"
},
{
"label": "lanes active",
"value": "14"
},
{
"label": "boards shared",
"value": "37",
"tone": "muted"
}
]
}
}
],
"componentRecipes": [
{
"primitive": "button",
"intent": "Full-round mono-uppercase pill; primary = solid aqua with near-black ink, lifts -2px on the deeper soft shadow; ghost = pure-white pill; destructive = #C94B4B fill; never a border, label never wraps."
},
{
"primitive": "card",
"intent": "A pinned note: frosted white wash (rgba(255,255,255,.58)) tinted by one accent at ~18%, 5px sticky-note radius, gloss-pin dot top-centre, folded bottom-right corner, one soft shadow; siblings tilt \u00b11.5\u20133\u00b0."
},
{
"primitive": "input",
"intent": "Ground-tinted fill (#EAEFF6), radius 16, no border; focus = 2px inset ring in the accent AA shade; placeholder in muted."
},
{
"primitive": "textarea",
"intent": "Same material as input, radius 16, generous padding; min-height 3 rows."
},
{
"primitive": "select",
"intent": "Input material with the native arrow hidden; a 2-stroke drawn SVG chevron right-aligned; options inherit body type."
},
{
"primitive": "dialog",
"intent": "Pure-white sheet, radius 24, deep soft shadow, no border; backdrop rgba(24,30,46,.28); title padded above, never flush to the top edge."
},
{
"primitive": "sheet",
"intent": "Side panel on the dialog material; enters with the house settle (translate + opacity, cubic-bezier(.2,.85,.25,1))."
},
{
"primitive": "tabs",
"intent": "White chip row \u2014 full-round chips with the soft shadow; the active chip inks solid near-black with white text; never an underline bar."
},
{
"primitive": "badge",
"intent": "Matte accent tint (color-mix accent 20% over white) with that accent's AA shade as ink; full-round; mono 13px; never grey."
},
{
"primitive": "separator",
"intent": "Space does the separating: a transparent gap \u226522px; when a visible cue is unavoidable, a 3% ink tint band, never a line."
},
{
"primitive": "checkbox",
"intent": "Borderless: off = ground fill; on = solid aqua with a near-black drawn check; radius 4 within the note geometry."
},
{
"primitive": "switch",
"intent": "Track = ground fill full-round; on = solid aqua; the thumb is a gloss pin (radial highlight at 38% 32%)."
},
{
"primitive": "slider",
"intent": "Track = ground fill; filled range = aqua; thumb = gloss pin; value label in mono 13px."
},
{
"primitive": "tooltip",
"intent": "Ink-solid pill: near-black fill, white text, full-round, mono micro type; one soft shadow, no arrow."
},
{
"primitive": "dropdown-menu",
"intent": "Pure-white sheet radius 16, soft shadow; items hover to the a1 wash; destructive item inks #C94B4B."
},
{
"primitive": "table",
"intent": "Rows \u226514.5px, no cell borders; zebra via 3% ink tint; headers mono uppercase 13px muted; row hover lifts with the soft shadow."
}
],
"qualityRules": {
"do": [
"tint every surface with exactly one accent wash",
"pair every accent background with its AA shade ink",
"tilt sibling cards slightly; let overlaps blend",
"keep one primary button per view"
],
"dont": [
"no borders or divider lines",
"no grey or dark badges",
"no emoji on buttons",
"no text over busy artwork"
]
}
}