About Simplicity CSS
While there is no reason to create your own CSS framework in today's day of awesome CSS frameworks like Materialize CSS, Bootstrap, Foundation, Tailwaind, etc, I wanted to make my own. Call it the developer itch to have something that is yours, completely. Something that you can use and be proud of. Something that you have no one else except yourself to blame for the terrible design decisions that were made.
I had several reasons for wanting to build my own CSS framework.
- Curiosity
- Self-Improvement
- Practicality
Curiosity
While curiosity may seem like an odd reason to make a CSS framework, hear me out. With the amazing CSS frameworks that already exist today, I've never had to deal with making a CSS framework. The ones that already exist are amazing enough that you pick one up, learn it, and promptly ignore the underlying CSS. Once you start learning a framework, you forgot the CSS that went into making it.
In my opinion, this is a great thing. It speeds up development time, decreases the barrier to entry for those who don't know CSS well, and provides a consistent look across websites. Unfortunately, they also prevent a lot of people from exploring how CSS really works, and often for good reason: CSS is complicated!
The amount of things that CSS can accomplish is amazing, and they keep increasing with each passing year. Not only are there base CSS files in the wild, but there are now compiled CSS sheets (a'la SCSS and others) that allow you to treat CSS like a fully functional programming language. This huge complexity is easily overwhelming for anyone starting in the CSS world. Hence, my desire to learn how CSS works... make my own framework with a bare CSS file, no frills, whistles, or compiling to be seen.
Of course, I may move things over to SCSS in the future. SCSS is amazing, and it'd be a shame not to use it.
Self-Improvement
It's a little known fact about me that I dislike working with CSS. Making things look pretty is a pretty boring process to me. I'd much rather work on the back end and get the site itself to work well. This is evident in how I approach websites nowadays with an API driven development process.
Unfortunately, this has left my websites looking like crap. They work well, but you might not always expect it if you saw them in the wild. A large part of the problem is my desire to "fully understand" the code that I'm using. I've been shying away from using CSS frameworks out of a stubborn desire to make my own first, and then I'd feel like I knew enough to use one. Since I'm tired of my sites looking like crap, it's time for me to make a framework for me to use in making my sites look better.
Making a framework is hard [citation not needed], but I think it is worth it. Even though the framework is nowhere near complete yet, I've come to have a great appreciation for the frameworks that exist already.
Practicality
I know how I tend to approach problems. Given the choice, I enjoy using the tools that I have made and finding out how to improve them. I know that if I build myself a CSS framework to use for sites, I'll begin to improve it as I inevietably start using it for more sites. This would make working with the CSS less of a chore because I'm not retreading the same ground every time I make a website.
In addition to the fun that I'd have in making the framework better, I would also see my site design time decrease since I wouldn't be trying to make design decisions over and over again. For example, one point of building a website that I always have issues with is designing a good, functional navbar. I've managed to do so several times, of course, but having to figure out how to do so each time is a pain. I usually end up copy/pasting code from one site to another and having to spend much time modifying since my design decisions have since changed.
Using a CSS framework would also allow me to make my sites far more consistent. While keeping a consistent look isn't the biggest reason for me, it would help in cueing people in to the fact that a site was designed by me.
Finally, creating a CSS framework that I use would make designing a website fun again. I can focus on how the design looks without worrying about the design decisions underlying the process as much. Rather than ask "How in the world and I going to accomplish this task this time", I can simply use the framework to do so.
Licensing
Simplicity CSS is an open source CSS framework that is covered by the MIT license. While I do not currently have the code available on github yet, you are free to copy the CSS from here for your own use. In accordance with the MIT license, please attribute the CSS to me in your work. This is simple enough if you are including the entirety of the CSS file in your work since the CSS file includes both the MIT license and the attribution.
Attribution within documentation in the form of "Simplicity CSS: © 2023 Ephreal (MIT License)" is acceptable.