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.
An archive-inspired editorial kit that abandons a single neutral canvas for three distinct surface zones: near-black charcoal (#191919) for the header and footer chrome, off-white cream (#faf6f3) for document content, and vivid electric blue (#1e4bd8) as a full-width section fill. Document cards are sharp-edged (0rem radius) and layered with z-index stacking to read like paper spread on a table. Playfair Display italic carries oversized editorial headings, Space Mono handles every reference code and metadata stamp, and DM Sans sets running body copy. Depth comes from surface-color contrast and overlap, never from shadows.
filesarchival.com
Files Archival
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: "13585843-c7f0-494a-bc1d-2b9f9dbd9465"
version: 0
slug: "files-archival"
name: "Files Archival"
colors:
roles_light:
background: "#FAF6F3"
foreground: "#191919"
card: "#F0ECE8"
card-foreground: "#191919"
popover: "#FAF6F3"
popover-foreground: "#191919"
primary: "#1E4BD8"
primary-foreground: "#FFFFFF"
secondary: "#E29AA5"
secondary-foreground: "#191919"
muted: "#E4DDD7"
muted-foreground: "#6B5F5A"
accent: "#F5DB7B"
accent-foreground: "#191919"
destructive: "#C9362A"
destructive-foreground: "#FFFFFF"
border: "#D8D1CB"
input: "#E8E3DE"
ring: "#1E4BD8"
success: "#2D7A4F"
success-foreground: "#FFFFFF"
warning: "#D4921A"
warning-foreground: "#191919"
chart-1: "#1E4BD8"
chart-2: "#E29AA5"
chart-3: "#F5DB7B"
chart-4: "#C9362A"
chart-5: "#9F6A72"
roles_dark:
background: "#191919"Three ways from the same kit: run "npx identityforge@latest apply files-archival" 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/files-archival.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.
Files Archival is free: its full color tokens, fonts, DESIGN.md, and every export are available at no cost.
Supporting copy goes here.
/*
* Files Archival — Identity Forge design kit.
* Kit id: 13585843-c7f0-494a-bc1d-2b9f9dbd9465
* Kit slug: files-archival (a mutable alias; the id is the durable handle)
* Kit version: 0 (no version minted yet)
*/
@import url("https://fonts.googleapis.com/css2?family=Playfair%20Display:wght@400;500;600;700&family=DM%20Sans:wght@400;500;700&family=Space%20Mono:wght@400;700&display=swap");
:root {
--radius: 0.25rem;
--font-heading: 'Playfair Display', serif;
--font-sans: 'DM Sans', sans-serif;
--font-mono: 'Space Mono', monospace;
--background: 26 41% 97%;
--foreground: 0 0% 10%;
--card: 30 21% 93%;
--card-foreground: 0 0% 10%;
--popover: 26 41% 97%;
--popover-foreground: 0 0% 10%;
--primary: 225 76% 48%;
--primary-foreground: 0 0% 100%;
--secondary: 351 55% 75%;
--secondary-foreground: 0 0% 10%;
--muted: 28 19% 87%;
--muted-foreground: 18 9% 39%;
--accent: 47 86% 72%;
--accent-foreground: 0 0% 10%;
--destructive: 5 65% 48%;
--destructive-foreground: 0 0% 100%;
--border: 28 14% 82%;
--input: 30 18% 89%;
--ring: 225 76% 48%;
--success: 146 46% 33%;
--success-foreground: 0 0% 100%;
--warning: 39 78% 47%;
--warning-foreground: 0 0% 10%;
--chart-1: 225 76% 48%;
--chart-2: 351 55% 75%;
--chart-3: 47 86% 72%;
--chart-4: 5 65% 48%;
--chart-5: 351 22% 52%;
--shadow-sm: 0 1px 2px rgba(0,0,0,0.06);
--shadow-md: 0 2px 6px rgba(0,0,0,0.1);
--shadow-lg: 0 4px 12px rgba(0,0,0,0.14);
--shadow-xl: 0 8px 24px rgba(0,0,0,0.18);
--gradient-hero: linear-gradient(180deg, #191919 50%, #1e4bd8 50%);
--gradient-brand: linear-gradient(135deg, #1e4bd8 0%, #1a3272 100%);
--gradient-subtle: linear-gradient(180deg, #faf6f3 0%, #f0ece8 100%);
--duration: 200ms;
--duration-slow: 420ms;
--ease: cubic-bezier(0.25, 0.1, 0.25, 1.0);
--tracking-tight: -0.02em;
--tracking-normal: 0em;
--font-weight-heading: 700;
--font-weight-body: 400;
--button-radius: 0.125rem;
--card-radius: 0rem;
--input-radius: 0.125rem;
--badge-radius: 0.125rem;
--border-width: 1px;Registry
/r/files-archival.jsonTailwind v4
/*
* Files Archival — Identity Forge design kit.
* Kit id: 13585843-c7f0-494a-bc1d-2b9f9dbd9465
* Kit slug: files-archival (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=Playfair%20Display:wght@400;500;600;700&family=DM%20Sans:wght@400;500;700&family=Space%20Mono:wght@400;700&display=swap");
:root {
--radius: 0.25rem;
--font-heading: 'Playfair Display', serif;
--font-sans: 'DM Sans', sans-serif;
--font-mono: 'Space Mono', monospace;
--background: 26 41% 97%;
--foreground: 0 0% 10%;
--card: 30 21% 93%;
--card-foreground: 0 0% 10%;
--popover: 26 41% 97%;
--popover-foreground: 0 0% 10%;
--primary: 225 76% 48%;
--primary-foreground: 0 0% 100%;
--secondary: 351 55% 75%;
--secondary-foreground: 0 0% 10%;
--muted: 28 19% 87%;
--muted-foreground: 18 9% 39%;
--accent: 47 86% 72%;
--accent-foreground: 0 0% 10%;
--destructive: 5 65% 48%;
--destructive-foreground: 0 0% 100%;
--border: 28 14% 82%;
--input: 30 18% 89%;
--ring: 225 76% 48%;
--success: 146 46% 33%;
--success-foreground: 0 0% 100%;
--warning: 39 78% 47%;
--warning-foreground: 0 0% 10%;
--chart-1: 225 76% 48%;
--chart-2: 351 55% 75%;
--chart-3: 47 86% 72%;
--chart-4: 5 65% 48%;
--chart-5: 351 22% 52%;
--shadow-sm: 0 1px 2px rgba(0,0,0,0.06);
--shadow-md: 0 2px 6px rgba(0,0,0,0.1);
--shadow-lg: 0 4px 12px rgba(0,0,0,0.14);
--shadow-xl: 0 8px 24px rgba(0,0,0,0.18);
--gradient-hero: linear-gradient(180deg, #191919 50%, #1e4bd8 50%);
--gradient-brand: linear-gradient(135deg, #1e4bd8 0%, #1a3272 100%);
--gradient-subtle: linear-gradient(180deg, #faf6f3 0%, #f0ece8 100%);
--duration: 200ms;
--duration-slow: 420ms;
--ease: cubic-bezier(0.25, 0.1, 0.25, 1.0);
--tracking-tight: -0.02em;
--tracking-normal: 0em;
--font-weight-heading: 700;
--font-weight-body: 400;
--button-radius: 0.125rem;
--card-radius: 0rem;
--input-radius: 0.125rem;
--badge-radius: 0.125rem;
--border-width: 1px;
--card-border-width: 1px;
--input-border-width: 1px;
--button-border-width: 0;
--badge-border-width: 1px;
--heading-transform: none;
--label-transform: uppercase;
--kit-id: "13585843-c7f0-494a-bc1d-2b9f9dbd9465";
--kit-version: 0;
}
.dark {
--radius: 0.25rem;
--font-heading: 'Playfair Display', serif;
--font-sans: 'DM Sans', sans-serif;
--font-mono: 'Space Mono', monospace;
--background: 0 0% 10%;
--foreground: 26 41% 97%;
--card: 0 0% 14%;
--card-foreground: 26 41% 97%;
--popover: 0 0% 16%;
--popover-foreground: 26 41% 97%;
--primary: 225 71% 58%;
--primary-foreground: 0 0% 100%;
--secondary: 350 17% 20%;
--secondary-foreground: 351 55% 75%;
--muted: 0 0% 16%;
--muted-foreground: 20 8% 57%;
--accent: 47 86% 72%;
--accent-foreground: 0 0% 10%;
--destructive: 5 65% 48%;
--destructive-foreground: 0 0% 100%;
--border: 0 0% 20%;
--input: 0 0% 15%;
--ring: 225 71% 58%;
--success: 146 46% 33%;
--success-foreground: 0 0% 100%;
--warning: 39 78% 47%;
--warning-foreground: 0 0% 10%;
--chart-1: 225 71% 58%;
--chart-2: 351 55% 75%;
--chart-3: 47 86% 72%;
--chart-4: 6 72% 56%;
--chart-5: 15 24% 77%;
}
@theme inline {
--font-heading: 'Playfair Display', serif;
--font-sans: 'DM Sans', 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: 0rem;
--radius-md: 0.125rem;
--radius-lg: 0.25rem;
--radius-xl: 0.375rem;
--radius-button: 0.125rem;
--radius-card: 0rem;
--radius-input: 0.125rem;
--radius-badge: 0.125rem;
--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.06);
--shadow-md: 0 2px 6px rgba(0,0,0,0.1);
--shadow-lg: 0 4px 12px rgba(0,0,0,0.14);
--shadow-xl: 0 8px 24px rgba(0,0,0,0.18);
--tracking-tight: -0.02em;
--tracking-normal: 0em;
--ease-kit: cubic-bezier(0.25, 0.1, 0.25, 1.0);
--duration-kit: 200ms;
--duration-kit-slow: 420ms;
--gradient-hero: linear-gradient(180deg, #191919 50%, #1e4bd8 50%);
--gradient-brand: linear-gradient(135deg, #1e4bd8 0%, #1a3272 100%);
--gradient-subtle: linear-gradient(180deg, #faf6f3 0%, #f0ece8 100%);
--font-weight-heading: 700;
--font-weight-body: 400;
}Registry payload
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "files-archival",
"type": "registry:theme",
"title": "Files Archival",
"description": "A three-zone editorial system that brackets a full-width electric-blue content band between near-black charcoal header and footer shells, with cream and blush paper documents overlapping as a physical collage.",
"categories": [
"editorial",
"archival",
"dark",
"serif",
"monospace",
"document-collage",
"high-contrast",
"electric-blue"
],© 2026 Identity Forge. All rights reserved.
Munich, Germany