June 2025 release notes

User avatar for Bart Veneman Bart Veneman in blog

‘Only’ 20 releases on the website this month but also lots of releases outside in our open source projects. Strap yourself in for a big list!

New features

Analyze spacing resets.

Sparked by Ana Rodrigues’ talk on CSS Day which showed that she used Project Wallace (yay!) and CSSStats for auditing purposes. Turns out CSSStats does CSS resets analysis which we didn’t offer before. Now we do (since @projectwallace/css-analyzer@7.2.0) with some improvements over CSSStats’ implementation:

  • Also check for logical properties (margin-inline, padding-block-start, etc.)
  • Account for zero values that have a unit (0px, 0.0vh, etc.)
  • Account for shorthand values that are all zero (0 0 0 0, 0px 0 0em 0.0px)
A table showing CSS spacing resets found on a page.
Spacing resets can be considered a code smell sometimes.

Analyze nesting depth

Initially sparked by the Web Almanac CSS chapter, this has been on my wish list for years and I finally got to it. It wasn’t even that hard to be honest so I’m a little disappointed in myself for not implementing this sooner. @projectwallace/css-analyzer@7.4.0 has all the details and the website now shows how deep you’re willing to go with your CSS.

A table showing CSS nesting depths found on a page.
Oh, Adam, you're different than the rest of us

Atrule composition

For a quick overview of what your atrule game looks like you can look at the new atrules composition chart. It shows an overview of which atrule was used how often. Neat way to get a quick view of the landscape before you dive deeper.

A table showing CSS atrules found on a page.
Oh look, this looks like modern stuff. Look at how many @property and @layer atrules.

New CSS design tokens library

Our design tokens page has had a panel for design tokens for a long time but now the output is more compliant with the Design Tokens specification. The code to create these tokens moved to a new package @projectwallace/css-design-tokens and it also powers the design tokens page it was extracted from.

CSS Selector complexity calculator page

Because I sometimes wish I had it. Nothing more. The CSS analyzer page shows a graph and table of selector complexity. Because of that it makes sense to offer a standalone tool to test individual selectors quickly.

The complexity calculator showing the complexity of a long selector

Updated features

  • When Adam Argyle comes on stage at CSS Day you know you’re up for some great takeaways. This year Adam did a talk on scrollers and my first goal was to fix the ugly scrollbars that appear absolutely everywhere! I highly recommend you watch the talk when it appears on CSS Day’s YouTube channel. Until then you can check out the slides on Adam’s website.
  • Implemented additional error boundaries and error logging. Sentry kindly offers an Open-Source Sponsorship Plan which allows me to do more fine grained error logging than I could in the free plan. Thanks Sentry for sponsoring!
  • We do a ton of syntax highlight across this website but the highlighting in docs and blog posts looked different from everything else. Well, no more!
  • The Prettify CSS page now also allows indenting with spaces. But tabs are still default.

Bug fixes

  • A while ago (February 2025) we implemented persisted state when navigating from one tool to another: you no longer need to re-enter your URL and hit that button. The page would remember it for you. Great! Unless you were going to the CSS Scraper page. It would forget. What an odd one. Well, that’s fixed now. Going to get-css keeps the CSS you’ve scraped before.
  • Syntax highlighting the CSS input field on the AST Explorer page would often fail miserably. Now it fails less often and a little less miserable.
  • When searching for a custom property that contained an uppercase character you’d always be disappointed. Not just by how life treats you but also because Wallace was shit at comparing characters. I taught him a lesson and it’s such a good boy at finding your properties now.

Dependencies

  • Updated @bramus/specificity to 2.4.2 to fix a crash that would sometimes occur when people write CSS like :nth-child() or :has() without any contents inside the parentheses. Happens to the best of us.

Website analytics

Dashboard overview of Counterscale website analytics for this website over the month June of 2025

Every time I think the monthly update is going to take a little while to put together and every time I am amazed at how much work it is to slap together all these links, images and ramblings into a somewhat coherent post.

Back to blog

Popular posts