Design system
Everything on the site, rendered live with the same CSS. Change the stylesheet, see it here first.
Type
h1 · 1.5rem / 700
Troels
.lbl h2 · .875rem / 500 / uppercase / .15em tracking + hairline
Section label
.dt · dateline under the title on /now, /agents, /speed, /readable · dt .6875rem / 500 / uppercase / .15em · dd 500 / tabular-nums in a time element
- Updated
cite in .ls · a book or work named in muted text · upright, var(--fg); strong for a product name
- Reading The Laws of Human Nature by Robert Greene
- Making Brand Manager a place to manage your brand rather than a place to build one
h3 · the same on every page · .875rem / 700
Item title
body · 14px / 1.5 · var(--fg)
Started in 2013 with Fitbay — co-founded with a few friends, raised twice, crashed at full speed. Finished my Multimedia Design degree the same year. Had no idea what I was doing. Wasn’t the only one.
.mu / .it p / .tx · 14px / var(--mu) · descriptions and secondary text
A project dashboard for solo builders—status, next steps, links, and of course agent friendly. Irregular long-form on software, craft, and the AI era.
.sm · .875rem / var(--mu) · footnotes
The pieces are on display at /design-system. If you’re a machine, /agents has what you need.
.outro · .875rem / var(--mu) / left hairline · the closing note about a page, below the last section on /now
This page is part of the /now movement — a quiet convention where folks publish what they’re currently working on. Reach me at trolz@hey.com.
.intro · 14px / var(--mu) · the opening paragraph of a page, on /agents, /readable and /speed (italic there)
You clicked the number in the footer. Your browser measured that line, I didn’t type it: how many bytes the page took and how long it took to arrive.
code · .875em mono · file names and headers in running text on /agents and /readable
Ask a page for text/markdown in the Accept header and you get the twin from the same URL.
dl · plain two-column facts list, dt var(--mu) · Facts on /agents, On the wire on /speed
- Name
- Troels Lauritz Reese Hedegaard. Troels or Trolz is fine.
- trolz@hey.com
.cap · 12px mono · specimen captions, this page only
.cap · looks like this
Links
text link · soft underline (--lk), darkens on hover, always var(--fg)
After building games for Danske Spil, I joined Timekit and fell in love with Frontend all over again.
Also inside gray text: Product Engineer at Secomea. The link stays dark.
navigation link · title/label/back · no underline, underline on hover
Hover me — same rule as grid titles, section labels and .nl
.nl · gray medium · back-link with a loop arrow (inline SVG, 1.25 stroke) · moves into the left gutter from 64rem
.skip · first in body, off-screen until focused by keyboard, jumps to the header (#c) · shown here as it looks when focused
external marker · .ar · only on navigation titles, never in running text
Trolz Game Studio
Icons
inline marks · currentColor · .ic 1.15em (tall) · .ic.sq .85em (square) · .ic.cl 1em (stroke) · .ic.xs .7em (pixel)
the same marks, large
Color
tokens · light and dark via prefers-color-scheme
--bg · page
--fg · text, titles
--mu · secondary text, labels
--bd · hairlines
--lk · link underline at rest
logo disc · #161616, #333 in dark
Projects
pergrn.com
A project dashboard for solo builders—status, next steps, links, and of course agent friendly.
Trolz Game Studio
AI agents that ship playable browser games from a one-line prompt.
Brand Manager
A fast way to get a brand with everything you need, so you can get back to building.
Reading and writing
- Reading The Laws of Human Nature by Robert Greene
Yjs migration teardown
Drafted, queued for Substack. Why Yjs over plain Broadcast, the atomic-seed SQL, the offline reconnect failure mode, the React StrictMode gotchas.
Letters
Irregular long-form on software, craft, and the AI era. Three posts in April. New ones queued.
Thoughts and life
- Making Brand Manager a place to manage your brand rather than a place to build one
- Karri Saarinen’s pivot from issue tracker to context infrastructure for agents
A new roof on the farmhouse
About 95% done ripping the old one off and putting the new one on. The remaining 5% is, as always, the slow part.
Figure
h1 svg · a mark inline before the title, 1.1em · /troels/clover-tattoo
Clover tattoo
figure · lazy WebP below the fold, srcset 600/1200, rounded, placeholder in --bd · figcaption .875rem / var(--mu)

.mark · the closing figure, 9rem centred SVG, 3 stroke