Magento UI library provides mixins for typography styling. To configure typography, global variables from _variables.less file are used.
To apply all Magento UI library typography, use the .lib-typography-all() mixin. It accumulates all typography mixins and sets all typography for the theme. This mixin is included in the .lib-magento-reset() mixin. So, if you use this reset, you don't have to call basic typography separately. Also, you don't have to apply this mixin to any class, just call it globally.
Additionally, Magento UI library provides number of mixins to customize typography parameters separately.
.lib-typography-all();
Typography variables
Mixin variable
Default value
Comment
Predefined font family and font colors
@font-family__sans-serif
'Helvetica Neue', Helvetica, Arial, sans-serif
Sans-serif font family
@font-family__serif
Georgia, 'Times New Roman', Times, serif
Serif font family
@font-family__monospace
Menlo, Monaco, Consolas, 'Courier New', monospace
Monospace font family
@font-path
"../../fonts/"
Path to custom font
@primary__color
#555
Primary color
@primary__color__dark
darken(@primary__color, 35%) // #000
Dark primary color
@primary__color__darker
darken(@primary__color, 13.5%) // #111
Darker primary color
@primary__color__lighter
lighten(@primary__color, 23%) // #7d7d7d
Lighter primary color
@primary__color__light
lighten(@primary__color, 45%) // #a6a6a6
Light primary color
@border-color__base
darken(@page__background-color, 18%)
Base border color
@border-width__base
1px
Base border width
Fonts settings
@font-family__base
@font-family__sans-serif
Basic font family
@root__font-size
62.5%
Setting font-size for HTML tag, use % units
@font-size-ratio__base
1.4
Defines ratio between root font size and base font size
The .lib-text-overflow() mixin is used to add ellipsis ("...") when a text overflows the containing element. Background and block width are added to display this example.
The .lib-heading() mixin is used to set heading styles to an element. To use this mixin, set the type of heading that you want to inherit styles from. The mixin uses global heading variables.
Magento UI library offers mixins to styles elements sets.
The .lib-typography__base() mixin applyes basic styles from _variables.less to the following elements:
html
body
p
abbr
b
strong
em
i
mark
small
.small
hr
sub,
sup
dfn
.lib-typography__base();
Base typography mixin variables
Mixin variable
Global variable
Default value
Allowed values
Comment
@_abbr-border-color
@abbr__border-color
@border-color__base
'' | false | value
<abbr> border color
@_dfn-font-style
@font-style__emphasis
italic
'' | false | value
<dfn> font style
@_emphasis-font-style
@font-style__emphasis
italic
'' | false | value
<em> font style
@_hr-border-color
@hr__border-color
@border-color__base
'' | false | value
HR border color
@_hr-border-style
@hr__border-style
solid
'' | false | value
HR border style
@_hr-border-width
@hr__border-width
@border-width__base
'' | false | value
HR border width
@_hr-margin-bottom
@line-height__computed
floor(@font-size__base * @line-height__base)
'' | false | value
HR margin bottom
@_hr-margin-top
@line-height__computed
floor(@font-size__base * @line-height__base)
'' | false | value
HR margin top
@_mark-background-color
@mark__background-color
@panel__background-color
'' | false | value
<mark> background color
@_mark-color
@mark__color
@primary__color__dark
'' | false | value
<mark> color
@_p-margin-bottom
@p__margin-bottom
@indent__s
'' | false | value
Paragraph margin bottom
@_p-margin-top
@p__margin-top
0
'' | false | value
Paragraph margin top
@_root-font-size
@root__font-size
62.5%
'' | false | value
Setting font-size for HTML tag
@_small-font-size
@font-size__s
ceil(.85 * @font-size__base) // 12
'' | false | value
<small> tag font size
@_strong-font-weight
@font-weight__bold
700
'' | false | value
<strong> tag font weight
@_sub-sup-font-size
-
(@font-size__xs / @font-size__base) * 100%
'' | false | value
<sup> an <sup> tags font size
Headings typography mixin
The .lib-typography-headings() mixin is used to style all H1-H6 headings. This mixin uses settings from global variables list.
.lib-typography-headings();
Headings typography mixin variables
Mixin variable
Global variable
Default value
Allowed values
Comment
@_heading-small-size
@heading__small-size
(@font-size__xs/@font-size__base) * 100%
'' | false | value
<small> and .small heading element font-size
@_heading-small-color
@heading__small-color
@primary__color
'' | false | value
<small> and .small heading element color
@_heading-small-line-height
@heading__small-line-height
1
'' | false | value
<small> and .small heading element line height
Typography links mixin
The .lib-typography-links() mixin is used to apply default styles to all <a> elements and elements with class="alink". This mixin uses settings from global variables list.
.lib-typography-links();
Typography lists mixin
The .lib-typography-lists() mixin is used to apply styles to all ordered, unordered, and definition lists. This mixin uses settings from global variables list.
.lib-typography-lists();
Typography lists mixin variables
Mixin variable
Global variable
Default value
Allowed values
Comment
@_list-margin-top
@list__margin-top
0
'' | false | value
List margin top
@_list-margin-bottom
@list__margin-bottom
@indent__m
'' | false | value
List margin bottom
@_list-item-margin-top
@list-item__margin-top
0
'' | false | value
List item margin top
@_list-item-margin-bottom
@list-item__margin-bottom
@indent__s
'' | false | value
List item margin bottom
@_dl-margin-bottom
@dl__margin-bottom
@indent__base
'' | false | value
Definition list margin bottom
@_dl-margin-top
@dl__margin-top
0
'' | false | value
Definition list margin top
@_dt-font-weight
@dt__font-weight
@font-weight__bold
'' | false | value
Description term font weight
@_dt-margin-bottom
@dt__margin-bottom
@indent__xs
'' | false | value
Description term margin bottom
@_dt-margin-top
@dt__margin-top
0
'' | false | value
Description term margin top
@_dd-margin-bottom
@dd__margin-bottom
@indent__s
'' | false | value
Description margin bottom
@_dd-margin-top
@dd__margin-top
0
'' | false | value
Description margin top
Typography code elements mixin
.lib-typography-code() mixin is used to apply styles to the following code elements:
code
kbd
pre
samp
This mixin uses settings from global variables list.
.lib-typography-code();
Typography code mixin variables
Mixin variable
Global variable
Default value
Allowed values
Comment
@_font-family-monospace
@font-family__monospace
Menlo, Monaco, Consolas, 'Courier New', monospace
'' | false | value
Monospace font family
@_code-background-color
@code__background-color
@panel__background-color
'' | false | value
Code block background
@_code-color
@code__color
@primary__color__darker
'' | false | value
Code text color
@_code-padding
@code__padding
2px 4px
'' | false | value
Code block padding
@_code-font-size
@code__font-size
@font-size__s
'' | false | value
Code block font size
@_kbd-background-color
@kbd__background-color
@panel__background-color
'' | false | value
Keyboard input background
@_kbd-color
@kbd__color
@primary__color__darker
'' | false | value
Keyboard input text color
@_kbd-padding
@code__padding
2px 4px
'' | false | value
Keyboard input padding
@_kbd-font-size
@code__font-size
@font-size__s
'' | false | value
Keyboard input font size
@_pre-background-color
@pre__background-color
@primary__color__light
'' | false | value
Preformatted text background color
@_pre-border-width
@pre__border-width
@border-width__base
'' | false | value
Preformatted text border width
@_pre-border-color
@pre__border-color
@border-color__base
'' | false | value
Preformatted text border color
@_pre-color
@pre__color
@primary__color__darker
'' | false | value
Text color of preformatted text
@_pre-line-height
@line-height__base
1.428571429
'' | false | value
Preformatted text line height
@_pre-margin
-
0 0 @indent__s
'' | false | value
Preformatted text margin
@_pre-padding
-
@indent__s
'' | false | value
Preformatted text padding
@_pre-font-size
@code__font-size
@font-size__s
'' | false | value
Preformatted text font size
Typography blockquote
The .lib-typography-blockquote() mixin is used to apply styles to blockquote elements. This mixin uses settings from global variables list.
.lib-typography-blockquote();
Typography blockquote mixin variables
Mixin variable
Global variable
Default value
Allowed values
Comment
@_blockquote-border-width
@blockquote__border-width
0
'' | false | value
Blockquote border width
@_blockquote-border-color
@blockquote__border-color
@border-color__base
'' | false | value
Blockquote border color
@_blockquote-margin
@blockquote__margin
0 0 @indent__base @indent__xl
'' | false | value
Blockquote margin
@_blockquote-padding
@blockquote__padding
0
'' | false | value
Blockquote padding
@_blockquote-font-size
@blockquote__font-size
@font-size__base
'' | false | value
Blockquote font size
@_blockquote-font-style
@blockquote__font-style
@font-style__emphasis
'' | false | value
Blockquote font style
@_blockquote-small-color
@blockquote-small__color
@primary__color
'' | false | value
Blockquote <small> and .small text color
@_blockquote-small-line-height
@line-height__base
1.428571429
'' | false | value
Blockquote <small> and .small line height
@_blockquote-small-font-size
@blockquote-small__font-size
@font-size__xs
'' | false | value
Blockquote <small> and .small text font size
@_blockquote-small-before-content
@blockquote__content-before
'\2014 \00A0'
'' | false | value
Blockquote <small> and .small before pseudo element content
@_blockquote-cite
@cite__font-style
@font-style__base
'' | false | value
Blockquote cite font style
@_cite
@cite__font-style
@font-style__base
'' | false | value
Cite font style
<h1>HTML Ipsum Presents <small>Sub text</small></h1>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. <em>Aenean ultricies mi vitae est.</em> Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, <code>commodo vitae</code>, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. <a href="#">Donec non enim</a> in turpis pulvinar facilisis. Ut felis.</p>
<h2>Header Level 2</h2>
<ol>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ol>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat <kbd>Keyboard input</kbd> vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit amet est et sapien ullamcorper pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi. Aenean fermentum, elit eget tincidunt condimentum, eros ipsum rutrum orci, sagittis tempus lacus enim ac dui. Donec non enim in turpis pulvinar facilisis. Ut felis. Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus</p>
<blockquote>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p>
<a href=#"> Aenean fermentum, elit eget tincidunt condimentum</a>
</blockquote>
<h3>Header Level 3</h3>
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
</ul>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p>
<pre><code> #header h1 a {
display: block;
width: 300px;
height: 80px;
} </code></pre>
<p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p>
<h4>Header Level 4</h4>
<ul>
<li>Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.</li>
<li>Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus.
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
<li>Vestibulum auctor dapibus neque.</li>
</ul>
</li>
<li>Phasellus ultrices nulla quis nibh. Quisque a lectus. Donec consectetuer ligula vulputate sem tristique cursus. Nam nulla quam, gravida non, commodo a, sodales sit amet, nisi.
<ol>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
<li>Vestibulum auctor dapibus neque.</li>
</ol>
</li>
<li>Pellentesque fermentum dolor. Aliquam quam lectus, facilisis auctor, ultrices ut, elementum vulputate, nunc.</li>
</ul>
<h5>Header Level 5</h5>
<dl><dt>Definition list</dt><dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</dd><dt>Lorem ipsum dolor sit amet</dt><dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</dd></dl>
<h6>Header Level 6</h6>
<p class="example">HTML Ipsum Presents</p>
<p class="example-line-height">HTML Ipsum Presents</p>
<p class="example-word-wrap">
Supercalifragilisticexpialidocious This paragraph contains a very long word: thisisaveryveryveryveryveryverylongword. The long word will break and wrap to the next line.
</p>
<p class="example-hyphens" style="width:50px;" lang="en">
An extremely long English word
</p>
<p class="example-hyphens-none" style="width:50px;" lang="en">
An extremely long English word
</p>
<span class="example-typography">
An example of using .lib-typography() mixin
</span>
<ul class="example-list">
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
<li>Vestibulum auctor dapibus neque.</li>
</ul>
<ul class="example-list-reset-styles">
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
<li>Vestibulum auctor dapibus neque.</li>
</ul>
<ul class="example-list">
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
<li>Vestibulum auctor dapibus neque.</li>
</ul>
<ul class="example-list-inline">
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
<li>Vestibulum auctor dapibus neque.</li>
</ul>
<a href="#" class="example-link-default">Link with global variables customization</a>
<a href="#" class="example-link">Link with custom styles</a>
<p><strong>Pellentesque habitant morbi tristique</strong> senectus et netus et malesuada fames ac <small>turpis</small> egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, <em>tempor</em> sit amet, ante. Donec <sub>eu</sub> libero sit amet quam egestas semper. <code>Aenean ultricies</code> mi vitae <sup>est</sup>. Mauris placerat eleifend leo. <abbr>Quisque</abbr> sit amet est et sapien <mark>ullamcorper</mark> pharetra.</p>
<hr>
<p><dfn>Pellentesque</dfn> habitant <i>morbi</i> tristique <b>senectus</b> et netus et malesuada fames ac turpis egestas.</p>
<a href="#">Link with global variables customization</a>
<span class="alink">Span styled as a link</span>
<ul>
<li>Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.</li>
<li>Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus.
<ul>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
<li>Vestibulum auctor dapibus neque.</li>
</ul>
</li>
<li>Phasellus ultrices nulla quis nibh. Quisque a lectus. Donec consectetuer ligula vulputate sem tristique cursus.
Nam nulla quam, gravida non, commodo a, sodales sit amet, nisi.
<ol>
<li>Lorem ipsum dolor sit amet, consectetuer adipiscing elit.</li>
<li>Aliquam tincidunt mauris eu risus.</li>
<li>Vestibulum auctor dapibus neque.</li>
</ol>
</li>
<li>Pellentesque fermentum dolor. Aliquam quam lectus, facilisis auctor, ultrices ut, elementum vulputate, nunc.</li>
</ul>
<dl>
<dt>Definition list</dt>
<dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</dd>
<dt>Lorem ipsum dolor sit amet</dt>
<dd>Consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</dd>
</dl>
<p>Lorem ipsum dolor sit amet, <samp>consectetur adipiscing elit<samp>. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida.</p>
<pre><code> #header h1 a {
display: block;
width: 300px;
height: 80px;
} </code></pre>
<p>Vestibulum tortor quam, feugiat <kbd>Keyboard input</kbd> vitae, ultricies eget, tempor sit amet, ante.</p>
<blockquote>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus magna. Cras in mi at felis aliquet congue. Ut a est eget ligula molestie gravida. Curabitur massa. Donec eleifend, libero at sagittis mollis, tellus est malesuada tellus, at luctus turpis elit sit amet quam. Vivamus pretium ornare est.</p>
<a href="#">Author quotes</a>
</blockquote>