MAIA — Design System
Bold Typography · Light-first · Atomic
Andrés Wong / Enteracloud — canonical UI direction

Typography
as the interface.

Poster design translated to web. Extreme contrast, deliberate negative space, sharp edges. Confident and editorial — a gallery exhibition, not a template. Never converge on the average choice; that convergence is what makes UI read as AI-generated.

01
Theme — light by default

All new UI starts light. Dark is built only on explicit request, and even then light stays canonical. The accent is a solid vermillion — never a glow, never a gradient.

Warm paper palette · in production on ProjectHub
surface-base
#faf9f6
elevated
#ffffff
border
#ddd9cf
text-primary
#0a0a0a
accent
#ff3d00
destructive
#dc2626
02
Typography

Loaded via Bunny Fonts — self-hosted-friendly, no tracking. Headlines carry aggressive negative tracking (-0.06em-0.04em); giant serif numbers act as a design element. Never Inter / Roboto / Space Grotesk for headlines — those are AI-slop markers.

Display
Instrument Serif — editorial headlines
Body / UI
Instrument Sans — running text and interface
Mono
JetBrains Mono — LABELS / CODE / 01
03
Shape · texture · effects
  • Radius 0 global* { border-radius:0 !important }. Sharp, intentional edges.
  • No shadows, no glow, no gradients.
  • Noise texture: SVG fractalNoise ~1.5% opacity (this page uses it).
  • Animated underlines (scale-x 100→110, 150ms) instead of glows.
  • Square markers & status dots — never circles.
  • Icons: SVG only, never emoji.
04
Layout

Reading container ~max-w-5xl; full-width on wide monitors (max-width caps leave ugly white gutters). Asymmetric editorial grids — 7/5 or 8/4 — with left-aligned heroes and magazine-style numbered sections.

Section rhythm py-20 → 28 → 40. Mobile-first, progressive font scaling, tables overflow-x-auto, collapsible nav. This very document is an 5/7 grid.

05
Components — live

Text-only uppercase buttons with animated underline. Bordered uppercase badges. Sharp h-1 progress. Square status dots. Bordered inputs with a 2px accent focus ring.

Draft Active
06
Atomic design

UI composes as atoms → molecules → organisms; each page assembles organisms plus a meta object. Semantic utility classes map to theme vars — zero hardcoded hex in components (hardcoded color is an AI-slop tell).

resources/js/Components/
├─ atoms/ UiButton · UiCard · UiBadge · UiHeading · UiText
│ UiLabel · UiIcon (SVG) · UiStatusDot (square) · UiInput · UiRule
├─ molecules/ StatCard · PostCard · Pagination · Nav
└─ organisms/ Footer · CommandPalette · PillPeek · Comments
Layouts/AppLayout.vue ← composes organisms + meta{}
07
Interaction patterns
Command Palette — ⌘K, wanted in every UI

⌘K / Ctrl+K and / open it. Fuzzy search with debounce, ↑↓ navigate, select, esc close. Combine navigation + actions. Scrim + centered dialog, focus trap, scroll-lock.

Peek / preview slide-over — never force navigation

Clicking an entity reference opens a right-side drawer with key details in place — do not redirect. Keep an explicit Open full button inside. One global component + a module-level store (stores/peek.js), not provide/inject.

08
Anti-AI-slop rules
AvoidInter / Roboto / Space Grotesk headlines
UseSerif with character — Instrument Serif, Fraunces
Avoidpurple→blue pill gradients
UseSolid brand accent
AvoidCentered hero + badge + 3 identical cards
UseAsymmetric, numbered editorial sections
Avoidrounded-full / 2xl everywhere · accent glows
UseRadius 0 · noise / grain · rule lines
AvoidGeneric copy · emojis
UseReal numbers · proof > promises · SVG icons