Jens Oliver Meiert

Get 15% off on select books on Gumroad—use discount code “testdrive”.

How Declaration Repetition Developed over Time, a Statistically Insignificant Sample

Post from February 7, 2018 (↻ June 1, 2021), filed under .

We know that there’s excessive declaration repetition in the Web’s style sheets, that each declaration is on average repeated 2–3 times, often needlessly. We know that this repetition is a little less bad on tech sites, but that we find it there as well. We have some ideas what causes the repetition and some on what keeps it at bay. We’ve observed it all ever since. Or have we? That’s what I wanted to probe.

What have I done? Try to find some popular sites that were actually around in 2002 (I wanted to pick a nice 20 years range, but good luck finding sample sites using CSS for that timeframe), analyze their 2002 CSS, their 2010 CSS, and that of today. Have a look.

CSS DRYness 2002–2018.

Figure: The lower the value, the more declaration repetition.

First, we need to take the data with a grain of salt not just because it’s a small sample, but because there’s also a chance that CSS Stats counts are off. I’ve only found one (manually resolved) incidence, namely Jeffrey Zeldman’s stats for 2002 when Jeffrey, indeed and unsurprisingly, already used style sheets, but it’s better to keep this in mind. (This site,, I retrieved data for, but only for my own information, and I excluded it from averages and charts.)

What can we see, then?

One thing really: That despite the small sample size and despite the “media-fication” of style sheets (that is, increased use of media queries that has had an adverse effect on DRY CSS in terms of raw declaration counts), CSS has always been WET, and that repetition-wise, not much has changed throughout the years.

Average CSS DRYness 2002–2018.

Figure: Slow deterioration.

The observation seems to confirm the idea what I’ve planned to expand on more thoroughly, that our development practices are still much 90’s style—no matter the sophisticated methods of pre-processing (per se unnecessary), consolidation (important), and compression (easy).

No less but also not more would I want to assert here. What comes to your mind?

About Me

Jens Oliver Meiert, on September 30, 2021.

I’m Jens, and I’m an engineering lead—currently manager for Developer Experience at LivePerson—and author. I’ve worked as a technical lead for Google, I’m close to W3C and WHATWG, and I write and review books for O’Reilly. I love trying things, sometimes including philosophy, art, and adventure. Here on I share some of my views and experiences.

If you have a question or suggestion about what I write, please leave a comment (if available) or a message. Thank you!

Read More

Have a look at the most popular posts, possibly including:

Looking for a way to comment? Comments have been disabled, unfortunately.

Cover: The Web Development Glossary.

Get a good look at web development? Try The Web Development Glossary (2020). With explanations and definitions for literally thousands of terms from Web Development and related fields, building on Wikipedia as well as the MDN Web Docs. Available at Apple Books, Kobo, Google Play Books, and Leanpub.

Stay up-to-date? Learn about new posts by feed or on Twitter.

Found a mistake? Email me,

You are here: HomeArchive2018 → How Declaration Repetition Developed over Time, a Statistically Insignificant Sample

Last update: June 1, 2021

Professional frontend developers produce valid HTML and CSS.