Visual kits for agents that need to design well
Pick what you're building, preview every kit on that surface, and hand your agent a complete visual system — fonts, colors, tokens, and component rules.
Pick what you're building, preview every kit on that surface, and hand your agent a complete visual system — fonts, colors, tokens, and component rules.
A photography-first system grounded in full-bleed misty nature imagery. Dark forest-green condensed grotesque headlines dominate at poster scale, placed directly on sage-and-moss photographs rather than inside panels. The palette is drawn entirely from nature: deep forest ink, vivid moss, and pale atmospheric sage. CTAs are hairline outline pills, and a thin circle overlay anchors the hero composition. The mood is hushed precision: lush imagery, maximal type, minimal chrome.
atmosphericbotanical.com
Atmospheric Botanical
Supporting copy goes here.
atmosphericbotanical.com
Atmospheric Botanical
Every kit is judged per use case against concrete criteria — chart-series distinctness, text contrast, information density — not keyword matching.
---
# Machine-readable tokens (the WHAT). The prose body gives the WHY + the rules.
# contract is THIS DOCUMENT'S shape and has nothing to do with the kit's
# revision below. It moves when a section is added, renamed or removed; a kit
# that never changed can arrive under a new one, and a kit that changed every
# token arrives under the same one. Read them independently.
#
# FIRST key on purpose. `name` is caller-supplied and yamlQuote escapes only the
# double quote, so a crafted kit name can inject lines into this block — every
# reader of this front matter honours the FIRST occurrence of a key, which puts
# an injected duplicate too late to matter.
contract: "1.0"
kit:
# The id is the durable handle; name and slug are both mutable.
# version is this record's monotonic revision: 0 = never versioned,
# null = the server did not report one. Diff against it; don't hash the file.
id: "d82d299d-ab72-4601-8ccc-1e03a6748b8b"
version: 0
slug: "atmospheric-botanical"
name: "Atmospheric Botanical"
colors:
roles_light:
background: "#EEF3F1"
foreground: "#0F2018"
card: "#F7FAF8"
card-foreground: "#0F2018"
popover: "#F7FAF8"
popover-foreground: "#0F2018"
primary: "#1A3D27"
primary-foreground: "#F0F8F4"
secondary: "#C8DDD8"
secondary-foreground: "#1A3D27"
muted: "#DCE8E4"
muted-foreground: "#3E5A4F"
accent: "#50BB43"
accent-foreground: "#0C1C0A"
destructive: "#C53030"
destructive-foreground: "#FFFFFF"
border: "#B8CCC8"
input: "#B8CCC8"
ring: "#1A3D27"
success: "#2A6B3E"
success-foreground: "#F0F8F2"
warning: "#8B6914"
warning-foreground: "#FFFFFF"
chart-1: "#50BB43"
chart-2: "#1A3D27"
chart-3: "#76A62D"
chart-4: "#6D8D7B"
chart-5: "#A7C3BD"
roles_dark:
background: "#0C1C0E"Three ways from the same kit: run "npx identityforge@latest apply atmospheric-botanical" with the CLI to write the tokens and DESIGN.md into your project, fetch it through the Identity Forge MCP server inside Claude Code, Cursor, or OpenCode, or install from the shadcn registry at /r/atmospheric-botanical.json with "npx shadcn add".
A complete brand system: a font pairing, 28 semantic color tokens in light and dark, a typography scale, spacing and elevation, per-element treatments, distinctive motifs, do's and don'ts, and a DESIGN.md a coding agent builds from. Exports cover shadcn registry items, Tailwind v3 and v4 themes, DTCG tokens JSON, and plain CSS variables.
Atmospheric Botanical is free: its full color tokens, fonts, DESIGN.md, and every export are available at no cost.
Supporting copy goes here.
/*
* Atmospheric Botanical — Identity Forge design kit.
* Kit id: d82d299d-ab72-4601-8ccc-1e03a6748b8b
* Kit slug: atmospheric-botanical (a mutable alias; the id is the durable handle)
* Kit version: 0 (no version minted yet)
*/
@import url("https://fonts.googleapis.com/css2?family=Barlow%20Condensed:wght@400;500;600;700&family=DM%20Sans:wght@400;500;700&family=JetBrains%20Mono:wght@400;500;700&display=swap");
:root {
--radius: 0.625rem;
--font-heading: 'Barlow Condensed', sans-serif;
--font-sans: 'DM Sans', sans-serif;
--font-mono: 'JetBrains Mono', monospace;
--background: 156 17% 94%;
--foreground: 152 36% 9%;
--card: 140 23% 97%;
--card-foreground: 152 36% 9%;
--popover: 140 23% 97%;
--popover-foreground: 152 36% 9%;
--primary: 142 40% 17%;
--primary-foreground: 150 36% 96%;
--secondary: 166 24% 83%;
--secondary-foreground: 142 40% 17%;
--muted: 160 21% 89%;
--muted-foreground: 156 18% 30%;
--accent: 114 47% 50%;
--accent-foreground: 113 47% 7%;
--destructive: 0 61% 48%;
--destructive-foreground: 0 0% 100%;
--border: 168 16% 76%;
--input: 168 16% 76%;
--ring: 142 40% 17%;
--success: 138 44% 29%;
--success-foreground: 135 36% 96%;
--warning: 43 75% 31%;
--warning-foreground: 0 0% 100%;
--chart-1: 114 47% 50%;
--chart-2: 142 40% 17%;
--chart-3: 84 57% 41%;
--chart-4: 146 13% 49%;
--chart-5: 167 19% 71%;
--shadow-sm: 0 1px 2px rgba(15,32,24,0.06);
--shadow-md: 0 2px 8px rgba(15,32,24,0.10);
--shadow-lg: 0 4px 16px rgba(15,32,24,0.14);
--shadow-xl: 0 8px 32px rgba(15,32,24,0.18);
--gradient-hero: linear-gradient(to bottom, rgba(12,28,14,0.0) 0%, rgba(12,28,14,0.45) 100%);
--gradient-brand: linear-gradient(135deg, #1a3d27 0%, #31573d 60%, #50bb43 100%);
--gradient-subtle: linear-gradient(180deg, #eef3f1 0%, #dce8e4 100%);
--duration: 220ms;
--duration-slow: 480ms;
--ease: cubic-bezier(0.25, 0.1, 0.25, 1);
--tracking-tight: -0.02em;
--tracking-normal: 0em;
--font-weight-heading: 800;
--font-weight-body: 400;
--button-radius: 9999px;
--card-radius: 0.375rem;
--input-radius: 0.375rem;
--badge-radius: 9999px;
--border-width: 1px;Registry
/r/atmospheric-botanical.jsonTailwind v4
/*
* Atmospheric Botanical — Identity Forge design kit.
* Kit id: d82d299d-ab72-4601-8ccc-1e03a6748b8b
* Kit slug: atmospheric-botanical (a mutable alias; the id is the durable handle)
* Kit version: 0 (no version minted yet)
*
* Drop-in Tailwind v4 theme: font import, the custom properties the theme
* aliases, and the @theme block. Expects `@import "tailwindcss";` above it,
* and the @import lines must stay at the top of the stylesheet.
*/
@import url("https://fonts.googleapis.com/css2?family=Barlow%20Condensed:wght@400;500;600;700&family=DM%20Sans:wght@400;500;700&family=JetBrains%20Mono:wght@400;500;700&display=swap");
:root {
--radius: 0.625rem;
--font-heading: 'Barlow Condensed', sans-serif;
--font-sans: 'DM Sans', sans-serif;
--font-mono: 'JetBrains Mono', monospace;
--background: 156 17% 94%;
--foreground: 152 36% 9%;
--card: 140 23% 97%;
--card-foreground: 152 36% 9%;
--popover: 140 23% 97%;
--popover-foreground: 152 36% 9%;
--primary: 142 40% 17%;
--primary-foreground: 150 36% 96%;
--secondary: 166 24% 83%;
--secondary-foreground: 142 40% 17%;
--muted: 160 21% 89%;
--muted-foreground: 156 18% 30%;
--accent: 114 47% 50%;
--accent-foreground: 113 47% 7%;
--destructive: 0 61% 48%;
--destructive-foreground: 0 0% 100%;
--border: 168 16% 76%;
--input: 168 16% 76%;
--ring: 142 40% 17%;
--success: 138 44% 29%;
--success-foreground: 135 36% 96%;
--warning: 43 75% 31%;
--warning-foreground: 0 0% 100%;
--chart-1: 114 47% 50%;
--chart-2: 142 40% 17%;
--chart-3: 84 57% 41%;
--chart-4: 146 13% 49%;
--chart-5: 167 19% 71%;
--shadow-sm: 0 1px 2px rgba(15,32,24,0.06);
--shadow-md: 0 2px 8px rgba(15,32,24,0.10);
--shadow-lg: 0 4px 16px rgba(15,32,24,0.14);
--shadow-xl: 0 8px 32px rgba(15,32,24,0.18);
--gradient-hero: linear-gradient(to bottom, rgba(12,28,14,0.0) 0%, rgba(12,28,14,0.45) 100%);
--gradient-brand: linear-gradient(135deg, #1a3d27 0%, #31573d 60%, #50bb43 100%);
--gradient-subtle: linear-gradient(180deg, #eef3f1 0%, #dce8e4 100%);
--duration: 220ms;
--duration-slow: 480ms;
--ease: cubic-bezier(0.25, 0.1, 0.25, 1);
--tracking-tight: -0.02em;
--tracking-normal: 0em;
--font-weight-heading: 800;
--font-weight-body: 400;
--button-radius: 9999px;
--card-radius: 0.375rem;
--input-radius: 0.375rem;
--badge-radius: 9999px;
--border-width: 1px;
--card-border-width: 1px;
--input-border-width: 1px;
--button-border-width: 1px;
--badge-border-width: 1px;
--heading-transform: uppercase;
--label-transform: uppercase;
--kit-id: "d82d299d-ab72-4601-8ccc-1e03a6748b8b";
--kit-version: 0;
}
.dark {
--radius: 0.625rem;
--font-heading: 'Barlow Condensed', sans-serif;
--font-sans: 'DM Sans', sans-serif;
--font-mono: 'JetBrains Mono', monospace;
--background: 128 40% 8%;
--foreground: 77 45% 84%;
--card: 137 26% 11%;
--card-foreground: 77 45% 84%;
--popover: 137 26% 11%;
--popover-foreground: 77 45% 84%;
--primary: 114 47% 50%;
--primary-foreground: 113 47% 7%;
--secondary: 139 28% 27%;
--secondary-foreground: 77 45% 84%;
--muted: 142 31% 16%;
--muted-foreground: 142 23% 57%;
--accent: 84 57% 41%;
--accent-foreground: 113 47% 7%;
--destructive: 0 70% 60%;
--destructive-foreground: 0 0% 0%;
--border: 138 25% 23%;
--input: 138 25% 23%;
--ring: 114 47% 50%;
--success: 122 39% 49%;
--success-foreground: 131 52% 8%;
--warning: 43 80% 46%;
--warning-foreground: 113 47% 7%;
--chart-1: 114 47% 50%;
--chart-2: 84 57% 41%;
--chart-3: 167 19% 71%;
--chart-4: 146 13% 49%;
--chart-5: 139 28% 27%;
}
@theme inline {
--font-heading: 'Barlow Condensed', sans-serif;
--font-sans: 'DM Sans', sans-serif;
--font-mono: 'JetBrains Mono', monospace;
--color-background: hsl(var(--background));
--color-foreground: hsl(var(--foreground));
--color-card: hsl(var(--card));
--color-card-foreground: hsl(var(--card-foreground));
--color-popover: hsl(var(--popover));
--color-popover-foreground: hsl(var(--popover-foreground));
--color-primary: hsl(var(--primary));
--color-primary-foreground: hsl(var(--primary-foreground));
--color-secondary: hsl(var(--secondary));
--color-secondary-foreground: hsl(var(--secondary-foreground));
--color-muted: hsl(var(--muted));
--color-muted-foreground: hsl(var(--muted-foreground));
--color-accent: hsl(var(--accent));
--color-accent-foreground: hsl(var(--accent-foreground));
--color-destructive: hsl(var(--destructive));
--color-destructive-foreground: hsl(var(--destructive-foreground));
--color-border: hsl(var(--border));
--color-input: hsl(var(--input));
--color-ring: hsl(var(--ring));
--color-success: hsl(var(--success));
--color-success-foreground: hsl(var(--success-foreground));
--color-warning: hsl(var(--warning));
--color-warning-foreground: hsl(var(--warning-foreground));
--color-chart-1: hsl(var(--chart-1));
--color-chart-2: hsl(var(--chart-2));
--color-chart-3: hsl(var(--chart-3));
--color-chart-4: hsl(var(--chart-4));
--color-chart-5: hsl(var(--chart-5));
--radius-sm: 0.125rem;
--radius-md: 0.375rem;
--radius-lg: 0.625rem;
--radius-xl: 1rem;
--radius-button: 9999px;
--radius-card: 0.375rem;
--radius-input: 0.375rem;
--radius-badge: 9999px;
--border-width: 1px;
--card-border-width: 1px;
--input-border-width: 1px;
--button-border-width: 1px;
--badge-border-width: 1px;
--shadow-sm: 0 1px 2px rgba(15,32,24,0.06);
--shadow-md: 0 2px 8px rgba(15,32,24,0.10);
--shadow-lg: 0 4px 16px rgba(15,32,24,0.14);
--shadow-xl: 0 8px 32px rgba(15,32,24,0.18);
--tracking-tight: -0.02em;
--tracking-normal: 0em;
--ease-kit: cubic-bezier(0.25, 0.1, 0.25, 1);
--duration-kit: 220ms;
--duration-kit-slow: 480ms;
--gradient-hero: linear-gradient(to bottom, rgba(12,28,14,0.0) 0%, rgba(12,28,14,0.45) 100%);
--gradient-brand: linear-gradient(135deg, #1a3d27 0%, #31573d 60%, #50bb43 100%);
--gradient-subtle: linear-gradient(180deg, #eef3f1 0%, #dce8e4 100%);
--font-weight-heading: 800;
--font-weight-body: 400;
}Registry payload
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "atmospheric-botanical",
"type": "registry:theme",
"title": "Atmospheric Botanical",
"description": "An editorial nature kit with oversized condensed all-caps headlines set directly on full-bleed atmospheric botanical photography in a forest-floor palette.",
"categories": [
"editorial",
"nature",
"botanical",
"condensed",
"atmospheric",
"poster",
"forest",
"minimal"
],© 2026 Identity Forge. All rights reserved.
Munich, Germany