npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

total-reset

v0.1.1

Published

A semantic CSS reset that goes all the way

Readme

total-reset.css

A semantic CSS reset that goes all the way.

npm license

total-reset.css takes the cross-browser fixes from the venerable normalize.css but removes all of the opinionated base element styling, sets all elements to display: block and box-sizing: border-box, and generally tries to provide a sane, unstyled default to every HTML element.

Note: total-reset.css follows semantic versioning and as donated by the 0.x.y version is still in active development, so please test it before deploying to a production site! If you do find a bug or want to suggest an enchancement, please file an issue.

Supported Browsers

total-reset.css supports the latest 2 browser releases for the following major browsers:

  • IE/Edge
  • Firefox
  • Chrome
  • Safari

What Total Reset Does

Normalizes Styling and Fixes Bugs Across Different Browsers

Many elements have slightly different default styles on different browsers, and some browsers have subtle styling or user experience bugs. total-reset.css tries to normalize those styles to a sane default and fix these bugs. Many of these fixes are taken from normalize.css, so full credit to Nicolas Gallagher, Jonathan Neal and the other normalize.css contributors.

Sets box-sizing: border-box on All Elements

Border-box sizing is much more intuative to use than content-box in most cases and encapsulates the padding and border in the element being styled, leading to more modular components.

total-reset.css uses Jon Neal's inherit-based box-sizing reset method.

Sets display: block on All Elements

Inline vs inline-block vs block display is a visual layout style that has nothing to do with the semantic meaning of the markup, so it makes little sense to have some elements display block and others display inline because those elements might be styled differently in different contexts.

Most elements are already block display and block display tends to have the least-surprising layout behavior, so the default for all elements is set to display: block.

The only exception to this rule is checkboxes and radios since most browsers don't allow changing the display of those elements.

Sets Inheritable Properties to inherit

Many CSS properties, such as font-size, text-align, etc. are inhertiable, meaning that if an element does not specify the value of the property (or specifies a value of inherit) it will inherit the property value from its closest ancenstor which explicitly sets the property value.

total-reset.css tries support this property inheritance behavior where possible and sets inheritable properties to inherit for elements that have explicit values set by the browser.

Why Not Just Use normalize.css?

normalize.css is great if you need a quick basis for your theme that you know is reliable across different browers. But as your website or webapp grows you'll quickly find that the global, opinionated base styles that normalize.css provides get in the way of writing semantic, modular HTML.

The major problem with default element styles is that it ties styling to semantic meaning which makes reusing those styles in different contexts difficult and encourages web developers to write unsemantic HTML. How many times have you had to override color, text-decoration and hover states on a wrapper <a>? Or had a web developer use multiple <h1> tags on a page because they had the largest font-size? These are all symptoms of tying your styling to your semantics.

Credits