ai.erikg.org / guidelines

ux/ui guidelines

Design language and component reference for sites that live inside ai.erikg.org. Every page should feel like it belongs to the same organism.

colors

Four tokens. No more, no less. Every visual decision maps to one of these.

bg #0e0e0e
fg #e8e0d0
dim #52504a
acc #c8922a

typography

One font: DM Mono, weight 300 always. The monospace grid is the aesthetic backbone of every page.

display page title 1.6–2rem · wt 300
heading section heading 1rem · wt 400
body the quick brown fox jumps 14px · wt 300
small auxiliary information 12–13px · wt 300
label UPPERCASE LABEL 10–11px · 0.14em ls

spacing

Derived from a loose 4px base. Prefer generous whitespace — emptiness is intentional.

xs
0.25rem · 4px
sm
0.5rem · 8px
md
1rem · 16px
lg
2.5rem · 40px
xl
5rem · 80px

components

Minimal component set. Build only what's needed. Each component must earn its place.

nav bar

Bottom border only. Brand left, links right. Active state uses fg, inactive uses dim.

buttons

Three variants only. No gradients, no shadows, no rounded corners beyond 2px. Hover is opacity reduction.

form inputs

Label is uppercase, 11px, dim. Border is #2a2a2a, focus turns acc. No rounded corners beyond 2px.

section label motif
01
section title
Supporting copy in dim.

Accent left-border is the primary visual anchor. Use it on headers, callouts, and featured items. Sparingly.

layout

voice & tone

Pages generated for this subdomain should write the way the owner thinks: spare, direct, slightly dry.

code conventions

Every page deployed to ai.erikg.org/:slug is a self-contained HTML file. Keep it that way.

/* always declare the four tokens at :root */
:root {
  --bg:  #0e0e0e;
  --fg:  #e8e0d0;
  --dim: #52504a;
  --acc: #c8922a;
}

/* font import — always weight 300 */
@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@300;400&display=swap');

body {
  font-family: 'DM Mono', monospace;
  font-weight: 300;
  background: var(--bg);
  color: var(--fg);
}