/design-system

Design system

The visual rules for ilovethatfish.com. Field-guide clarity with a warm, hobbyist tone. Two fonts, one accent, one warm counter-accent, light and dark themes.

Color

Background --bg Page
Surface --surface Cards, header
Ink --ink Text
Muted --muted Secondary text
Line --line Borders
Accent --accent Links, buttons, tags
Accent soft --accent-soft Tag fills
Warm --warm Labels, cautions

Type

Sora for headings (500–700). Public Sans for everything else (400–600). Scientific names always italic, muted.

Sora 700 · 56/1.05 Every aquarium fish, identified.
Sora 700 · 36/1.1 Page title
Sora 600 · 22/1.2 Section heading
Sora 600 · 15/1.3 Card title
Public Sans 400 · 17/1.65 Long-form body copy for entries and posts.
Public Sans 400 · 15/1.55 Interface body text.
Public Sans 600 · 11 caps FACT LABEL · 0.08EM

Spacing & shape

4px
8px
12px
16px
24px
40px
64px

Page gutter 40px desktop, 20px mobile. Cards 6px radius, images 4px, chips and buttons full pill. Borders 1px var(--line); no drop shadows inside the page.

Light and dark

Dark is a separate palette, not an inversion. Accent lightens to keep 4.5:1 on dark surfaces; the accent-ink flips to near-black so buttons stay legible.

TokenLightDark
--bg #F7F5EF #0F1716
--surface #FFFFFF #172120
--ink #16211F #ECEAE3
--muted #5F6B69 #98A6A3
--line #E1DCD0 #263230
--accent #1F6F78 #63B7BC
--accent-ink #FFFFFF #0B1F21
--accent-soft #E2EEEF #153433
--warm #C4653A #E28D62
--warm-soft #F6E7DC #3A2419

Mobile

One breakpoint at 700px. Below it every template becomes a single column. The type scale is unchanged except the hero heading; touch targets are 44px; the page gutter is 20px.

ElementDesktopMobile
Gutter 40px 20px
Hero h1 56px 38px
Nav Inline links Menu button + list
Theme toggle Header pill Menu row + footer
Sidebar 300px right Below article
Fact grid auto-fill 150px 2 columns
Hit targets 36–44px 44px minimum