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 high-contrast editorial poster kit where a vivid cobalt sky (#163a6c) is the permanent canvas and massive Anton headlines in vivid red (#e61d1d) claim full hierarchy. The look is flat and uncompromising with no gradients in the primary composition. Institutional-style label badges, hairline pill tags, and a bottom metadata band are the only chrome. Every surface is blue; the red is reserved strictly for what demands attention. Cards are sharp (0rem) while small badges use pill radius.
cobaltvermilionposter.com
Cobalt Poster
Supporting copy goes here.
cobaltvermilionposter.com
Cobalt Poster
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: "f9fceddc-9668-450d-bb21-d0434ef07a71"
version: 0
slug: "cobalt-vermilion-poster"
name: "Cobalt Vermilion Poster"
colors:
roles_light:
background: "#163A6C"
foreground: "#F0F2F5"
card: "#1A4278"
card-foreground: "#F0F2F5"
popover: "#1A4278"
popover-foreground: "#F0F2F5"
primary: "#E61D1D"
primary-foreground: "#FFFFFF"
secondary: "#236191"
secondary-foreground: "#F0F2F5"
muted: "#1E4880"
muted-foreground: "#B8D0E8"
accent: "#EF1E18"
accent-foreground: "#000000"
destructive: "#B01515"
destructive-foreground: "#FFFFFF"
border: "#2A5490"
input: "#1E4880"
ring: "#E61D1D"
success: "#1A7A3D"
success-foreground: "#FFFFFF"
warning: "#C97B0F"
warning-foreground: "#000000"
chart-1: "#E61D1D"
chart-2: "#4A9FD4"
chart-3: "#F5A623"
chart-4: "#8B2FC9"
chart-5: "#22C47E"
roles_dark:
background: "#080C12"Three ways from the same kit: run "npx identityforge@latest apply cobalt-vermilion-poster" 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/cobalt-vermilion-poster.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.
Cobalt Vermilion Poster is free: its full color tokens, fonts, DESIGN.md, and every export are available at no cost.
Supporting copy goes here.
/*
* Cobalt Vermilion Poster — Identity Forge design kit.
* Kit id: f9fceddc-9668-450d-bb21-d0434ef07a71
* Kit slug: cobalt-vermilion-poster (a mutable alias; the id is the durable handle)
* Kit version: 0 (no version minted yet)
*/
@import url("https://fonts.googleapis.com/css2?family=Anton:wght@400&family=Space%20Grotesk:wght@400;500;700&family=Space%20Mono:wght@400;700&display=swap");
:root {
--radius: 0.5rem;
--font-heading: 'Anton', sans-serif;
--font-sans: 'Space Grotesk', sans-serif;
--font-mono: 'Space Mono', monospace;
--background: 215 66% 25%;
--foreground: 216 20% 95%;
--card: 214 64% 29%;
--card-foreground: 216 20% 95%;
--popover: 214 64% 29%;
--popover-foreground: 216 20% 95%;
--primary: 0 80% 51%;
--primary-foreground: 0 0% 100%;
--secondary: 206 61% 35%;
--secondary-foreground: 216 20% 95%;
--muted: 214 62% 31%;
--muted-foreground: 210 51% 82%;
--accent: 2 87% 52%;
--accent-foreground: 0 0% 0%;
--destructive: 0 79% 39%;
--destructive-foreground: 0 0% 100%;
--border: 215 55% 36%;
--input: 214 62% 31%;
--ring: 0 80% 51%;
--success: 142 65% 29%;
--success-foreground: 0 0% 100%;
--warning: 35 86% 42%;
--warning-foreground: 0 0% 0%;
--chart-1: 0 80% 51%;
--chart-2: 203 62% 56%;
--chart-3: 37 91% 55%;
--chart-4: 276 62% 49%;
--chart-5: 154 70% 45%;
--shadow-sm: 0 1px 2px rgba(0,0,0,0.4);
--shadow-md: 0 2px 8px rgba(0,0,0,0.5);
--shadow-lg: 0 4px 16px rgba(0,0,0,0.6);
--shadow-xl: 0 8px 32px rgba(0,0,0,0.7);
--gradient-hero: linear-gradient(180deg, #236191 0%, #163a6c 60%, #0e2447 100%);
--gradient-brand: linear-gradient(135deg, #163a6c 0%, #e61d1d 100%);
--gradient-subtle: linear-gradient(180deg, #1a4278 0%, #163a6c 100%);
--duration: 150ms;
--duration-slow: 400ms;
--ease: cubic-bezier(0.4, 0, 0.2, 1);
--tracking-tight: -0.01em;
--tracking-normal: 0.01em;
--font-weight-heading: 900;
--font-weight-body: 400;
--button-radius: 9999px;
--card-radius: 0rem;
--input-radius: 0.25rem;
--badge-radius: 9999px;
--border-width: 1px;Registry
/r/cobalt-vermilion-poster.jsonTailwind v4
/*
* Cobalt Vermilion Poster — Identity Forge design kit.
* Kit id: f9fceddc-9668-450d-bb21-d0434ef07a71
* Kit slug: cobalt-vermilion-poster (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=Anton:wght@400&family=Space%20Grotesk:wght@400;500;700&family=Space%20Mono:wght@400;700&display=swap");
:root {
--radius: 0.5rem;
--font-heading: 'Anton', sans-serif;
--font-sans: 'Space Grotesk', sans-serif;
--font-mono: 'Space Mono', monospace;
--background: 215 66% 25%;
--foreground: 216 20% 95%;
--card: 214 64% 29%;
--card-foreground: 216 20% 95%;
--popover: 214 64% 29%;
--popover-foreground: 216 20% 95%;
--primary: 0 80% 51%;
--primary-foreground: 0 0% 100%;
--secondary: 206 61% 35%;
--secondary-foreground: 216 20% 95%;
--muted: 214 62% 31%;
--muted-foreground: 210 51% 82%;
--accent: 2 87% 52%;
--accent-foreground: 0 0% 0%;
--destructive: 0 79% 39%;
--destructive-foreground: 0 0% 100%;
--border: 215 55% 36%;
--input: 214 62% 31%;
--ring: 0 80% 51%;
--success: 142 65% 29%;
--success-foreground: 0 0% 100%;
--warning: 35 86% 42%;
--warning-foreground: 0 0% 0%;
--chart-1: 0 80% 51%;
--chart-2: 203 62% 56%;
--chart-3: 37 91% 55%;
--chart-4: 276 62% 49%;
--chart-5: 154 70% 45%;
--shadow-sm: 0 1px 2px rgba(0,0,0,0.4);
--shadow-md: 0 2px 8px rgba(0,0,0,0.5);
--shadow-lg: 0 4px 16px rgba(0,0,0,0.6);
--shadow-xl: 0 8px 32px rgba(0,0,0,0.7);
--gradient-hero: linear-gradient(180deg, #236191 0%, #163a6c 60%, #0e2447 100%);
--gradient-brand: linear-gradient(135deg, #163a6c 0%, #e61d1d 100%);
--gradient-subtle: linear-gradient(180deg, #1a4278 0%, #163a6c 100%);
--duration: 150ms;
--duration-slow: 400ms;
--ease: cubic-bezier(0.4, 0, 0.2, 1);
--tracking-tight: -0.01em;
--tracking-normal: 0.01em;
--font-weight-heading: 900;
--font-weight-body: 400;
--button-radius: 9999px;
--card-radius: 0rem;
--input-radius: 0.25rem;
--badge-radius: 9999px;
--border-width: 1px;
--card-border-width: 1px;
--input-border-width: 1px;
--button-border-width: 0;
--badge-border-width: 1px;
--heading-transform: uppercase;
--label-transform: uppercase;
--kit-id: "f9fceddc-9668-450d-bb21-d0434ef07a71";
--kit-version: 0;
}
.dark {
--radius: 0.5rem;
--font-heading: 'Anton', sans-serif;
--font-sans: 'Space Grotesk', sans-serif;
--font-mono: 'Space Mono', monospace;
--background: 216 38% 5%;
--foreground: 220 35% 93%;
--card: 219 36% 9%;
--card-foreground: 220 35% 93%;
--popover: 219 36% 9%;
--popover-foreground: 220 35% 93%;
--primary: 0 80% 51%;
--primary-foreground: 0 0% 100%;
--secondary: 221 41% 15%;
--secondary-foreground: 209 33% 70%;
--muted: 217 40% 11%;
--muted-foreground: 210 26% 54%;
--accent: 2 87% 52%;
--accent-foreground: 0 0% 0%;
--destructive: 0 79% 39%;
--destructive-foreground: 0 0% 100%;
--border: 212 43% 18%;
--input: 216 42% 9%;
--ring: 0 80% 51%;
--success: 142 65% 29%;
--success-foreground: 0 0% 100%;
--warning: 35 86% 42%;
--warning-foreground: 0 0% 0%;
--chart-1: 0 80% 51%;
--chart-2: 203 62% 56%;
--chart-3: 37 91% 55%;
--chart-4: 277 54% 55%;
--chart-5: 154 70% 45%;
}
@theme inline {
--font-heading: 'Anton', sans-serif;
--font-sans: 'Space Grotesk', sans-serif;
--font-mono: 'Space 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.25rem;
--radius-lg: 0.5rem;
--radius-xl: 0.75rem;
--radius-button: 9999px;
--radius-card: 0rem;
--radius-input: 0.25rem;
--radius-badge: 9999px;
--border-width: 1px;
--card-border-width: 1px;
--input-border-width: 1px;
--button-border-width: 0;
--badge-border-width: 1px;
--shadow-sm: 0 1px 2px rgba(0,0,0,0.4);
--shadow-md: 0 2px 8px rgba(0,0,0,0.5);
--shadow-lg: 0 4px 16px rgba(0,0,0,0.6);
--shadow-xl: 0 8px 32px rgba(0,0,0,0.7);
--tracking-tight: -0.01em;
--tracking-normal: 0.01em;
--ease-kit: cubic-bezier(0.4, 0, 0.2, 1);
--duration-kit: 150ms;
--duration-kit-slow: 400ms;
--gradient-hero: linear-gradient(180deg, #236191 0%, #163a6c 60%, #0e2447 100%);
--gradient-brand: linear-gradient(135deg, #163a6c 0%, #e61d1d 100%);
--gradient-subtle: linear-gradient(180deg, #1a4278 0%, #163a6c 100%);
--font-weight-heading: 900;
--font-weight-body: 400;
}Registry payload
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "cobalt-vermilion-poster",
"type": "registry:theme",
"title": "Cobalt Vermilion Poster",
"description": "A two-color poster system on deep cobalt blue and fire-engine red, where ultra-condensed uppercase type at poster scale is the composition itself.",
"categories": [
"music",
"poster",
"editorial",
"condensed",
"high-contrast",
"two-color",
"cobalt",
"red"
],© 2026 Identity Forge. All rights reserved.
Munich, Germany