JigSass Generic Normalize

NPM version Dependency Status

Modular, configurable, opt-in browser normalization

JigSass Normalize is a modularized and configurable version of Nicolas Gallagher and Jonathan Neal's normalize.css at version 4.0.0.

Normalize.css is a modern alternative to css resets, which preserves useful defaults and corrects bugs and common browser inconsistencies.

Installation

Using npm:

npm i -S jigsass-generic-normalize

Usage

  @import 'path/to/jigsass-generic-normalize'/scss/index;

The styles of each JigSass Normalize submodule will only be included a single time, regardless of how many times they are included.

Extended details and known issues

Additional detail and explanation of the esoteric parts of normalize.css.

pre, code, kbd, samp

The font-family: monospace, monospace hack fixes the inheritance and scaling of font-size for preformatted text. The duplication of monospace is intentional. Source.

sub, sup

Normally, using sub or sup affects the line-box height of text in all browsers. Source.

svg:not(:root)

Adding overflow: hidden fixes IE9's SVG rendering. Earlier versions of IE don't support SVG, so we can safely use the :not() and :root selectors that modern browsers use in the default UA stylesheets to apply this style. [Source] (https://lists.w3.org/Archives/Public/public-svg-wg/2008JulSep/0339.html).

select

By default, Chrome on OS X and Safari on OS X allow very limited styling of select, unless a border property is set. The default font weight on optgroup elements cannot safely be changed in Chrome on OSX and Safari on OS X.

[type="checkbox"]

It is recommended that you do not style checkbox and radio inputs as Firefox's implementation does not respect box-sizing, padding, or width.

[type="number"]

Certain font size values applied to number inputs cause the cursor style of the decrement button to change from default to text.

[type="search"]

The search input is not fully stylable by default. In Chrome and Safari on OSX/iOS you can't control font, padding, border, or background. In Chrome and Safari on Windows you can't control border properly. It will apply border-width but will only show a border color (which cannot be controlled) for the outer 1px of that border. Applying -webkit-appearance: textfield addresses these issues without removing the benefits of search inputs (e.g. showing past searches). Safari (but not Chrome) will clip the cancel button on when it has padding (and textfield appearance).

License: MIT

normalize

mixins

jigsass-normalize

@mixin jigsass-normalize($include: all, $include: ()) { ... }

Description

Include multiple parts of jigsass-normalize at once

Parameters

parameterNameparameterDescriptionparameterTypeparameterDefault value
$include

A list of sections to include. Can contain root, html5, links, text, embedded, grouping, forms and all

List or Stringall
$include

A list of sections to explicitly exclude from inclusion.

String()

Requires

Example

// normalize root and html5 elements
@include jigsass-normalize(root html5);
// Normalize all elements
@include jigsass-normalize(all);
// Normalize all but form elemets
@include jigsass-normalize(all, $exclude: forms);

Used by

jigsass-normalize-html5

@mixin jigsass-normalize-html5() { ... }

Description

Normalize html5 elements

Parameters

None.

Requires

jigsass-normalize-text

@mixin jigsass-normalize-text() { ... }

Description

Normalize text elements

Parameters

None.

Requires

jigsass-normalize-embedded

@mixin jigsass-normalize-embedded() { ... }

Description

Normalize embedded elements

Parameters

None.

Requires

jigsass-normalize-grouping

@mixin jigsass-normalize-grouping() { ... }

Description

Normalize grouping elements

Parameters

None.

Requires

jigsass-normalize-forms

@mixin jigsass-normalize-forms() { ... }

Description

Normalize form elements

Parameters

None.

Requires

variables

jigsass-normalize-default-font-family

$jigsass-normalize-default-font-family: sans-serif !default;

Description

The default font-stack to set.

A string or a list of strings.

Type

List or String

jigsass-normalize-fig-margins

$jigsass-normalize-fig-margins: true !default;

Description

Determines if the margins of figure elements should be normalized. Set to false if you intend to later reset margins.

Type

Boolean

jigsass-normalize-fieldset

$jigsass-normalize-fieldset: true !default;

Description

Determines if the border, margin and padding of fieldset should be normalized (true) or reset (false).

Type

Boolean

jigsass-normalize-h1

$jigsass-normalize-h1: true !default;

Description

Determines if h1 elements should be normalize. Set to false if you intend to later reset headline styles.

Type

Boolean

normalize - 02 - root

mixins

jigsass-normalize-root

@mixin jigsass-normalize-root() { ... }

Description

Normalize the body and html elements

Parameters

None.

Used by