Excalidraw
Component Playground
Cool, crisp digital clarity: stark white space, clean sans-serif, electric blue accents.




Click any value to copy. Roles are suggestions, not gospel.
Read off the live site. Treat it as reference, not a recipe.
| Role | Family | Size | Weight | Leading | Tracking | Sample |
|---|---|---|---|---|---|---|
| h1 | Sprig Sans | 48px | 400 | 1.2 | -1.2px | Aa Bb Cc |
| h2 | Sprig Sans | 48px | 400 | 1.1 | -1.2px | Aa Bb Cc |
| body | IBM Plex Sans | 16px | 400 | 1.5 | 0 | Aa Bb Cc |
| caption | Sprig Sans | 14px | 700 | 1.43 | 0 | Aa Bb Cc |
| button | Sprig Sans | 16px | 400 | 1.5 | 0 | Aa Bb Cc |
Max content width 1440px
:root {
--color-dominant: #0ebdf9;
--color-surface: #0474a4;
--color-ink: #ec74fc;
--color-accent: #5c8c9c;
--color-detail: #d1a7c2;
}
/* CSS variables exposed by source */
:root {
--color-purple-200: oklch(90.2% .063 306.703);
--color-fuchsia-700: oklch(51.8% .253 323.949);
--color-rose-200: oklch(89.2% .058 10.001);
--color-slate-200: oklch(92.9% .013 255.508);
--color-sky-500: oklch(68.5% .169 237.323);
--color-pink-500: oklch(65.6% .241 354.308);
--color-violet-600: oklch(54.1% .281 293.009);
--color-red-900: oklch(39.6% .141 25.723);
--color-orange-800: oklch(47% .157 37.304);
--color-blue-700: oklch(48.8% .243 264.376);
--color-neutral-300: oklch(87% 0 0);
--color-slate-500: oklch(55.4% .046 257.417);
--color-purple-800: oklch(43.8% .218 303.724);
--color-orange-900: oklch(40.8% .123 38.172);
--text-base--line-height: 1.5;
--color-orange-50: oklch(98% .016 73.684);
--color-blue-300: oklch(80.9% .105 251.813);
--color-cyan-700: oklch(52% .105 223.128);
--color-neutral-200: oklch(92.2% 0 0);
--color-gray-300: oklch(87.2% .01 258.338);
--color-yellow-400: oklch(85.2% .199 91.936);
--font-mono: "iA Writer Mono", "Menlo", "Consolas", "ui-monospace", monospace;
--color-slate-300: oklch(86.9% .022 252.894);
--color-amber-300: oklch(87.9% .169 91.605);
--color-gray-500: oklch(55.1% .027 264.364);
--color-green-500: oklch(72.3% .219 149.579);
--color-white: #fff;
--color-sky-600: oklch(58.8% .158 241.966);
--color-gray-400: oklch(70.7% .022 261.325);
--color-blue-400: oklch(70.7% .165 254.624);
--color-slate-400: oklch(70.4% .04 256.788);
--color-stone-900: oklch(21.6% .006 56.043);
--radius-sm: .25rem;
--font-weight-bold: 700;
--color-gray-100: oklch(96.7% .003 264.542);
--color-emerald-200: oklch(90.5% .093 164.15);
--color-purple-600: oklch(55.8% .288 302.321);
--color-violet-800: oklch(43.2% .232 292.759);
--text-xs--line-height: calc(1 / .75);
--color-violet-500: oklch(60.6% .25 292.717);
--color-fuchsia-600: oklch(59.1% .293 322.896);
--color-sky-50: oklch(97.7% .013 236.62);
--color-fuchsia-200: oklch(90.3% .076 319.62);
--color-green-900: oklch(39.3% .095 152.535);
--radius-2xl: 1rem;
--radius-md: .375rem;
--color-rose-950: oklch(27.1% .105 12.094);
--color-blue-800: oklch(42.4% .199 265.638);
--radius-lg: .5rem;
--text-xl: 1.25rem;
--color-cyan-50: oklch(98.4% .019 200.873);
--color-blue-100: oklch(93.2% .032 255.585);
--color-green-600: oklch(62.7% .194 149.214);
--color-green-950: oklch(26.6% .065 152.934);
--color-violet-950: oklch(28.3% .141 291.089);
--color-violet-300: oklch(81.1% .111 293.571);
--color-red-300: oklch(80.8% .114 19.571);
--color-cyan-500: oklch(71.5% .143 215.221);
--color-sky-300: oklch(82.8% .111 230.318);
--color-orange-500: oklch(70.5% .213 47.604);
}Drop-in prompt
Build a landing page in the visual style of Val Town.
Reference design system (extracted from the live site):
- Palette: #0ebdf9, #0474a4, #ec74fc, #5c8c9c, #d1a7c2
- Typefaces: Sprig Sans, IBM Plex Sans
- Macrostructure: Component Playground
Use the dominant colour for surfaces, the accent sparingly,
and lean on type weight + scale rather than colour for hierarchy.
Full DESIGN.md: https://inspomcp.dev/api/design/val-town