Skip to content

Instantly share code, notes, and snippets.

@drwpow
Last active April 18, 2025 21:11
Show Gist options
  • Save drwpow/e4ff444706ccecafdc31673de463656a to your computer and use it in GitHub Desktop.
Save drwpow/e4ff444706ccecafdc31673de463656a to your computer and use it in GitHub Desktop.

CSS Toolchain Megalist

A list of all CSS toolchains ever made (parsers, preprocessors, and transformers, NOT style kits like Bootstrap).

Name Description Created Deprecated Notes
Sass GOATed preprocessor 2006 One of the oldest preprocessors still going strong in 2025, and has kept up with the times!
LESS Other popular preprocessor 2009 Still maintained, got a major uptick from Twitter Bootstrap, but you don’t see it as much as Sass.
Stylus Indent-based CSS preprocessor built in Node.js 2011 2024 Precursor to the Node.js wave of tools. Being too opinionated (unlike PostCSS) may have hurt its adoption, though some of its parsers did creep into later projects like Glamorous.
PostCSS A build-your-own CSS language ecosystem 2013 Paradigm shift to Node.js-dominated tools. There are multiple projects like Autoprefixer which converged into PostCSS which have storied histories I won’t outline here.
ACSS Atomic CSS toolchain 2015 2022? Still maintained, but largely seems to be eclipsed by Tailwind in 2025 (who credit ACSS as inspiration).
Aphrodite CSS-in-JS solution 2015 2018 Another CSS-in-JS prototype. Its popularity came from the fact that it predated most other solutions, but was eventually outpaced by Styled Components / Emotion.
Styletron First-attempt CSS-in-JS solution 2016 2018 Amidst the explosion of competing CSS-in-JS frameworks, this had a clunkier API. Was an inspiration for other frameworks, but more of a proof-of-concept for others to improve on.
Fela CSS-in-JS that generates atomic CSS 2016 2022 Ambitious project that tried to not only handle runtime (which was tricky enough) but also handle CSS optimization on-the-fly. Never reached the “Holy Grail” solution but not for lack of trying.
Styled Components Most popular 1st-gen CSS-in-JS solution 2016 2022? Technically still maintained, but usage has dropped since React Server Components which are incompatible.
Radium Another early CSS-in-JS solution 2016 2020 Simply lost popularity contest to Styled Components/Emotion for unclear reasons.
Glamorous Merged into Emotion 2017 2018
Emotion Styled Components’ successor 2017 2022? Also unofficially a dead end.
Stylable CSS Modules implementation with a few quality of life improvements 2017 2022? A weird departure from CSS Modules. Still in use by Wix but has been partially-deprecated.
Styled JSX Thin wrapper around CSS Modules designed for Next.js’ SSR 2017 Simple, elegant approach to give a little more utility over CSS Modules when using Next.js. Not too overengineered, but may leave some wanting more.
Linaria Zero-runtime CSS-in-JS 2017 Arguably the first CSS-in-JS approach that prioritized CSS. Still actively-maintained, though it didn’t have the explosive adoption some other solutions did.
Styled System Framework for building design systems in CSS-in-JS 2018 2019 Influential in its approach, but possibly ballooned out-of-scope. Trying to maintain support for multiple other popular CSS-in-JS libraries likely led to burnout, and the React Server Components debacle.
JSS Simple, no-fuss CSS-in-JS. 2019 2022 Still quite popular despite being unmaintained. It’s “dumber” than many other solutions, but that’s part of what’s given it staying power.
Tailwind Atomic CSS 2019 Passionately-loved utility CSS framework (and equally-hated by others). Though it’s part style kit, part design system, Tailwind also is a toolchain which is why it’s listed here.
Astroturf Zero-runtime CSS-in-JS 2019 2021 Fizzled out.
Panda CSS CSS-in-JS with runtime, but works with Server Components 2019 Still maintained, though there are still open issues and the roadmap is empty. Likely in “maintenance mode.”
Stitches (Almost) zero-runtime CSS-in-JS solution 2020 2023 Acquisition made maintenance hard (discussion)
tss-react Extension on top of Emotion 2021 2022? Adds smarter features on top of Emotion, but being dependent on Emotion, is tied to the same fate.
Vanilla Extract Zero-runtime CSS-in-JS, and successor of Stitches 2022 Possibly the most mature CSS-in-JS framework in 2025. Has framework adaptors like Sprinkles to make it even easier to use.
Lightning CSS Lightning-fast CSS parser/transformer written in Rust 2022 It’s more than a parser/compiler! It actually supports building your own CSS superset like @mixins)
StyleX A 3rd-gen CSS-in-JS framework nobody saw coming 2023 StyleX is an interesting framework that claims “no specificity issues” with some receipts to back up the bold claim. It also is very clear about its boundaries, in an improvement from previous CSS-in-JS failures.

Concepts

1st- and 2nd-gen CSS-in-JS

Since the famous 2014 talk on the problems of CSS, many open source solutions have attempted to solve the problems raised. The libraries that share these philosophies collectively became known as “CSS-in-JS,” referring to the way in which styles could more effectively be optimized when there was a more direct link to the markup using it.

The concepts of “1st-gen” and “2nd-gen” are made up by me to refer to recurring themes in the libraries.

The first wave of libraries—Styled Components, Emotion, and others—focused on mere proof-of-concept. They were the first to pioneer the approach and get it usable in production. But there were ultimately performance issues and design flaws, as outlined in one ex-Emotion maintainer’s bombshell blogpost.

The second wave sought to keep all the advantages of the approach while solving for performance, and led to “zero runtime” solutions like Linaria, Vanilla Extract, and others. This wave attempts to “have your cake and eat it too” by making it as performant as raw CSS, often through the use of transpilers and “compilers” (not in the traditional sense; the term “JS compiler” has come to refer to a number of techniques that involve producing more heavily-optimized JS beyond simple transpilation such as Svelte’s or React’s).

CSS Modules

“Why is that missing from the list?” you might ask. Reason is that CSS Modules is technically not a toolkit; it’s not even a spec. It’s more an alternative strategy to CSS-in-JS, sitting somewhere in between vanilla CSS and runtime-integrated framework. Heck, even major implementations may differ like it does in Vite.

Most CSS Modules implementations rely on PostCSS, but under-the-hood almost every usage differs ever-so-slightly, and there’s not one canonical solution to point to.

Atomic CSS

Also known as “Utility CSS,” this refers to a strategy that tries to optimize CSS by declaring each property once and only once. Tailwind is currently the most well-known implementation of this philosophy. It’s still an open debate whether or not this produces more efficient CSS, and opinions on developer experience are mixed as well (some love it, some hate it).

The major opposing strategy to Atomic CSS is a “Semantic Framework” like BEM or SMACSS that preach tighter coupling with design system components. Here, the emphasis is on meaningful naming for CSS, believing that maintainability always trumps premature optimization.

Atomic/Utility CSS’ frequently-cited drawback is it makes responsive design very difficult, a problem that Tailwind has slowly chipped away at over years. Tailwind’s current status in 2025 is the core responsive design needs are handled, but some edge cases are still impossible to pull off (e.g. container queries).

About

Criteria

“What gets mentioned? What gets omitted?” This is meant to be a list of toolchains. I’m defining a toolchain as “anything that transforms the output differently than authored.” For that reason, things like BEM, SMACSS, Bootstrap, Tachyons, and countless others are omitted. While they are CSS solutions, they are not toolchains because they merely guide you to author CSS in a particular way but do not transform or optimize anything written.

In other words, this list is significant because it can be seen as modifications (or supersets) of the core CSS language, rather than implementations or strategies. Also just for the purpose of archiving, including any/all stylekit or design systems would be overwhelming as they vastly outnumber the toolchains.

Lastly, there may be many toolchains that are closely-aligned with PostCSS, that may have accidentally or unintentionally merged with that project. If there are any that aren’t mentioned, either I just lumped it in with the csstools/PostCSS ecosystem, or I just hadn’t heard about it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment