Michael Mulek /

[AI] Dev Log #4: Fonts, Logos, and Smoother Hovers

Outfit and Lexend as the site's fonts, the wordmark on the home page and the >m_ mark in the footer and 404 page, and every hover easing in.

#dev-log #design #content

Summary

  • Dates: October 17, 2026
  • Commits: 10, all on the dev branch
  • Files changed: 23 (+231 / −35 lines)
  • Status: PR #12 merged to master and deployed; everything here ships with the PR that publishes this post

This round was about the site’s identity: its fonts, where the logos go, and how hovers feel.


What changed

Fonts

  • Headings, the header nav and the menu use Outfit, which matches the wordmark’s round letters
  • Everything you read uses Lexend
  • Code-style text (the clock, git clone, card labels) uses JetBrains Mono
  • All three are bundled with the site, so there are no outside font requests
  • The header nav links are semibold, like the menu’s

Logos

  • The mulek✦cc wordmark sits top left on the home page too, and is a little smaller on phones everywhere
  • The wordmark swaps its colors on hover: pink letters, a lavender star
  • The >m_ mark sits in the footer, and large on the 404 page with a blinking cursor
  • The menu button and theme toggle are lavender, like the wordmark

Hovers

  • Every link, button and icon eases its hover color over 0.4 seconds instead of snapping
  • Cards lift at the same speed
  • Links inside posts and project write-ups are lavender and turn pink on hover

Content

  • The site uses “Michael Mulek”, without the middle name
  • Pet names stay on the same line as their punctuation, and the git clone arrow stays with its address

What we learned

  • The site never set a font. It used each device’s own: Segoe UI on Windows, Roboto on Android, San Francisco on Apple devices, so it looked different everywhere.
  • What looked like a different font was a different weight. The header nav was regular while other links were semibold.
  • Fonts can be bundled instead of loaded from Google. Fontsource packages ship the font files with the site, and browsers only download the parts a page uses.
  • Two fonts can split the work. Outfit carries the brand in headings, and Lexend, made for easy reading, handles paragraphs.
  • A logo should stay put. Showing the wordmark or the mark at random would have kept visitors from learning either; each now has its own place.
  • A transition has to be asked for. Only some elements eased their hovers; one base rule now covers every link and button.
  • Spacing can hide in the markup. The footer’s odd gap came from the logo’s built-in padding and a line break that the text kept as a blank line.
  • New fonts change where lines wrap. Wider letters pushed a comma and an arrow onto lines of their own, so those now stay with the word before them.

Commits

On dev (ships with this post)

CommitMessage
c9915a6feat(brand): put the wordmark on the home page and the >m_ mark in the footer and on the 404 page
22e91efstyle: ease every hover over 400ms, and swap the wordmark’s colors on hover
42bf0acchore: use Michael Mulek, without the middle name
bed82cbdocs: document the logos and hover changes
ff642a6style(projects): use the shared hover speed for the Read more arrow
aad1c7astyle(header): make the nav links semibold, like the menu’s
5466158fix(about): keep each pet’s punctuation and the git clone arrow from wrapping onto their own line
826eb0efeat(fonts): use Outfit for headings and Lexend for text, bundled locally
f935ecedocs: document the fonts

Plus the commit that adds this post: docs(blog): add Dev Log #4.


Next up

  • Move the shared page shell (header, footer, background) into the main layout
  • Pre-render pages at build time for faster loads
  • Per-project link preview images
  • Flesh out the project write-ups

🔗 Repository: github.com/copperpocket/mulek.cc