Updates galore!
Itās been a while since the last project update. Iāve spent a bit of time working on a few new things, and Iām really happy with the result, so allow me to share!
More semantic CSS
One of my goals with the project was to make the CSS as minimal as possible while still looking great. While the first version was quite spartan, which is what I intended, I knew there was room for improvement.
I somewhat randomly ran into PicoCSS and I was tempted. I briefly considered switching to it, itās so small and nice! The problem is, itās over 60 times the size of the CSS I worte, and it has a lot of unnecessary stuff for this project. I can, however, learn from it! A cool thing I learned is the existence of the hgroup element. It can be used like so:
<hgroup>
<h1>Heading</h1>
<p>Paragraph</p>
</hgroup>
It provides the semantics of a āsubtitleā to the heading, but most importantly it allows for more semantic HTML and thus for a cleaner CSS without the need for a specific class or ID for styling purposes. Here is all the CSS we now need to make it look the same as before:
hgroup > :not(:first-child):last-child {
font-size: 1rem;
color: var(--bbg-secondary-text);
}
Only now, there is no āstickyā class needed! Yes, this might be obvious to many, but Iām not that great at CSS :-)
Updated dependencies and switching to Mustache
Dependencies have moved forward since my last post in April, so it was a good time for an update. There was one notable exception though: [Stencil], the templating library.
While powerful, itās currently unmaintained, and while there is a community fork, it just got started.
Since the web server Iām using is Hummingbird I thought Iād check what they use or recommend, which is Mustache. I had discarded it before, because it seemed so simple, but it turns out, it provides everything this project needs! Itās very minimalistic, which matches the vibe of the project.
New navbar
One of the things I didnāt like was the ānavbarā. It didnāt seem very polished, and the page links were not available on every post or page. With some CSS tweaks it now looks much better (in my opinion of course!) and itās more functional, as itās available on every page.
Theming and dark mode
This was something I wanted to do from the beginning, but hadnāt gotten to yet. All theming related options are now configurable in config.yml
like so:
# Theme configuration
theme:
light:
background: "#FAFAFA"
text: "#24292f"
link: "#0969da"
codeBg: "#f6f8fa"
border: "#d0d7de"
codeBorderLeft: "#2b2b2b"
secondaryText: "#57606a"
dark:
background: "#0d1117"
text: "#d9d9d9"
link: "#58a6ff"
codeBg: "#161b22"
border: "#30363d"
codeBorderLeft: "#6e7681"
secondaryText: "#8b949e"
# Default theme: "light", "dark", or "auto" (respects system preference)
defaultTheme: "auto"
So, some customization is possible, while remaining very minimalistic. I may continue tweaking the colors until I find the right tones, but you get the idea.
Dark / light mode, was obviously necessary. This feature requires a very small amount of JavaScript, but hey Iāll switch to something else if / when widely available.
ānewā CLI command
This was just a little quality of life improvement I wanted to have, a simple way to create new posts. Itās a very small command, but itās a nice addition to the CLI. Here is how it works:
$ bbg new
Enter post title: Test post
Enter post date (YYYY-MM-DD) [2025-10-07]:
Enter slug [test-post]:
Created: www/posts/test-post.md
Open in editor? [Y/n]: n
So thatās it, see you on the next post!
ā© Back