Socket
Socket
Sign inDemoInstall

basekick

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

basekick

Typographical baselines for CSS


Version published
Weekly downloads
4
decreased by-71.43%
Maintainers
1
Weekly downloads
 
Created
Source

Build Status npm semantic-release Commitizen friendly

Basekick

An mixin for realigning your typographic elements with proper graphic design baseline. The intent is to make it much easier to compose pages while maintaining your vertical rhythm.

Background

In CSS, the text in a given element will sit centred within its own line-height. In the design world the line height is measured from the baseline of the text. As a result our UIs often deviate from the designers intentions, requiring a heap of pixel-nudging to get things to line up again.

If you want to know more about the how or why, here is a link to a presentation a gave at MelbCSS about the problem this has solved for our teams — Teaching CSS to talk like a designer

Current Solution

Using CSS transforms we can translate the text back onto the baseline where it should be.

The goal is for everything to be scalable. If the font-size is changed or a new level in your typographic hierarchy introduced, it would be great not to have to recalculate the descender height every time.

Usage

Install the mixin into your project, and pass it the following parameters:

LESS

eg.

@import (reference) "basekick/mixin";

.MyHeading {
  .basekick(<options>);
}

bk-type-size-modifier (required)

The multiplier for type font size, relative to the base font size of your typographic hierarchy.

bk-descender-height-scale (required)

The height of the descender expressed as a ratio of the font.

bk-type-row-span (required)

The number of rows the type should span.

bk-grid-row-height (required)

The number of pixels for each grid row.

bk-base-font-size (required)

The base font size on which your type size modifiers are based.

bk-line-height-override (optional)

Explicit line height override to set an exact value in exceptional cases.

JS

eg.

var basekick = require("basekick");

var myHeadingStyles = basekick(options);

options (required)

OptionsTypeRequiredDescription
typeSizeModifierintYThe multiplier for type font size, relative to the base font size of your typographic hierarchy.
typeRowSpanintYThe multiplier for type font size, relative to the base font size of your document.
descenderHeightScaleintYThe multiplier for type font size, relative to the base font size of your document.
baseFontSizeintYThe base font size on which your type size modifiers are based.
gridRowHeightintYThe number of pixels for each grid row.
lineHeightOverrideintNExplicit line height override to set an exact value in exceptional cases.

Example

The following example has the following design requirements:

  • Base font size is 10px.
  • Grid rows are 9px high.
  • Standard type is 14px over an 2 grid rows.
  • Headings are 21px over a 3 grid rows.

Variables

@base-font-size: 10;                    // Base font size
@grid-row-height: 9px;                  // Height of grid rows
@font-descender-height-scale: 0.14;     // The descender height for the specified font expressed as a scale

@standard-type-scale: 1.4;
@standard-row-span: 2;

@heading-type-scale: 2.1;
@heading-row-span: 3;

Card component styles

.card {
  font-family: Helvetica Neue;
}

.card__content {
  .basekick(@standard-type-scale,
            @standard-type-descender-height,
            @standard-row-span,
            @grid-row-height,
            @base-font-size);
}

.card__title {
  .basekick(@heading-type-scale,
            @heading-type-descender-height,
            @heading-row-span,
            @grid-row-height,
            @base-font-size);
}

WIP

  • Sass version
  • Stylus version

License

MIT

Keywords

FAQs

Package last updated on 21 May 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc