Utility Plain
No accent color at all — the primary action is simply the darkest thing on screen.
Construction · Ruled
There are no cards. A rule above a block announces it, spacing separates it, and nothing is ever enclosed.
Every style renders this same screen, so the only thing changing between two of them is the style. The component above is the file below, running.
Prompt
Design this interface in the Utility Plain style. There is no brand color: the primary action is the darkest element, and everything else is a neutral. Anything decorative has been removed, not toned down. Build every
The numbers in this prompt are printed from the tokens below, so it cannot drift from what the specimen renders.
What carries the look
- no brand color
- darkest element is the action
- neutral everything
- decoration removed
What this style refuses
- accent hues
- decorative shapes
- gradients
- expressive type
The refusals are the half that keeps generated interfaces from converging — a prompt that only says what to add gets the default look.
Tokens
Palette
#f6f6f4#101010#ffffff#181817#e0e0dc#2a2a28#1c1c1a#f2f2f0#5c5c58#9a9a95#1c1c1a#f2f2f0#ffffff#101010Shape and type
Measured contrast — body 15.77:1 light, 16.98:1 dark; secondary text 6.21:1 and 6.73:1. Every pair clears WCAG AA in both themes, checked on each build.
Specimen · Specimen.tsx
import type { CSSProperties } from "react";
/**
* Vibary · Utility Plain
*
* No accent color at all — the primary action is simply the darkest thing on screen.
*
* One complete product screen, rendered from the token object below —