Justice for CSS

Published September 21, 2026 · Category: Tech

Overview

For decades, CSS (Cascading Style Sheets) has occupied an awkward position in the developer hierarchy. It styles the web — controlling layout, color, typography, spacing, and responsiveness — yet it's routinely excluded from the definition of "real programming." Developers joke that CSS doesn't count because it has no loops or variables in the traditional sense, and job postings sometimes separate "engineering" roles from "styling" or "front-end" work as if the latter requires less skill. This piece is a defense of that maligned language, and an argument that the dismissal says more about tech culture than it does about CSS itself. Visit robosino.com

The "Not Real Code" Problem

The stigma around CSS usually comes down to a narrow definition of programming: if a language doesn't have conditionals, loops, and functions in the way JavaScript or Python does, some engineers argue it isn't a programming language at all — it's a styling or markup language. That framing ignores how CSS actually behaves in production. Modern CSS includes calculations (calc()), conditional logic through media and container queries, variables via custom properties, and increasingly complex layout systems like Grid and Flexbox that require real algorithmic thinking to use well.

Why CSS Is Harder Than It Looks

Anyone who has debugged a specificity conflict, fought the cascade, or tried to make a layout behave consistently across five browsers and a dozen screen sizes knows that CSS has a steep, often invisible learning curve. Unlike a script that either runs or throws an error, CSS fails silently — a misapplied rule doesn't crash the page, it just quietly breaks the design, which can make bugs harder to trace than in languages with strict error handling. Writing maintainable CSS at scale, across a large team and codebase, is its own discipline with its own best practices, from BEM naming conventions to utility-first frameworks.

Gender, Status, and the Front-End Divide

The dismissal of CSS doesn't happen in a vacuum. Front-end and design-adjacent work, including CSS, has historically been associated with the visual and aesthetic side of the web — work that has often been staffed by, and coded as belonging to, women in tech. Meanwhile, "harder" backend and systems work has carried more prestige and, often, better pay. The joke about CSS being the "girliest" programming language points directly at this dynamic: skills get devalued not strictly on technical merit, but partly on who is perceived to do them.

Why the Conversation Is Shifting

As CSS has grown more powerful — with native nesting, container queries, and advanced animation capabilities added in recent years — it's become harder to argue that it's a lesser skill. At the same time, broader conversations in tech about gender bias, pay equity, and whose labor gets recognized as "technical" have put pressure on old hierarchies. Defending CSS is, in that sense, part of a larger reassessment of what counts as skilled engineering work.

FAQ

Is CSS a programming language? It's a domain-specific declarative language for styling, distinct from general-purpose languages, but it includes logic-like features (variables, conditionals, calculations) that go well beyond simple markup.

Why do some developers look down on CSS? A mix of narrow definitions of "real" programming and longstanding gendered assumptions about which tech skills carry prestige.

Source

Originally published at www.wired.com.

Related Articles