Minimal CSS Reset


While this tutorial has content that we believe is of great benefit to our community, we have not yet tested or edited it to ensure you have an error-free learning experience. It's on our list, and we're working on it! You can help us out by using the "report an issue" button at the bottom of the tutorial.

Your CSS reset rules don’t have to be a mile long, and most modern browsers are now pretty uniform with their base layout. Below you’ll find what I judge to be a good minimal effective dose for a reset. Just copy it in your new projects and you’ll be up and running.

🔖 Bookmark this page for a quick & easy reference

Here’s the CSS reset:

html {
  box-sizing: border-box;
  font-size: 16px;

*, *:before, *:after {
  box-sizing: inherit;

body, h1, h2, h3, h4, h5, h6, p, ol, ul {
  margin: 0;
  padding: 0;
  font-weight: normal;

ol, ul {
  list-style: none;

img {
  max-width: 100%;
  height: auto;

A few things to note

  • As you can see, I’ve included a rule so that images are responsive by default.
  • Arguably the most important part of this CSS reset is the box-sizing: border-box, as this will ensure consistent and predictable sizing. The default value of content-box doesn’t account for the padding or border.
  • You can remove the rule for ol and ul if you want to keep the default bullet points for your lists.
  • With font-weight: normal headings won’t be bolded by default. Remove that if you don’t mind the default look.
  • I’ve set the default font size to be 16px. Everything else can be specified in rem units and it will be based off of that 16px. Then, if you want to adjust globally to make the text a little larger overall, you can change the base rule for something like 17 or 18px.

🙈 Think something is missing? Get in touch here to let us know!

Creative Commons License