Design System

I wanted something simple yet bold. I’m not a designer, so I chose coherence through constraints: two colors that invert, sharp borders, and clear typography. Fewer choices make every decision intentional and keep content first.

This system uses opacity for nuance (e.g., main/10 or secondary/10), preserves contrast in light/dark, and limits motion to what’s functional. Accessibility is the backbone: contrast, legibility, focus, and semantic structure.

Accessibility Statement

Color System

The heart of the system. Limiting to just two colors forces thinking about hierarchy, contrast, and accessibility from the start. No intermediate grays, no accents, no escape hatches.

--color-main

Text, borders, primary elements

--color-secondary

Backgrounds, alternate text

Opacity Variations

The only "additional colors" allowed: opacity. Using transparency creates subtlety and depth without breaking the two-color rule.

Opacity introduces nuance without adding new hues. Use it for states, subtle backgrounds, and separators.

Main over Secondary

main/100
main/80
main/60
main/40
main/20
main/10

Secondary over Main

secondary/100
secondary/80
secondary/60
secondary/40
secondary/20
secondary/10

Theme System

Each theme defines two colors: colorful (vibrant/accent color) and contrasty (dark/background color). In light mode, colorful becomes --color-main (text/borders) and contrasty becomes --color-secondary (backgrounds). In dark mode they swap: contrasty becomes --color-main and colorful becomes --color-secondary. This way the system maintains high contrast in both modes using only two colors per theme.

Available themes
MS-DOS

Command line interface

colorful: #e5e5e6

contrasty: #000000

Banana

Potassium-powered meme energy

colorful: #D4B340

contrasty: #020123

GameBoy

Monochrome LCD legend

colorful: #A4D110

contrasty: #044F27

Commodore

Blue screen computing legend

colorful: #BFDDF5

contrasty: #0A0A1C

Kurumi

Flow Kuromi

colorful: #FA7FB5

contrasty: #0A0A0A

Typography

Two type families with clear roles. The constraint continues.

Headings
H1

“The quick little fox joyfully went down to the river singing a warm tune.”

H2

“The quick little fox joyfully went down to the river singing a warm tune.”

H3

“The quick little fox joyfully went down to the river singing a warm tune.”

H4–H6

“The quick little fox joyfully went down to the river singing a warm tune.”

Body
text-body

Body copy should read calmly and effortlessly. Short lines, high contrast, and a steady vertical rhythm guide the eye without distraction.

text-body-sm

Body copy should read calmly and effortlessly. Short lines, high contrast, and a steady vertical rhythm guide the eye without distraction.

Mono Body
text-body-mono

const theme = "brutalist";

text-body-mono-sm

UI · LABEL · SYSTEM

Buttons

Default
Filled
Compact
Compact Filled
Elevated Buttons — Default
Elevated Buttons — Filled
Outline Buttons
Outline Elevated Buttons (Animated)

Project Cards

Visual Elements

Diagonal Stripe

Utility pattern to separate sections and emphasize areas without adding new colors. It actually motivated adding opacities: transparency instead of new hues. It respects the two‑color system and adapts to themes.

Ejemplo de patrón de franja diagonal
Wavy divider

Decorative separator that uses a wavy shape to split sections without introducing new colors. It leverages opacity to add nuance while following the current theme contrast.

Do you know the Konami code?