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 sun-soaked retro brand channeling vintage beach and skate culture of past decades. Pages alternate full-bleed color bands, deep forest green (#293a2a), warm terracotta red (#cb5331), parchment cream (#f5e1c6), and amber gold (#f4b247), with oversized condensed uppercase display type filling near-full viewport width like a vintage poster. Vintage outdoor photography is cropped edge-to-edge as section backgrounds with bold type set directly on the image. The palette is strictly warm and earthy, rejecting cool neutrals. Bebas Neue carries display type, Lora the multi-column body copy, and Space Mono technical strings.
californiaretro70s80sspirit.com
California Retro
Supporting copy goes here.
californiaretro70s80sspirit.com
California Retro
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: "bfe56012-4b11-47ca-aa72-4494e8c275e5"
version: 0
slug: "california-retro-70s-80s-spirit"
name: "California Retro — 70s·80s Spirit"
colors:
roles_light:
background: "#F5E1C6"
foreground: "#1A2218"
card: "#EDD4AA"
card-foreground: "#1A2218"
popover: "#EDD4AA"
popover-foreground: "#1A2218"
primary: "#CB5331"
primary-foreground: "#000000"
secondary: "#293A2A"
secondary-foreground: "#F5E1C6"
muted: "#E6CDA0"
muted-foreground: "#5A4A35"
accent: "#F4B247"
accent-foreground: "#1A2218"
destructive: "#B52D1A"
destructive-foreground: "#FFFFFF"
border: "#C5A882"
input: "#E6CDA0"
ring: "#CB5331"
success: "#2D6A4F"
success-foreground: "#FFFFFF"
warning: "#E8A030"
warning-foreground: "#1A2218"
chart-1: "#CB5331"
chart-2: "#F4B247"
chart-3: "#293A2A"
chart-4: "#DFAF91"
chart-5: "#AC6454"
roles_dark:
background: "#293A2A"Three ways from the same kit: run "npx identityforge@latest apply california-retro-70s-80s-spirit" 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/california-retro-70s-80s-spirit.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.
California Retro — 70s·80s Spirit is free: its full color tokens, fonts, DESIGN.md, and every export are available at no cost.
Supporting copy goes here.
/*
* California Retro — 70s·80s Spirit — Identity Forge design kit.
* Kit id: bfe56012-4b11-47ca-aa72-4494e8c275e5
* Kit slug: california-retro-70s-80s-spirit (a mutable alias; the id is the durable handle)
* Kit version: 0 (no version minted yet)
*/
@import url("https://fonts.googleapis.com/css2?family=Bebas%20Neue:wght@400&family=Lora:wght@400;500;600;700&family=Space%20Mono:wght@400;700&display=swap");
:root {
--radius: 0.5rem;
--font-heading: 'Bebas Neue', sans-serif;
--font-sans: 'Lora', serif;
--font-mono: 'Space Mono', monospace;
--background: 34 70% 87%;
--foreground: 108 17% 11%;
--card: 38 65% 80%;
--card-foreground: 108 17% 11%;
--popover: 38 65% 80%;
--popover-foreground: 108 17% 11%;
--primary: 13 61% 49%;
--primary-foreground: 0 0% 0%;
--secondary: 124 17% 19%;
--secondary-foreground: 34 70% 87%;
--muted: 39 58% 76%;
--muted-foreground: 34 26% 28%;
--accent: 37 89% 62%;
--accent-foreground: 108 17% 11%;
--destructive: 7 75% 41%;
--destructive-foreground: 0 0% 100%;
--border: 34 37% 64%;
--input: 39 58% 76%;
--ring: 13 61% 49%;
--success: 153 40% 30%;
--success-foreground: 0 0% 100%;
--warning: 37 80% 55%;
--warning-foreground: 108 17% 11%;
--chart-1: 13 61% 49%;
--chart-2: 37 89% 62%;
--chart-3: 124 17% 19%;
--chart-4: 23 55% 72%;
--chart-5: 11 35% 50%;
--shadow-sm: 0 1px 2px rgba(26,34,24,0.10);
--shadow-md: 0 2px 8px rgba(26,34,24,0.14);
--shadow-lg: 0 4px 16px rgba(26,34,24,0.18);
--shadow-xl: 0 8px 32px rgba(26,34,24,0.22);
--gradient-hero: linear-gradient(180deg,#293a2a 0%,#1e2c1f 100%);
--gradient-brand: linear-gradient(135deg,#cb5331 0%,#f4b247 100%);
--gradient-subtle: linear-gradient(180deg,#f5e1c6 0%,#e6cda0 100%);
--duration: 200ms;
--duration-slow: 420ms;
--ease: cubic-bezier(0.25,0.1,0.25,1.0);
--tracking-tight: -0.01em;
--tracking-normal: 0.02em;
--font-weight-heading: 700;
--font-weight-body: 400;
--button-radius: 9999px;
--card-radius: 0rem;
--input-radius: 0.25rem;
--badge-radius: 9999px;
--border-width: 1px;Registry
/r/california-retro-70s-80s-spirit.jsonTailwind v4
/*
* California Retro — 70s·80s Spirit — Identity Forge design kit.
* Kit id: bfe56012-4b11-47ca-aa72-4494e8c275e5
* Kit slug: california-retro-70s-80s-spirit (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=Bebas%20Neue:wght@400&family=Lora:wght@400;500;600;700&family=Space%20Mono:wght@400;700&display=swap");
:root {
--radius: 0.5rem;
--font-heading: 'Bebas Neue', sans-serif;
--font-sans: 'Lora', serif;
--font-mono: 'Space Mono', monospace;
--background: 34 70% 87%;
--foreground: 108 17% 11%;
--card: 38 65% 80%;
--card-foreground: 108 17% 11%;
--popover: 38 65% 80%;
--popover-foreground: 108 17% 11%;
--primary: 13 61% 49%;
--primary-foreground: 0 0% 0%;
--secondary: 124 17% 19%;
--secondary-foreground: 34 70% 87%;
--muted: 39 58% 76%;
--muted-foreground: 34 26% 28%;
--accent: 37 89% 62%;
--accent-foreground: 108 17% 11%;
--destructive: 7 75% 41%;
--destructive-foreground: 0 0% 100%;
--border: 34 37% 64%;
--input: 39 58% 76%;
--ring: 13 61% 49%;
--success: 153 40% 30%;
--success-foreground: 0 0% 100%;
--warning: 37 80% 55%;
--warning-foreground: 108 17% 11%;
--chart-1: 13 61% 49%;
--chart-2: 37 89% 62%;
--chart-3: 124 17% 19%;
--chart-4: 23 55% 72%;
--chart-5: 11 35% 50%;
--shadow-sm: 0 1px 2px rgba(26,34,24,0.10);
--shadow-md: 0 2px 8px rgba(26,34,24,0.14);
--shadow-lg: 0 4px 16px rgba(26,34,24,0.18);
--shadow-xl: 0 8px 32px rgba(26,34,24,0.22);
--gradient-hero: linear-gradient(180deg,#293a2a 0%,#1e2c1f 100%);
--gradient-brand: linear-gradient(135deg,#cb5331 0%,#f4b247 100%);
--gradient-subtle: linear-gradient(180deg,#f5e1c6 0%,#e6cda0 100%);
--duration: 200ms;
--duration-slow: 420ms;
--ease: cubic-bezier(0.25,0.1,0.25,1.0);
--tracking-tight: -0.01em;
--tracking-normal: 0.02em;
--font-weight-heading: 700;
--font-weight-body: 400;
--button-radius: 9999px;
--card-radius: 0rem;
--input-radius: 0.25rem;
--badge-radius: 9999px;
--border-width: 1px;
--card-border-width: 0;
--input-border-width: 1px;
--button-border-width: 0;
--badge-border-width: 1px;
--heading-transform: uppercase;
--label-transform: uppercase;
--kit-id: "bfe56012-4b11-47ca-aa72-4494e8c275e5";
--kit-version: 0;
}
.dark {
--radius: 0.5rem;
--font-heading: 'Bebas Neue', sans-serif;
--font-sans: 'Lora', serif;
--font-mono: 'Space Mono', monospace;
--background: 124 17% 19%;
--foreground: 34 70% 87%;
--card: 124 19% 15%;
--card-foreground: 34 70% 87%;
--popover: 124 19% 15%;
--popover-foreground: 34 70% 87%;
--primary: 13 61% 49%;
--primary-foreground: 0 0% 0%;
--secondary: 124 20% 30%;
--secondary-foreground: 34 70% 87%;
--muted: 128 21% 22%;
--muted-foreground: 40 32% 69%;
--accent: 37 89% 62%;
--accent-foreground: 108 17% 11%;
--destructive: 6 63% 46%;
--destructive-foreground: 0 0% 100%;
--border: 124 20% 30%;
--input: 128 21% 22%;
--ring: 13 61% 49%;
--success: 152 41% 52%;
--success-foreground: 108 17% 11%;
--warning: 37 89% 62%;
--warning-foreground: 108 17% 11%;
--chart-1: 13 61% 49%;
--chart-2: 37 89% 62%;
--chart-3: 23 55% 72%;
--chart-4: 161 21% 73%;
--chart-5: 34 70% 87%;
}
@theme inline {
--font-heading: 'Bebas Neue', sans-serif;
--font-sans: 'Lora', 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: 0;
--input-border-width: 1px;
--button-border-width: 0;
--badge-border-width: 1px;
--shadow-sm: 0 1px 2px rgba(26,34,24,0.10);
--shadow-md: 0 2px 8px rgba(26,34,24,0.14);
--shadow-lg: 0 4px 16px rgba(26,34,24,0.18);
--shadow-xl: 0 8px 32px rgba(26,34,24,0.22);
--tracking-tight: -0.01em;
--tracking-normal: 0.02em;
--ease-kit: cubic-bezier(0.25,0.1,0.25,1.0);
--duration-kit: 200ms;
--duration-kit-slow: 420ms;
--gradient-hero: linear-gradient(180deg,#293a2a 0%,#1e2c1f 100%);
--gradient-brand: linear-gradient(135deg,#cb5331 0%,#f4b247 100%);
--gradient-subtle: linear-gradient(180deg,#f5e1c6 0%,#e6cda0 100%);
--font-weight-heading: 700;
--font-weight-body: 400;
}Registry payload
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "california-retro-70s-80s-spirit",
"type": "registry:theme",
"title": "California Retro — 70s·80s Spirit",
"description": "A warm retro lifestyle identity built from alternating full-bleed bands of forest green, terracotta, parchment cream, and amber gold with oversized condensed uppercase type and no white canvas.",
"categories": [
"retro",
"70s",
"80s",
"lifestyle",
"editorial",
"bold",
"warm",
"poster"
],© 2026 Identity Forge. All rights reserved.
Munich, Germany