Bauhaus Primary
Red, blue, yellow and black in flat geometric blocks — no other colors exist.
Construction · Flat
Color and position do all the work. No gradients, no shadows, no edges that pretend to catch light.
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 Bauhaus Primary style. Flat geometry in the three primaries plus black, arranged on a strict grid. Circles, squares and triangles carry meaning; nothing is shaded. Build every surface the
The numbers in this prompt are printed from the tokens below, so it cannot drift from what the specimen renders.
What carries the look
- three primaries plus black
- flat geometric blocks
- strict grid
- no shading
What this style refuses
- gradients or shading
- secondary colors
- decorative type
- soft shadows
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
#f5f2ea#111111#ffffff#191919#111111#f0f0f0#111111#f5f2ea#4f4f4f#a3a39d#d62828#ff5252#ffffff#1a0000Shape and type
Measured contrast — body 16.88:1 light, 16.88:1 dark; secondary text 7.32:1 and 7.45:1. Every pair clears WCAG AA in both themes, checked on each build.
Specimen · Specimen.tsx
import type { CSSProperties } from "react";
/**
* Vibary · Bauhaus Primary
*
* Red, blue, yellow and black in flat geometric blocks — no other colors exist.
*
* One complete product screen, rendered from the token object below —