I love dark mode. It is elegant, beautiful, and instantly elevates the user experience. Although, it is a lot of work to get right as a solo-developer without a CSS framework.

You have to get the color schemes right, add classes for dark mode elements, and sprinkle some JavaScript to make it all work. Here is a basic implementation of how to do it yourself.

I recently discovered the halfmoon CSS framework and instantly fell in love. It is all the good things that come with bootstrap, but with Dark mode implementation and easy customization.

Between Tailwinds and halfmoon, I find myself much more at ease with halfmoon as a Django developer.

This is meant to be a review of my experience with it, building joyful.gifts — a relatively complex and a large project.

The Good

  • Dark mode naively supported. As easy as putting a button in.
  • Easy customization. Just override whatever variables you want to customize in a style tag. And you are done!
  • Delivery over CDN even with customization. No downloading packages, or bloat. Just one CSS file, and one JS file.
  • Bootstrap like documentations and classes. Documentations and intuitive naming is a huge strength to any framework, and I love how halfmoon went about their documentation and naming.

What’s missing!

  • Some bootstrap features — I really missed the Carousel from bootstrap.
  • Templates to plug and go (or buy and go).

But wait…there’s more

Doing dashboards for SaaS or SaaS-like web application like joyful.gifts is time consuming and prone to errors. Well — halfmoon gives you a dashboard, ready for you to take and customize in the documentation — completely free.

Closing thoughts

I was not involved in the development of halfmoon or confident enough in my CSS abilities to contribute. The least I can do is to spread the word of this amazing piece of open-source software. It definitely doesn’t get as much attention as it deserves!

If you liked this article and want to see more — Let me know. I would like to continue exploring the tech used in joyful.gifts and your words of encouragement or spreading the word about the project would go a long way.

I do a couple of things → JonathanAdly.com

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store