We believe styling should be expressive, colocated, and predictable.
Today, we take that mission a step further with a new look designed to be as modern as the code CSS Hooks enables you to write.
Experience the evolution in the first reply. 👇
New framework strategy: "We've fixed all of React's problems! But to make sure you feel at home, we're keeping JSX."
What nobody realizes is that JSX is an anchor, not a lure.
After ditching JSX, polymorphic components are no longer a headache. Aside from terser syntax, you can avoid prop collisions, excess props, and other pitfalls of the `as` and `asChild` props.
The @remix_run team gets it:
"Designing for bundlers/compilers/typegen (and any pre-runtime static analysis) leads to poor API design that eventually pollutes the entire system."
Can't wait to check out v3!
TIL Pigment CSS is on ice because extra build steps are too much of a burden. Wishing @MUI_hq the best in their search for a low-friction styling solution with RSC support.
quick update regarding @CSSHooks
NO, it's not dead.
a lot of people are wondering why it doesn't receive daily updates like all the other styling solutions out there...
simple - because it "just works".
no need to mess with it.
In my first blog post of 2025, I explore a few reasons why the CSS cascade is generally something to avoid and what you can use instead. Please let me know what you think!
nsaunders.dev/posts/cascade-…
Just migrated my site to React Router v7! Configurable routes are a game-changer, and I was finally able to scrap my custom prerendering solution. Huge thanks to the React Router team! 🙌 Please take a look at issue 12495 though. 😉
Noticed something a little strange... 🧐
@bundlephobia reports the bundle size for the @CSSHooks core library as 861 B while @jsbundle has it at 779 B.
Which one is right? 🤔
Easy: Created with minimal effort
Simple: Understood with minimal effort
The problem with most software? People optimize for "easy" over "simple," making it harder to maintain in the long run.