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 bold editorial kit built around a vivid neon-green brand color (#1bff59) on stark near-black and clean off-white surfaces. Monospace accents (Space Mono) and tight grotesque type (Space Grotesk headings, Inter body) evoke an experimental, technical feel. Minimal shadows, flat surfaces, and punchy accents create a confident, contemporary look that ships cleanly in both light and dark modes; light mode uses a darker green (#0a8f2e) for primary to hold contrast on white.
acidneonfestival.com
Acid Neon
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: "d6e30008-285a-4bd5-8aab-1e509fc6d2b0"
version: 0
slug: "acid-neon-festival"
name: "Acid Neon Festival"
colors:
roles_light:
background: "#FCFDF6"
foreground: "#1A1C19"
card: "#FFFFFF"
card-foreground: "#1A1C19"
popover: "#FFFFFF"
popover-foreground: "#1A1C19"
primary: "#0A8F2E"
primary-foreground: "#000000"
secondary: "#E3EBDF"
secondary-foreground: "#000000"
muted: "#EEF2E9"
muted-foreground: "#52634F"
accent: "#1BFF59"
accent-foreground: "#06330F"
destructive: "#BA1A1A"
destructive-foreground: "#FFFFFF"
border: "#D4DCCD"
input: "#D4DCCD"
ring: "#0A8F2E"
success: "#1D8032"
success-foreground: "#FFFFFF"
warning: "#B45309"
warning-foreground: "#FFFFFF"
chart-1: "#0A8F2E"
chart-2: "#1BFF59"
chart-3: "#1D8032"
chart-4: "#7CFC9C"
chart-5: "#38656B"
roles_dark:
background: "#101210"Three ways from the same kit: run "npx identityforge@latest apply acid-neon-festival" 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/acid-neon-festival.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.
Acid Neon Festival is free: its full color tokens, fonts, DESIGN.md, and every export are available at no cost.
Supporting copy goes here.
/*
* Acid Neon Festival — Identity Forge design kit.
* Kit id: d6e30008-285a-4bd5-8aab-1e509fc6d2b0
* Kit slug: acid-neon-festival (a mutable alias; the id is the durable handle)
* Kit version: 0 (no version minted yet)
*/
@import url("https://fonts.googleapis.com/css2?family=Space%20Grotesk:wght@400;500;700&family=Inter:wght@400;500;600;700&family=Space%20Mono:wght@400;700&display=swap");
:root {
--radius: 0.75rem;
--font-heading: 'Space Grotesk', sans-serif;
--font-sans: 'Inter', sans-serif;
--font-mono: 'Space Mono', monospace;
--background: 69 64% 98%;
--foreground: 100 6% 10%;
--card: 0 0% 100%;
--card-foreground: 100 6% 10%;
--popover: 0 0% 100%;
--popover-foreground: 100 6% 10%;
--primary: 136 87% 30%;
--primary-foreground: 0 0% 0%;
--secondary: 100 23% 90%;
--secondary-foreground: 0 0% 0%;
--muted: 87 26% 93%;
--muted-foreground: 111 11% 35%;
--accent: 136 100% 55%;
--accent-foreground: 132 79% 11%;
--destructive: 0 75% 42%;
--destructive-foreground: 0 0% 100%;
--border: 92 18% 83%;
--input: 92 18% 83%;
--ring: 136 87% 30%;
--success: 133 63% 31%;
--success-foreground: 0 0% 100%;
--warning: 26 90% 37%;
--warning-foreground: 0 0% 100%;
--chart-1: 136 87% 30%;
--chart-2: 136 100% 55%;
--chart-3: 133 63% 31%;
--chart-4: 135 96% 74%;
--chart-5: 187 31% 32%;
--shadow-sm: 0 1px 2px rgba(0,0,0,0.06);
--shadow-md: 0 2px 6px rgba(0,0,0,0.08);
--shadow-lg: 0 6px 16px rgba(0,0,0,0.10);
--shadow-xl: 0 12px 32px rgba(0,0,0,0.14);
--gradient-hero: linear-gradient(135deg,#1bff59 0%,#0a8f2e 100%);
--gradient-brand: linear-gradient(90deg,#1bff59 0%,#7cfc9c 100%);
--gradient-subtle: linear-gradient(180deg,#fcfdf6 0%,#eef2e9 100%);
--duration: 200ms;
--duration-slow: 400ms;
--ease: cubic-bezier(0.4,0,0.2,1);
--tracking-tight: -0.03em;
--tracking-normal: 0em;
--font-weight-heading: 700;
--font-weight-body: 400;
--button-radius: 0.5rem;
--card-radius: 1.5rem;
--input-radius: 0.5rem;
--badge-radius: 0.5rem;
--border-width: 1px;Registry
/r/acid-neon-festival.jsonTailwind v4
/*
* Acid Neon Festival — Identity Forge design kit.
* Kit id: d6e30008-285a-4bd5-8aab-1e509fc6d2b0
* Kit slug: acid-neon-festival (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=Space%20Grotesk:wght@400;500;700&family=Inter:wght@400;500;600;700&family=Space%20Mono:wght@400;700&display=swap");
:root {
--radius: 0.75rem;
--font-heading: 'Space Grotesk', sans-serif;
--font-sans: 'Inter', sans-serif;
--font-mono: 'Space Mono', monospace;
--background: 69 64% 98%;
--foreground: 100 6% 10%;
--card: 0 0% 100%;
--card-foreground: 100 6% 10%;
--popover: 0 0% 100%;
--popover-foreground: 100 6% 10%;
--primary: 136 87% 30%;
--primary-foreground: 0 0% 0%;
--secondary: 100 23% 90%;
--secondary-foreground: 0 0% 0%;
--muted: 87 26% 93%;
--muted-foreground: 111 11% 35%;
--accent: 136 100% 55%;
--accent-foreground: 132 79% 11%;
--destructive: 0 75% 42%;
--destructive-foreground: 0 0% 100%;
--border: 92 18% 83%;
--input: 92 18% 83%;
--ring: 136 87% 30%;
--success: 133 63% 31%;
--success-foreground: 0 0% 100%;
--warning: 26 90% 37%;
--warning-foreground: 0 0% 100%;
--chart-1: 136 87% 30%;
--chart-2: 136 100% 55%;
--chart-3: 133 63% 31%;
--chart-4: 135 96% 74%;
--chart-5: 187 31% 32%;
--shadow-sm: 0 1px 2px rgba(0,0,0,0.06);
--shadow-md: 0 2px 6px rgba(0,0,0,0.08);
--shadow-lg: 0 6px 16px rgba(0,0,0,0.10);
--shadow-xl: 0 12px 32px rgba(0,0,0,0.14);
--gradient-hero: linear-gradient(135deg,#1bff59 0%,#0a8f2e 100%);
--gradient-brand: linear-gradient(90deg,#1bff59 0%,#7cfc9c 100%);
--gradient-subtle: linear-gradient(180deg,#fcfdf6 0%,#eef2e9 100%);
--duration: 200ms;
--duration-slow: 400ms;
--ease: cubic-bezier(0.4,0,0.2,1);
--tracking-tight: -0.03em;
--tracking-normal: 0em;
--font-weight-heading: 700;
--font-weight-body: 400;
--button-radius: 0.5rem;
--card-radius: 1.5rem;
--input-radius: 0.5rem;
--badge-radius: 0.5rem;
--border-width: 1px;
--card-border-width: 1px;
--input-border-width: 1px;
--button-border-width: 1px;
--badge-border-width: 1px;
--heading-transform: none;
--label-transform: none;
--kit-id: "d6e30008-285a-4bd5-8aab-1e509fc6d2b0";
--kit-version: 0;
}
.dark {
--radius: 0.75rem;
--font-heading: 'Space Grotesk', sans-serif;
--font-sans: 'Inter', sans-serif;
--font-mono: 'Space Mono', monospace;
--background: 120 6% 7%;
--foreground: 70 10% 88%;
--card: 105 8% 10%;
--card-foreground: 70 10% 88%;
--popover: 105 8% 10%;
--popover-foreground: 70 10% 88%;
--primary: 136 100% 55%;
--primary-foreground: 132 79% 11%;
--secondary: 103 9% 15%;
--secondary-foreground: 106 35% 86%;
--muted: 98 11% 14%;
--muted-foreground: 99 11% 65%;
--accent: 136 100% 55%;
--accent-foreground: 132 79% 11%;
--destructive: 4 100% 64%;
--destructive-foreground: 359 100% 8%;
--border: 97 9% 18%;
--input: 97 9% 18%;
--ring: 136 100% 55%;
--success: 137 69% 55%;
--success-foreground: 132 79% 11%;
--warning: 38 92% 50%;
--warning-foreground: 37 100% 8%;
--chart-1: 136 100% 55%;
--chart-2: 135 96% 74%;
--chart-3: 137 69% 55%;
--chart-4: 133 63% 31%;
--chart-5: 188 38% 73%;
}
@theme inline {
--font-heading: 'Space Grotesk', sans-serif;
--font-sans: 'Inter', 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.25rem;
--radius-md: 0.5rem;
--radius-lg: 0.75rem;
--radius-xl: 1.5rem;
--radius-button: 0.5rem;
--radius-card: 1.5rem;
--radius-input: 0.5rem;
--radius-badge: 0.5rem;
--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(0,0,0,0.06);
--shadow-md: 0 2px 6px rgba(0,0,0,0.08);
--shadow-lg: 0 6px 16px rgba(0,0,0,0.10);
--shadow-xl: 0 12px 32px rgba(0,0,0,0.14);
--tracking-tight: -0.03em;
--tracking-normal: 0em;
--ease-kit: cubic-bezier(0.4,0,0.2,1);
--duration-kit: 200ms;
--duration-kit-slow: 400ms;
--gradient-hero: linear-gradient(135deg,#1bff59 0%,#0a8f2e 100%);
--gradient-brand: linear-gradient(90deg,#1bff59 0%,#7cfc9c 100%);
--gradient-subtle: linear-gradient(180deg,#fcfdf6 0%,#eef2e9 100%);
--font-weight-heading: 700;
--font-weight-body: 400;
}Registry payload
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "acid-neon-festival",
"type": "registry:theme",
"title": "Acid Neon Festival",
"description": "A high-contrast electric-green and near-black system with monospace display accents and tight grotesque body type for bold, technical editorial interfaces.",
"categories": [
"neon",
"electric-green",
"editorial",
"monospace",
"high-contrast",
"festival",
"minimal",
"flat"
],© 2026 Identity Forge. All rights reserved.
Munich, Germany