Fork me on
GitHub

Css font sets

Just add HTML!

Getting started

npm install fontset --save

scss examples

Use included fonts

// Override default settings here

@import 'node_modules/fontset/fonts/.scss'; // See all scss font sets

.my-selector {
    @include fontset;
}

Use other fonts

// Import fonts with css @font-face or from a third party such as Google Fonts

@import url('https://fonts.googleapis.com/css?family=Roboto+Slab:400,700|Roboto:300,400,500');

// Define font families and font weights

$fontset-primary-family: 'Roboto Slab', sans-serif;
$fontset-primary-weight: 400;
$fontset-secondary-family: 'Roboto', sans-serif;
$fontset-secondary-weight: 300;
$fontset-secondary-weight-bold: 400;

@import 'node_modules/fontset/fonts/index.scss';

.my-selector {
    @include fontset;
}

scss settings

See all default settings

Note: The syntax highlighting below is rendered using highlight.js.

 General 



// Font families

$fontset-primary-family: null !default;
$fontset-primary-weight: bold !default;
$fontset-secondary-family: $fontset-primary-family !default;
$fontset-secondary-weight: normal !default;
$fontset-secondary-weight-bold: bold !default;
$fontset-family-monospace: "Lucida Sans Typewriter", "Lucida Console", monaco, "Bitstream Vera Sans Mono", monospace !default;

// Colors

$fontset-color-primary: deeppink !default;
$fontset-color-primary-contrast: #fff !default;
$fontset-color-secondary: #f0f0f0;
$fontset-color-secondary-contrast: #404040;

// Indentation for blockquotes, lists, e.t.c.

$fontset-indent: 14 28 !default;



 Responsive 



// The minimum and maximum width of the page content.
// These values will prevent properties with vw units from getting too small or too large.

$fontset-min-width: 320px !default;
$fontset-max-width: 1200px !default;

// Bottom margins for paragraphs, tables and other block elements.
// The first value is rendered on screens narrower than $fontset-min-width
// The second value is rendered on screens wider than $fontset-max-width

$fontset-block-margin-bottom: 14 28 !default;

// If $fontset-unit is rem, this value should be equal to to the font-size of <html>.
$fontset-rem-base: 16 !default;



 Elements 

// Font sizes containing two values will be scaled responsively.
// Modular scale:
//   Narrow screens: 16px, Minor Third 1.200
//   Wide screens:   14px, Perfect fourth 1.333

$fontset-elements: (

// html-    font-         font-         line-   font-             font-
// element  family        size          height  weight            style

a:          null          null          null    null              null,
abbr:       null          null          null    null              null,
address:    secondary     14            1.5     secondary-bold    normal,
blockquote: secondary    (14,    16)    1.75    secondary         null,
button:     secondary    (14,    16)    1.25    secondary-bold    null,
dt:         secondary    (14,    16)    1.5     secondary-bold    null,
dd:         secondary    (14,    16)    1.5     secondary         null,
figcaption: secondary    (14,    14)    1.5     secondary-bold    null,
h1:         primary      (29.03, 50.52) 1       primary           null,
h2:         primary      (24.19, 37.9)  1.25    primary           null,
h3:         primary      (20.16, 28.43) 1.25    primary           null,
h4:         primary      (16.8,  21.33) 1.25    primary           null,
h5:         primary      (14,    16)    1.25    primary           null,
h6:         primary      (11.67, 12)    1.25    primary           null,
b:          null          null          null    bolder            null,
cite:       null          null          null    null              italic,
code:       monospace     null          null    null              null,
del:        null          null          null    null              null,
em:         null          null          null    null              italic,
i:          null          null          null    null              italic,
ins:        null          null          null    null              null,
mark:       null          null          null    null              null,
nav:        secondary    (14,    16)    1.25    secondary-bold    null,
strong:     null          null          null    bolder            null,
summary:    secondary    (14,    16)    1.5     secondary-bold    null,
li:         secondary    (14,    16)    1.25    secondary         null,
p:          secondary    (14,    16)    1.75    secondary         null,
pre:        monospace     14            1.5     null              null,
caption:    primary      (14,    16)    1.25    primary           null,
th:         secondary    (14,    16)    1.25    secondary-bold    null,
td:         secondary     14            1.25    secondary         null
) !default;

// a

$fontset-a-transition: color .25s ease !default;
$fontset-a-color-link: inherit !default;
$fontset-a-color-visited: inherit !default;
$fontset-a-color-hover: $fontset-color-primary !default;
$fontset-a-color-focus: $fontset-color-primary !default;
$fontset-a-color-active: $fontset-color-primary !default;

// abbr

$fontset-abbr-border-bottom: 1px dotted $fontset-color-primary !default;

// blockquote

$fontset-blockquote-border-width: 2px !default;
$fontset-blockquote-border-color: $fontset-color-secondary !default;
$fontset-blockquote-indent: $fontset-indent;

// button

$fontset-button-padding: .625em 1.25em !default;
$fontset-button-color: $fontset-color-primary-contrast !default;
$fontset-button-background-color: $fontset-color-primary !default;
$fontset-button-disabled-color: #eee !default;
$fontset-button-disabled-background-color: #ccc !default;
$fontset-button-states: shadow !default;

// code

$fontset-code-color: $fontset-color-primary !default;

// dl

$dl-indent: $fontset-indent !default;

// hr

$fontset-hr-color: $fontset-color-primary !default;

// lists

$fontset-list-indent: $fontset-indent !default;

// mark

$fontset-mark-background-color: $fontset-color-primary !default;
$fontset-mark-color: $fontset-color-primary-contrast !default;

// pre

$fontset-pre-padding: 1.25em .625em !default;
$fontset-pre-background-color: $fontset-color-secondary !default;
$fontset-pre-color: $fontset-color-secondary-contrast !default;

// table

$fontset-table-border-color: $fontset-color-secondary !default;



 States 

$fontset-states-shadow-transition: box-shadow .25s ease !default;



 Rendering 

// Setting this to a css selector will cause all css to be rendered immediately after importing the file.
// Example: $fontset-selector: '.fontset';
// If null, no css will be rendered until the fontset mixin is included.
// Example: .fontset { @include fontset }

$fontset-selector: null !default;

Vanilla HTML / CSS

<link rel="stylesheet" href="node_modules/fontset/fonts/roboto-slab_roboto.css" />
...
<div class="fontset">
    <!-- Vanilla HTML -->
</div>