Keith Grant recently released a brand new book on CSS: CSS in Depth. If you're looking for a book focused specifically on learning CSS, you've found it. I was happy to write the foreword for it, which I'll republish here.
"A minute to learn... A lifetime to master." That phrase might feel a little trite these days, but I still like it. It was popularized in modern times by being the tagline for the board game Othello. In Othello, players take turns placing white or black pieces onto a grid. If, for example, a white piece is played trapping a row of black pieces between two white, all the black pieces are flipped and the row becomes entirely white.
Like Othello, it isn't particularly hard to learn the rules of CSS. You write a selector that attempts to match elements, then you write key/value pairs that style those elements. Even folks just starting out don't have much trouble figuring out that basic syntax. The trick to getting good at CSS, as in Othello, is knowing exactly when to do what.
CSS is one of the languages of the web, but it isn't quite in the same wheelhouse as programming. CSS has little in the way of logic and loops. Math is limited to a single function. Only recently have variables become a possibility. Rarely do you need to consider security. CSS is closer to painting than Python. You're free to do what you like with CSS. It won't spit out any errors at you or fail to compile.
The journey to getting good at CSS involves learning everything CSS is capable of. The more you know, the more natural it starts to feel. The more you practice, the more easily your brain will reach for that perfect layout and spacing method. The more you read, the more confident you'll feel in tackling any design.
Really good CSS devs aren't deterred by any design. Every job becomes an opportunity to get clever, a puzzle to be solved. Really good CSS devs have that full and wide spectrum of knowledge of what CSS is capable of. This book you have is part of your journey to being that really good CSS dev. You'll gain that spectrum of knowledge necessary to getting there.
If you'll permit one more metaphor, despite CSS going on a couple of decades old, it's a bit like the wild wild west. You can do just about whatever you want to do, as long as it's doing what you want. There aren't any hard and fast rules. But because you're all on your own, with no great metrics to tell you if you're doing a good job or not, you'll need to be extra careful. Tiny changes can have huge effects. A stylesheet can grow and grow and become unwieldy. You can start to get scared of your own styles!
Keith covers a lot of ground in the book, and every bit of it will help you become a better CSS developer and tame this wild wild west. You'll deep dive into the language itself, learning what CSS is capable of. Then, just as importantly, you'll learn about ideas around the language that level you up in other ways. You'll be better at writing code that lasts, is understandable, and performant.
Even seasoned devs will firm up their skills here. If you find yourself reading about something that you already know, you'll firm up your skills, affirm your knowledge, and find little "oooo" bits that surprise you and extend that base.
Here's that link to buy it again.