Type Heading is a lightweight libsass extension that lets you easily manage responsive typographic sizing.
// Define Headings
$th-headings: (
h1: (32px 36px, 36px 42px default 768px),
h2: (28px 32px, 30px 34px default 768px),
h3: (24px 30px)
);
// Output Headings
h1 { @include th-headings(h1); }
// h1 {
// margin-top: 20px;
// margin-bottom: 20px;
// font-size: 32px;
// line-height: 36px;
// }
//
// @media (min-width: 768px) {
// h1 {
// margin-top: 20px;
// margin-bottom: 20px;
// font-size: 36px;
// line-height: 42px;
// }
// }
// Return properties
$font-size-tablet: th-property(font-size, h1, 768px);
// 36px
// Output properties
.my-component { @include th-property(font-size, h1); }
// .my-component {
// font-size: 32px
// }
// Unit Conversion
$th-property-units: (
font-size: percent,
line-height: rel,
margin-top: em,
margin-bottom: em
);
h3 { @include th-headings(h3); }
// h3 {
// margin-top: 0.83333em;
// margin-bottom: 0.83333em;
// font-size: 150%;
// line-height: 1.25;
// }
// Advanced:
// Using contextual properties:
h1 {
@include th-heading-context(h1) {
$heading: th-core-context-get(heading);
font-size: th-property(font-size, $heading);
}
}
// h1 {
// font-size: 32px;
// font-size: 36px
// }
For more detail documentation, read USERGUIDE.md
in this repository.
Reference or change any heading size throughout your stylesheets from a single variable. Now you don't have to try and remember what the font size of your h3 is!
Headings are structured by breakpoint, giving you the power to quickly find the right heading size for the right media query.
Working with relative units can be tricky. Fortunately Type Heading can convert px values into relative units, so you can stay you away from any tricky math.
Type Heading uses the MIT license and always will.
You can make Type Heading better! If you find a bug, please create an issue or provide a pull request.