colophon

What this site is made of. If a page disagrees with this list, the page is wrong.

type

Six typefaces, one job each.

Poppinsmy name, the nav, page titles, headings
--font-display
Ian Cheung
growing up in hong kong
Crowd Pleaserthe big section titles (about me, my notes) and nothing else
--font-section
about me
Open Sansparagraphs, lists, buttons, the activity card
--font-body
I was born and raised in Hong Kong. I was relatively surprised by how little people know about the history of and way of life in Hong Kong.
Atkinson Hyperlegible Nextpage names in the story and class explorers
--font-tree
welcome to my story
growing up in hong kong
contact me
Caveathandwriting: the notes on the wall
--font-hand
hi ian, nice wall
Dototimestamps and access codes
--font-stamp
2026-11-07 13:08 PST
system monospacecode, and all body text when nerd mode is on
--font-mono
zola build && python3 main.py

Poppins, Open Sans, Caveat and Doto come from Google Fonts; Crowd Pleaser and Atkinson Hyperlegible Next are served from here.

colour

accent
green
green-ink
paper
surface
ink
ink-muted
ink-faint
line

icons

Phosphor, regular weight, inlined as SVG at build time. Emoji only where I typed them into the content.

photos

The background photos are mine.

stack

Pages are markdown built by Zola. A small Flask server serves the build and does the parts that need a server: the wall, the one-time codes, the editor I write the story pages in, the activity card (my Discord presence) and the message box on the home page, which signs you in with Discord and posts to a private channel of mine.

Everything runs in one Docker container on a VPS. A push to main builds the image, smoke-tests it and deploys it.

Source: github.com/iancheung0202/iancheung.dev.