After a number of project redesigns throughout the years, redesigning three 20+ page sites, I started coming up with a different way to do CSS. BEM, ITCSS, OOCSS – they weren’t working for me or my team.
It started with the issue that headings were designed certain ways but tying the look of these headings to designs AND making them semantic and accessible HTML across the entire page was problematic. Design wise, the page would look fine, but the page heading order would be something like: h2, h1, h2, h4, h4, h3 – you get the idea. So the idea was to decouple styles from semantics. Specifically, look and feel should not be tied to any DOM element selectors.
Combining some things I learned from Foundation, Bootstrap, and Flexbox, I created a utility-based CSS system. I called it Maverick.
I used it for more projects and was convinced it was the future of CSS. It was great! I pitched the idea to my team – it was a difficult sell because it went directly against how we’re taught to do CSS. But they were open to the idea and adopted it as part of their codebase. I think it’s been working out well and I see very few drawbacks using it. I still think it’s the future of CSS.
This is not part of the story but related – after doing more research, I found out someone else, Adam Wathan, had already created a CSS methodology and system similar to Maverick, called TailwindCSS. While I don’t agree with everything in TailwindCSS, it’s identical in theory and about 90% the same. If you’re looking to try this CSS technique, give TailwindCSS a try.
Anyway, the point of this story was that I had to challenge what I knew and what I was taught regarding CSS. I had to have the confidence to do something I felt was right, despite being against everything I was taught and what my team believed in. This project, Zero System, will be an extension of this confidence and direction. Challenging what I knew or thought I knew. Doing some things that, I already know, will be unpopular decisions.
On the plus side, I’m re-evaluating things that I always wanted to know about and/or going back to things that I found difficult. I’m specifically learning more about performance and I hope to learn more about Design Patterns, APIs, HATEOAS, Python, and Postgres.
On the negative side, it’s taking me quite a while to get started on this project. I have the idea in my head but executing it and using new technologies, has become a bit of a blocker and a burden. Still, I hope to come out wiser after all this and in the end, isn’t that what it’s all about?