Skip to content

quintenvk/postcss-responsive-type

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PostCSS Responsive Type

NPM version Build Status Dependency Status

PostCSS plugin for automagical responsive typography. Adds a responsive property to font-size that generates complex calc and vw based font sizes.

Inspired by Typographic.

Part of Rucksack - CSS Superpowers.

Responsive Type Demo

Quick start:
html {
  font-size: responsive;
}
Specify parameters:

Units can be in px, rem, or em.

html {
  font-size: responsive 12px 21px; /* min-size, max-size */
  font-range: 420px 1280px; /* viewport widths between which font-size is fluid */
}
Expanded syntax:
html {
  font-size: responsive;
  min-font-size: 12px;
  max-font-size: 21px;
  lower-font-range: 420px;
  upper-font-range: 1280px;
}
What it outputs:
html {
  font-size: calc(12px + 9 * ( (100vw - 420px) / 860));
}

@media screen and (max-width: 420px) {
  html {
    font-size: 12px;
  }
}

@media screen and (min-width: 1280px) {
  html {
    font-size: 21px;
  }
}

That calc expression is equivalent to

min-size + (max-size - min-size) * ( (100vw - min-width) / ( max-width - min-width) )

--

Defaults

To get started you only need to specify font-size: responsive;, all other properties have sane defaults.

min-font-size: 14px

max-font-size: 21px

lower-font-range: 420px

upper-font-range: 1280px

--

Browser Support

postcss-responsive-type just uses calc, vw units, and media queries behind the scenes, so it works on all modern browsers (IE9+). Although Opera Mini is not supported.

Legacy browsers will ignore the output responsive font-size. You can easily provide a simple static fallback:

.foo {
  font-size: 16px;
  font-size: responsive;
}

Alternatively, if you feel the need to fully support legacy browsers or Opera Mini, there are polyfills that can help!

--

Usage

postcss([ require('postcss-responsive-type') ])

See PostCSS docs for examples for your environment.

You can use postcss-responsive-type with Stylus through PostStylus.

--

License

MIT © Sean King

About

Automagical responsive typography, built on PostCSS

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%