Skip to content

substrate-system/css-normalize

Repository files navigation

CSS normalize

semantic versioning Common Changelog install size dependencies license

Reset/normalize styles for a nice blank slate.

See joshcomeau.com/css/custom-css-reset

These days, browsers don't have massive discrepancies when it comes to layout or spacing. By and large, browsers implement the CSS specification faithfully, and things behave as you'd expect.

Featuring:

  1. box-sizing: border-box; -- Sizes based on barder-box, not content-box.
  2. margin: 0 -- Remove default margin. Add margins as needed in application CSS.
  3. line-height: calc(2px + 2ex + 2px); -- Dyslexia friendly line height.

Note

You may want to override the line-height for headings in your application CSS. See this article for more info about line-height.

  1. -webkit-font-smoothing: antialiased; -- Chrome and Safari still use subpixel antialiasing by default, which is bad on high DPI screens.
  2. Use block display by default for media tags, like img and video.
  3. Inherit fonts for form controls

font is a rarely-used shorthand that sets a bunch of font-related properties, like font-size, font-weight, and font-family.

  1. Avoid text overflows -- Permission to use hard wraps when no soft wrap opportunties can be found
  2. Improve line wrapping -- widows and orphans
  3. Root stacking context -- OPTIONAL -- Create a new stacking context without needing to set a z-index. See What The Heck, z-index??

bonus

Contents

install

npm i -S @substrate-system/css-normalize

Use

bundler

If you are a bundling your CSS, e.g. with vite, just import from this module in your javascript:

import '@susbtrate-system/css-normalize'

Or import the minified CSS:

import '@substrate-system/css-normalize/min'

pre-bundled

This package includes minified CSS also.

  1. Copy the CSS so it is accessible to your web server. The minified file is at dist/index.min.css.
cp node_modules/@substrate-system/css-normalize/dist/index.min.css ./public/normalize.css
  1. Add a link in your HTML.
<head>
  <link rel="stylesheet" href="/normalize.css">
</head>

<!-- ... -->

See also