The official book of California Stylesheets

YOU SUCK AT CSS

(and that's okay)

It's a book about writing CSS.
And not writing CSS.

You suck at cargo cults

Cargo cults are great so long as they’re internal.

Here’s the thing: The stack is too big. Each individual part of the stack is too big. You can’t learn everything, or even a full part of everything.

You can be really good at a small slice of everything, but even then you’re going to have blind spots.

For everything outside of the slice, you have cargo cults to help you get by.

For those not in the know, cargo cults are named after a style of pants. In the 90s it suddenly became fashionable to put as many pockets onto pants as possible. These “cargo pants” showed up everywhere, usually in khaki but occasionally in the jort variety too (my favorite).

People who wore these pants would then create replicas of the airplanes and-- On second thought, I could have some details wrong here. Maybe check Wikipedia. See if they have an article on jorts while you’re there.

‘Cargo cult’ in tech means a group of people mindlessly copying without substance.

There are a lot of cargo cults in tech.

The point here isn’t to extinguish the cargo cult behavior, but to turn it inward. You should, 100%, without a doubt, be mindlessly copying your own project’s conventions. It’s what they’re there for. That’s what conventions are!

There’s no “right way” to do things in this mindset. Just the way we’re doing things now.

Without this, if you add a new service to your project every three months for two years, you’ll have an archaeological dig to search through, a historical collection of “best practices” for creating a service, according to the internet of that time.

Copy/pasting from Stack Overflow is great, but copy/pasting from your own project is perfect.

Remember that a lot of behavior in web development that looks lazy usually has rational thinking behind it. It’s hard to keep up with it and be good at it. This makes sense, I promise. The best developers are always balancing ‘current’ with ‘good’ while leaning heavily towards ‘good.’

Coding is hard. Optimizing and architecting are hard. Software developers are usually only good at one of these three. The most important one for CSS is, by far, architecting. CSS Architecture and internal cargo cults are a dynamic duo for the ages.

Copying what’s there when what’s there is well architected and well thought out? That’s a pattern for project success.

Software developers hardly ever know anything. Even in the old days they had shelves full of books to hold all the knowledge they pretended to have on-hand in their memory. We talk about imposter syndrome in the tech industry all of the time because we are all actual, literal imposters pretending to know an unknowable amount of information.

But it’s fine. Being good is overrated. Having too many good people with overlapping slices of everything can actually be bad for your project, because then the cargo cultists get confused.

It’s maybe weird to think of the entire tech industry as the blind leading the blind leading the blind, but that’s what it is. The teams who realize they’re blind do better.

Occasionally someone will come along who is good at two or three of those three things: Coding, optimizing and architecting. People like this should remember that the max number of things you can be a jerk about is one, even if you’re good at more than that.

Being a jerk in this case means proposing your own standards as the project standards. Not imposing. Proposing.

Repeat after me: “Tests are great, but this project doesn’t need them.”

Fix it with CASS

CASS is easy to copy. If someone sees the conventions used in a project, they can produce novel markup on their own in the same style pretty quickly.

It’s generic and easy to remember. It makes for a great internal cargo cult.

The solid underlying conventions give designers more room to work on making an impressive last 5%.

Consider nullifiers like no-padding and no-margin. Even if you didn’t know the word “nullifier” as a CASS convention, or that there are a whole bunch of “no-” classes, you would still know what the class does if you saw it. You’d still know it was a utility class for generic use on any element. You might guess that there are others like no-border or no-shadow.


Next Chapter: Design »

Like the book? Buy it over on Gumroad.

Pay what you want!

The Gumroad version contains a secret chapter that spills the dirt on CSS preprocessors, a tech CASS no longer uses.

California Stylesheets is the awesome CSS file/framework referenced in the book. Get your own California Stylesheet here.

Go to CASS