Typography
Typography can help create clear hierarchies, organize information, and guide users through a product or experience.
Resources
Type tokens and sets
Carbon uses type tokens and themes to manage typography. Type tokens are pre-set configurations of typographic elements such as font size, weight, or leading (line height) that are specifically calibrated for use alongside IBM Plex in product. Selecting the appropriate type style is determined by layout or template structure. Layouts may have several levels of architecture or areas that require varying typographic hierarchies.
Productive vs. Expressive type sets
Productive type is reserved for use in web-based product design, where the user needs to focus on tasks. The Productive styles are curated to create a series of clear user expectations about hierarchy. Expressive type, on the other hand, allows for a more dramatic, graphic use of type in editorial and marketing design — which many users would find distracting in product.
There are two heading sets, one Productive and one Expressive. The difference between the Productive and Expressive styles is mainly evident in the Headings. Aside from the token names, which are specifically calibrated for product vs. editorial designers (e.g. $label-01 vs. $caption-01) — the Supporting and Body styles have the same values in both the Productive and Expressive sets.
Typeface: IBM Plex
Carbon uses the open-source typeface IBM Plex. It has been carefully designed to meet IBM’s needs as a global technology company and reflect IBM’s spirit, beliefs, and design principles. IBM Plex can be accessed and downloaded from the Plex GitHub Repo.
IBM Plex Sans
IBM Plex Serif
IBM Plex Mono
Sans-serif font stack
font-family: "IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;
Serif font stack
font-family: "IBM Plex Serif", "Georgia", Times, serif;
Mono font stack
font-family: "IBM Plex Mono", "Menlo", "DejaVu Sans Mono","Bitstream Vera Sans Mono", Courier, monospace;
Scale
The IBM type scale is built on a single equation. The formula for our scale was created to provide hierarchy for all types of experiences. The formula assumes that y₀=12 px:
rem | px |
---|---|
0.75 | Plex 12 |
0.875 | Plex 14 |
1 | Plex 16 |
1.125 | Plex 18 |
1.25 | Plex 20 |
1.5 | Plex 24 |
1.75 | Plex 28 |
2 | Plex 32 |
2.25 | Plex 36 |
2.625 | Plex 42 |
3 | Plex 48 |
3.375 | Plex 54 |
3.75 | Plex 60 |
4.25 | Plex 68 |
4.75 | Plex 76 |
5.25 | Plex 84 |
5.75 | Plex 92 |
Xn = Xn-1 + {INT[(n-2)/4] + 1} * 2Xn: step n type size Xn-1: step n-1 type size
Style
Typography creates purposeful texture, guiding users to read and understand the hierarchy of information. The right typographic treatment and the controlled usage of type styles helps manage the display of content, keeping it useful, simple, and effective.
Weights
Font weight is an important typographic variable that can add emphasis and differentiate content hierarchy. Font weight and size pairings must be carefully balanced. A bold weight will always have more emphasis than a lighter weight font of the same size. However, a lighter weight font can rank hierarchically higher than a bold font if the lighter weight type size is significantly larger than the bold one.
We suggest using IBM Plex Light, Regular, and SemiBold for digital experiences. The semibold weight is ideal for section headers, but should not be used for long text.
Semibold (600)
Regular (400)
Light (300)
Italic
Each weight has an italic style, which should only be used when you need to emphasize certain words in a sentence (titles of works, technical terms, names of devices, captions, etc.).
Semibold Italic (600)
Regular (400)
Light (300)
Type color
Type color should be carefully considered, with legibility and accessibility as paramount concerns. Keep type color neutral in running text. Use primary blue for primary actions.