Design System

Brutalist Industrial — The visual language of Pumpkin Hub.

Philosophy

The Pumpkin Hub design system draws from the "Brutalist Industrial" aesthetic: a no-frills interface that reflects the modernity and rigor of the Rust language. Every visual decision follows these principles:

Color Palette

Background

TokenHexPreviewUsage
bg-base#0a0a0a
Main background
bg-elevated#111111
Cards, modals, callouts
bg-surface#1a1a1a
Hover, interactive elements

Text

TokenHexPreviewUsage
text-primary#ffffff
Headings, important text
text-secondary#e5e5e5
Body text
text-muted#a3a3a3
Descriptive, secondary text
text-subtle#737373
Labels, metadata
text-dim#525252
Tertiary text, placeholders

Accent

TokenHexPreviewUsage
accent#f97316
CTA, links, active states
accent-light#fb923c
Accent hover
accent-dark#ea580c
Accent active

Borders

TokenHexUsage
border-default#262626Separators, cards
border-hover#525252Hover state
border-accent#f97316Focus state, active selection

Semantic

TokenHexPreviewUsage
success#4ade80
Published, success, active
warning#facc15
In review, caution
error#f87171
Error, deletion
info#38bdf8
Information, link

Typography

Fonts

FontUsageWeights
RalewayHeadings, body text, navigation300, 400, 600, 700, 900
JetBrains MonoCode, badges, technical values, metadata400, 500, 700

Type Scale

LevelSizeWeightFont
H12rem (32px)900 (Black)Raleway
H21.4rem (22px)800 (ExtraBold)Raleway
H31.1rem (18px)700 (Bold)Raleway
Body0.875rem (14px)400 (Regular)Raleway
Code0.75rem (12px)400 (Regular)JetBrains Mono
Label0.65rem (10px)500 (Medium)JetBrains Mono

Line height: 1.7x for body text, 1.3x for headings.

Grid & Spacing

The grid system uses a 8px base unit. All spacing and dimensions are multiples of 8px to ensure consistency.

TokenValueCommon Usage
space-14pxMicro internal spacing
space-28pxMinimum gap, light padding
space-312pxBadge and tag padding
space-416pxCard padding, grid gap
space-624pxMinor section separation
space-832pxMajor section margin
space-1248pxBlock spacing

Components

Buttons

Two main variants, always with border-radius: 0:

Cards (Bento)

Badges

Inputs

PluginIcon

Displays a plugin's icon image or a 2-letter initial fallback when no icon is set. Used on plugin cards, detail pages, and explorer results.

Visual Effects

Noise Overlay

Very subtle SVG noise texture (3% opacity) applied on body::before with position: fixed and pointer-events: none.

Scanlines

CRT scan line effect via repeating-linear-gradient (4px amplitude, 3% opacity).

Orange Glow

Subtle box-shadow on focused or featured elements: box-shadow: 0 0 40px rgba(249, 115, 22, 0.15).

Grid Background

Orthogonal background grid (48px) in very light orange (3% opacity) to reinforce the technical/industrial aesthetic.