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 minimal, airy product UI set against a sun-baked warm-cream canvas (#faf7f5). The orange brand color (#fd7c15) never fills a surface as a flat field; it lives exclusively as a radial gradient orb evoking a setting sun. All interactive elements are pill-shaped, and display headings use font-weight 300 for a deliberately weightless, editorial feel. Dark near-black (#1c1c1a) is the CTA button color while orange stays decorative. Cards float borderlessly via diffuse warm shadows. Plus Jakarta Sans carries headings, DM Sans the body, and JetBrains Mono technical strings.
ambientloginorb.com
Ambient Orb
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: "3d40279a-5fc5-4b92-83f0-38ec85e89ffd"
version: 0
slug: "ambient-login-orb"
name: "Ambient Login Orb"
colors:
roles_light:
background: "#FAF7F5"
foreground: "#1A1612"
card: "#F5EFE9"
card-foreground: "#1A1612"
popover: "#FAF7F5"
popover-foreground: "#1A1612"
primary: "#1C1C1A"
primary-foreground: "#FAF7F5"
secondary: "#ECE4DB"
secondary-foreground: "#3A2E28"
muted: "#F0E6DE"
muted-foreground: "#6E5A52"
accent: "#FD7C15"
accent-foreground: "#1A1612"
destructive: "#A84E33"
destructive-foreground: "#FFFFFF"
border: "#DDD2CB"
input: "#EDE5DE"
ring: "#FD7C15"
success: "#4A7A3C"
success-foreground: "#FFFFFF"
warning: "#F5A623"
warning-foreground: "#1A1612"
chart-1: "#FD7C15"
chart-2: "#A84E33"
chart-3: "#7A9E64"
chart-4: "#C9A87C"
chart-5: "#6C4738"
roles_dark:
background: "#1A1612"Three ways from the same kit: run "npx identityforge@latest apply ambient-login-orb" 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/ambient-login-orb.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.
Ambient Login Orb is free: its full color tokens, fonts, DESIGN.md, and every export are available at no cost.
Supporting copy goes here.
/*
* Ambient Login Orb — Identity Forge design kit.
* Kit id: 3d40279a-5fc5-4b92-83f0-38ec85e89ffd
* Kit slug: ambient-login-orb (a mutable alias; the id is the durable handle)
* Kit version: 0 (no version minted yet)
*/
@import url("https://fonts.googleapis.com/css2?family=Plus%20Jakarta%20Sans:wght@400;500;600;700&family=DM%20Sans:wght@400;500;700&family=JetBrains%20Mono:wght@400;500;700&display=swap");
:root {
--radius: 1.5rem;
--font-heading: 'Plus Jakarta Sans', sans-serif;
--font-sans: 'DM Sans', sans-serif;
--font-mono: 'JetBrains Mono', monospace;
--background: 24 33% 97%;
--foreground: 30 18% 9%;
--card: 30 38% 94%;
--card-foreground: 30 18% 9%;
--popover: 24 33% 97%;
--popover-foreground: 30 18% 9%;
--primary: 60 4% 11%;
--primary-foreground: 24 33% 97%;
--secondary: 32 31% 89%;
--secondary-foreground: 20 18% 19%;
--muted: 27 37% 91%;
--muted-foreground: 17 15% 38%;
--accent: 27 98% 54%;
--accent-foreground: 30 18% 9%;
--destructive: 14 53% 43%;
--destructive-foreground: 0 0% 100%;
--border: 23 21% 83%;
--input: 28 29% 90%;
--ring: 27 98% 54%;
--success: 106 34% 36%;
--success-foreground: 0 0% 100%;
--warning: 37 91% 55%;
--warning-foreground: 30 18% 9%;
--chart-1: 27 98% 54%;
--chart-2: 14 53% 43%;
--chart-3: 97 23% 51%;
--chart-4: 34 42% 64%;
--chart-5: 17 32% 32%;
--shadow-sm: 0 1px 4px rgba(26,18,12,0.06);
--shadow-md: 0 4px 20px rgba(26,18,12,0.09);
--shadow-lg: 0 8px 40px rgba(26,18,12,0.11);
--shadow-xl: 0 20px 72px rgba(26,18,12,0.14);
--gradient-hero: radial-gradient(ellipse 55% 55% at 65% 55%, #fd7c15 0%, #f4ae74 38%, #fde8d8 62%, transparent 80%);
--gradient-brand: linear-gradient(140deg, #f5efe9 0%, #fde8d8 50%, #fd7c15 100%);
--gradient-subtle: linear-gradient(180deg, #faf7f5 0%, #f0e6de 100%);
--duration: 220ms;
--duration-slow: 420ms;
--ease: cubic-bezier(0.32, 0.72, 0, 1);
--tracking-tight: -0.025em;
--tracking-normal: 0em;
--font-weight-heading: 300;
--font-weight-body: 400;
--button-radius: 9999px;
--card-radius: 1.75rem;
--input-radius: 9999px;
--badge-radius: 9999px;
--border-width: 1px;Registry
/r/ambient-login-orb.jsonTailwind v4
/*
* Ambient Login Orb — Identity Forge design kit.
* Kit id: 3d40279a-5fc5-4b92-83f0-38ec85e89ffd
* Kit slug: ambient-login-orb (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=Plus%20Jakarta%20Sans:wght@400;500;600;700&family=DM%20Sans:wght@400;500;700&family=JetBrains%20Mono:wght@400;500;700&display=swap");
:root {
--radius: 1.5rem;
--font-heading: 'Plus Jakarta Sans', sans-serif;
--font-sans: 'DM Sans', sans-serif;
--font-mono: 'JetBrains Mono', monospace;
--background: 24 33% 97%;
--foreground: 30 18% 9%;
--card: 30 38% 94%;
--card-foreground: 30 18% 9%;
--popover: 24 33% 97%;
--popover-foreground: 30 18% 9%;
--primary: 60 4% 11%;
--primary-foreground: 24 33% 97%;
--secondary: 32 31% 89%;
--secondary-foreground: 20 18% 19%;
--muted: 27 37% 91%;
--muted-foreground: 17 15% 38%;
--accent: 27 98% 54%;
--accent-foreground: 30 18% 9%;
--destructive: 14 53% 43%;
--destructive-foreground: 0 0% 100%;
--border: 23 21% 83%;
--input: 28 29% 90%;
--ring: 27 98% 54%;
--success: 106 34% 36%;
--success-foreground: 0 0% 100%;
--warning: 37 91% 55%;
--warning-foreground: 30 18% 9%;
--chart-1: 27 98% 54%;
--chart-2: 14 53% 43%;
--chart-3: 97 23% 51%;
--chart-4: 34 42% 64%;
--chart-5: 17 32% 32%;
--shadow-sm: 0 1px 4px rgba(26,18,12,0.06);
--shadow-md: 0 4px 20px rgba(26,18,12,0.09);
--shadow-lg: 0 8px 40px rgba(26,18,12,0.11);
--shadow-xl: 0 20px 72px rgba(26,18,12,0.14);
--gradient-hero: radial-gradient(ellipse 55% 55% at 65% 55%, #fd7c15 0%, #f4ae74 38%, #fde8d8 62%, transparent 80%);
--gradient-brand: linear-gradient(140deg, #f5efe9 0%, #fde8d8 50%, #fd7c15 100%);
--gradient-subtle: linear-gradient(180deg, #faf7f5 0%, #f0e6de 100%);
--duration: 220ms;
--duration-slow: 420ms;
--ease: cubic-bezier(0.32, 0.72, 0, 1);
--tracking-tight: -0.025em;
--tracking-normal: 0em;
--font-weight-heading: 300;
--font-weight-body: 400;
--button-radius: 9999px;
--card-radius: 1.75rem;
--input-radius: 9999px;
--badge-radius: 9999px;
--border-width: 1px;
--card-border-width: 0;
--input-border-width: 1px;
--button-border-width: 0;
--badge-border-width: 0;
--heading-transform: none;
--label-transform: none;
--kit-id: "3d40279a-5fc5-4b92-83f0-38ec85e89ffd";
--kit-version: 0;
}
.dark {
--radius: 1.5rem;
--font-heading: 'Plus Jakarta Sans', sans-serif;
--font-sans: 'DM Sans', sans-serif;
--font-mono: 'JetBrains Mono', monospace;
--background: 30 18% 9%;
--foreground: 30 44% 93%;
--card: 40 20% 12%;
--card-foreground: 30 44% 93%;
--popover: 40 11% 11%;
--popover-foreground: 30 44% 93%;
--primary: 30 44% 93%;
--primary-foreground: 30 18% 9%;
--secondary: 30 17% 18%;
--secondary-foreground: 22 21% 71%;
--muted: 24 14% 15%;
--muted-foreground: 20 13% 64%;
--accent: 27 98% 54%;
--accent-foreground: 30 18% 9%;
--destructive: 14 56% 52%;
--destructive-foreground: 0 0% 0%;
--border: 30 17% 18%;
--input: 24 14% 15%;
--ring: 27 98% 54%;
--success: 105 27% 54%;
--success-foreground: 30 18% 9%;
--warning: 37 91% 55%;
--warning-foreground: 30 18% 9%;
--chart-1: 27 98% 54%;
--chart-2: 26 49% 52%;
--chart-3: 93 33% 65%;
--chart-4: 35 52% 75%;
--chart-5: 23 18% 53%;
}
@theme inline {
--font-heading: 'Plus Jakarta Sans', 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.5rem;
--radius-md: 1rem;
--radius-lg: 1.5rem;
--radius-xl: 2rem;
--radius-button: 9999px;
--radius-card: 1.75rem;
--radius-input: 9999px;
--radius-badge: 9999px;
--border-width: 1px;
--card-border-width: 0;
--input-border-width: 1px;
--button-border-width: 0;
--badge-border-width: 0;
--shadow-sm: 0 1px 4px rgba(26,18,12,0.06);
--shadow-md: 0 4px 20px rgba(26,18,12,0.09);
--shadow-lg: 0 8px 40px rgba(26,18,12,0.11);
--shadow-xl: 0 20px 72px rgba(26,18,12,0.14);
--tracking-tight: -0.025em;
--tracking-normal: 0em;
--ease-kit: cubic-bezier(0.32, 0.72, 0, 1);
--duration-kit: 220ms;
--duration-kit-slow: 420ms;
--gradient-hero: radial-gradient(ellipse 55% 55% at 65% 55%, #fd7c15 0%, #f4ae74 38%, #fde8d8 62%, transparent 80%);
--gradient-brand: linear-gradient(140deg, #f5efe9 0%, #fde8d8 50%, #fd7c15 100%);
--gradient-subtle: linear-gradient(180deg, #faf7f5 0%, #f0e6de 100%);
--font-weight-heading: 300;
--font-weight-body: 400;
}Registry payload
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "ambient-login-orb",
"type": "registry:theme",
"title": "Ambient Login Orb",
"description": "A warm-cream neutral surface UI with a vivid orange gradient-orb accent, pill-shaped components, ultra-light typography, and an ambient 3D environmental aesthetic.",
"categories": [
"warm",
"organic",
"minimal",
"pill-ui",
"editorial",
"wellness",
"gradient-orb",
"light-weight-type"
],© 2026 Identity Forge. All rights reserved.
Munich, Germany