A Sass port of normalize.css that provides cross-browser normalization with configurable variables and vertical rhythm mixins.
npx @tessl/cli install tessl/npm-normalize-scss@7.0.0normalize-scss is a Sass port of normalize.css v7.0.0 that provides cross-browser normalization styles with additional Sass features. It extends the original normalize.css with configurable variables, vertical rhythm mixins for consistent typography scaling, and flexible section-based output control.
npm install normalize-scssStandard Sass import:
@import 'normalize-scss/sass/normalize';Immediate import (outputs CSS directly):
@import 'normalize-scss/sass/normalize/import-now';@import 'normalize-scss/sass/normalize';
@include normalize();// Set variables before importing
$base-font-size: 18px;
$base-line-height: 27px;
$base-font-family: 'Helvetica Neue', Arial, sans-serif;
@import 'normalize-scss/sass/normalize';
@include normalize();@import 'normalize-scss/sass/normalize';
// Include only specific sections
@include normalize((document sections forms));
// Exclude specific sections
@include normalize($exclude: (embedded scripting));normalize-scss is built around several key components:
normalize() mixin with section-based filteringPrimary normalization functionality that outputs cross-browser CSS styles with optional section filtering.
/**
* Main mixin to output normalize CSS with optional section filtering
* @param $include - Sections to include (default: (all))
* @param $exclude - Sections to exclude (default: ())
*/
@mixin normalize($include: (all), $exclude: ());Available sections: document, sections, grouping, links, text, embedded, forms, interactive, scripting, hidden
Typography configuration variables that control font sizing, spacing, and layout behavior.
// Typography variables
$base-font-size: 16px !default;
$base-line-height: 24px !default;
$base-unit: 'em' !default;
$base-font-family: null !default;
// Heading font size variables
$h1-font-size: 2 * $base-font-size !default;
$h2-font-size: 1.5 * $base-font-size !default;
$h3-font-size: 1.17 * $base-font-size !default;
$h4-font-size: 1 * $base-font-size !default;
$h5-font-size: 0.83 * $base-font-size !default;
$h6-font-size: 0.67 * $base-font-size !default;
// Layout variables
$indent-amount: 40px !default;
$normalize-vertical-rhythm: false !default;Advanced typography system for maintaining consistent vertical spacing and line-height calculations across all elements.
/**
* Converts px values to specified unit for vertical rhythm
* @param $value - Value to convert (must be in px)
* @param $relative-to - Reference font size (default: $base-font-size)
* @param $unit - Target unit (default: $base-unit)
* @return Converted value in target unit
*/
@function normalize-rhythm($value, $relative-to: $base-font-size, $unit: $base-unit);
/**
* Sets font-size using vertical rhythm conversion
* @param $value - Font size in pixels
* @param $relative-to - Reference font size (default: $base-font-size)
*/
@mixin normalize-font-size($value, $relative-to: $base-font-size);@import 'normalize-scss/sass/normalize';
@include normalize();When using Eyeglass, import as:
@import 'normalize';
@include normalize();With Compass:
require "normalize-scss"@import 'normalize';
@include normalize();The Bower package points to the immediate import version:
@import 'bower_components/normalize.scss/sass/normalize/import-now';// Section names for include/exclude parameters
type NormalizeSection =
| 'document'
| 'sections'
| 'grouping'
| 'links'
| 'text'
| 'embedded'
| 'forms'
| 'interactive'
| 'scripting'
| 'hidden'
| 'all';
// Supported units for vertical rhythm
type Unit = 'px' | 'em' | 'rem';