2014-07-12 07:34:47 +02:00
---
2015-08-15 07:45:55 +02:00
layout: docs
2014-07-12 07:34:47 +02:00
title: Typography
2015-08-10 08:38:16 +02:00
group: content
2014-07-12 07:34:47 +02:00
---
2014-07-10 08:06:16 +02:00
2015-08-21 02:15:17 +02:00
Bootstrap includes simple and easily customized typography for headings, body text, lists, and more. For even more control, check out the [textual utility classes ]({{ site.baseurl }}/components/utilities/ ).
2014-07-10 08:06:16 +02:00
2015-05-29 10:58:52 +02:00
## Contents
* Will be replaced with the ToC, excluding the "Contents" header
{:toc}
2014-07-14 17:34:56 +02:00
## Global settings
Bootstrap sets basic global display, typography, and link styles. Specifically, we:
2016-02-06 22:32:53 +01:00
- Use a [native font stack ](/content/reboot/#native-font-stack ) that selects the best `font-family` for each OS and device.
- Use the `$font-family-base` , `$font-size-base` , and `$line-height-base` attributes as our typographic base applied to the `<body>` .
- Set the global link color via `$link-color` and apply link underlines only on `:hover` .
- Use `$body-bg` to set a `background-color` on the `<body>` (`#fff` by default).
2014-07-14 17:34:56 +02:00
2015-10-07 03:39:55 +02:00
These styles can be found within `_reboot.scss` , and the global variables are defined in `_variables.scss` .
2014-07-14 17:34:56 +02:00
2014-07-10 08:06:16 +02:00
## Headings
All HTML headings, `<h1>` through `<h6>` , are available. `.h1` through `.h6` classes are also available, for when you want to match the font styling of a heading but still want your text to be displayed inline.
2015-04-16 23:07:20 +02:00
< div class = "bd-example bd-example-type" >
2014-07-10 08:06:16 +02:00
< table class = "table" >
< tbody >
< tr >
< td > < h1 > h1. Bootstrap heading< / h1 > < / td >
< td class = "type-info" > Semibold 36px< / td >
< / tr >
< tr >
< td > < h2 > h2. Bootstrap heading< / h2 > < / td >
< td class = "type-info" > Semibold 30px< / td >
< / tr >
< tr >
< td > < h3 > h3. Bootstrap heading< / h3 > < / td >
< td class = "type-info" > Semibold 24px< / td >
< / tr >
< tr >
< td > < h4 > h4. Bootstrap heading< / h4 > < / td >
< td class = "type-info" > Semibold 18px< / td >
< / tr >
< tr >
< td > < h5 > h5. Bootstrap heading< / h5 > < / td >
< td class = "type-info" > Semibold 14px< / td >
< / tr >
< tr >
< td > < h6 > h6. Bootstrap heading< / h6 > < / td >
< td class = "type-info" > Semibold 12px< / td >
< / tr >
< / tbody >
< / table >
< / div >
{% highlight html %}
< h1 > h1. Bootstrap heading< / h1 >
< h2 > h2. Bootstrap heading< / h2 >
< h3 > h3. Bootstrap heading< / h3 >
< h4 > h4. Bootstrap heading< / h4 >
< h5 > h5. Bootstrap heading< / h5 >
< h6 > h6. Bootstrap heading< / h6 >
{% endhighlight %}
2015-08-13 05:45:21 +02:00
### Customizing headings
2014-07-10 08:06:16 +02:00
2015-08-13 05:45:21 +02:00
Use the included utility classes to recreate the small secondary heading text from Bootstrap 3.
2014-07-10 08:06:16 +02:00
2015-08-13 05:45:21 +02:00
{% example html %}
< h3 >
Fancy display heading
< small class = "text-muted" > With faded secondary text< / small >
< / h3 >
{% endexample %}
2014-07-10 08:06:16 +02:00
2015-08-10 06:17:27 +02:00
## Display headings
Traditional heading elements are designed to work best in the meat of your page content. When you need a heading to stand out, consider using a **display heading** —a larger, slightly more opinionated heading style.
< div class = "bd-example bd-example-type" >
< table class = "table" >
< tbody >
< tr >
2015-09-02 06:11:53 +02:00
< td > < h1 class = "display-1" > Display 1< / h1 > < / td >
2015-08-10 06:17:27 +02:00
< / tr >
< tr >
2015-09-02 06:11:53 +02:00
< td > < h1 class = "display-2" > Display 2< / h1 > < / td >
2015-08-10 06:17:27 +02:00
< / tr >
< tr >
2015-09-02 06:11:53 +02:00
< td > < h1 class = "display-3" > Display 3< / h1 > < / td >
2015-08-10 06:17:27 +02:00
< / tr >
< tr >
2015-09-02 06:11:53 +02:00
< td > < h1 class = "display-4" > Display 4< / h1 > < / td >
2015-08-10 06:17:27 +02:00
< / tr >
< / tbody >
< / table >
< / div >
2015-08-20 00:10:44 +02:00
{% highlight html %}
< h1 class = "display-1" > Display 1< / h1 >
2015-09-02 06:11:53 +02:00
< h1 class = "display-2" > Display 2< / h1 >
< h1 class = "display-3" > Display 3< / h1 >
< h1 class = "display-4" > Display 4< / h1 >
2015-08-20 00:10:44 +02:00
{% endhighlight %}
2014-07-10 08:06:16 +02:00
## Lead
Make a paragraph stand out by adding `.lead` .
{% example html %}
< p class = "lead" >
Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Duis mollis, est non commodo luctus.
< / p >
{% endexample %}
## Inline text elements
2014-08-06 02:21:13 +02:00
Styling for common inline HTML5 elements.
2014-07-10 08:06:16 +02:00
{% example html %}
< p > You can use the mark tag to < mark > highlight< / mark > text.< / p >
< p > < del > This line of text is meant to be treated as deleted text.< / del > < / p >
< p > < s > This line of text is meant to be treated as no longer accurate.< / s > < / p >
< p > < ins > This line of text is meant to be treated as an addition to the document.< / ins > < / p >
< p > < u > This line of text will render as underlined< / u > < / p >
< p > < small > This line of text is meant to be treated as fine print.< / small > < / p >
< p > < strong > This line rendered as bold text.< / strong > < / p >
< p > < em > This line rendered as italicized text.< / em > < / p >
{% endexample %}
2016-01-21 02:50:08 +01:00
`.mark` and `.small` classes are also available to apply the same styles as `<mark>` and `<small>` while avoiding any unwanted semantic implications that the tags would bring.
2014-07-10 08:06:16 +02:00
2016-01-21 02:50:08 +01:00
While not shown above, feel free to use `<b>` and `<i>` in HTML5. `<b>` is meant to highlight words or phrases without conveying additional importance while `<i>` is mostly for voice, technical terms, etc.
2016-01-21 01:28:05 +01:00
2016-02-07 00:53:10 +01:00
## Text utilities
2016-02-07 12:04:33 +01:00
Change text alignment, transform, style, weight, and color with our [text utilities ]({{ site.baseurl }}/components/utilities/#text-alignment ).
2016-02-07 00:53:10 +01:00
2014-07-10 08:06:16 +02:00
## Abbreviations
2015-01-04 05:08:58 +01:00
Stylized implementation of HTML's `<abbr>` element for abbreviations and acronyms to show the expanded version on hover. Abbreviations with a `title` attribute have a light dotted bottom border and a help cursor on hover, providing additional context on hover and to users of assistive technologies.
2014-07-10 08:06:16 +02:00
Add `.initialism` to an abbreviation for a slightly smaller font-size.
{% example html %}
2015-04-18 02:18:36 +02:00
< p > < abbr title = "attribute" > attr< / abbr > < / p >
< p > < abbr title = "HyperText Markup Language" class = "initialism" > HTML< / abbr > < / p >
2014-07-10 08:06:16 +02:00
{% endexample %}
## Blockquotes
2015-12-08 08:36:35 +01:00
For quoting blocks of content from another source within your document. Wrap `<blockquote class="blockquote">` around any < abbr title = "HyperText Markup Language" > HTML</ abbr > as the quote.
2014-07-10 08:06:16 +02:00
{% example html %}
2015-11-03 10:25:17 +01:00
< blockquote class = "blockquote" >
2015-12-08 08:36:35 +01:00
< p class = "m-b-0" > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.< / p >
2014-07-10 08:06:16 +02:00
< / blockquote >
{% endexample %}
2015-04-18 02:18:36 +02:00
### Naming a source
2014-07-10 08:06:16 +02:00
2015-11-03 10:25:17 +01:00
Add a `<footer class="blockquote-footer">` for identifying the source. Wrap the name of the source work in `<cite>` .
2014-07-10 08:06:16 +02:00
{% example html %}
2015-08-13 03:47:15 +02:00
< blockquote class = "blockquote" >
2015-12-08 08:36:35 +01:00
< p class = "m-b-0" > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.< / p >
2015-11-03 10:25:17 +01:00
< footer class = "blockquote-footer" > Someone famous in < cite title = "Source Title" > Source Title< / cite > < / footer >
2014-07-10 08:06:16 +02:00
< / blockquote >
{% endexample %}
2015-04-18 02:18:36 +02:00
### Reverse layout
2014-07-10 08:06:16 +02:00
Add `.blockquote-reverse` for a blockquote with right-aligned content.
{% example html %}
2015-08-13 03:47:15 +02:00
< blockquote class = "blockquote blockquote-reverse" >
2015-12-08 08:36:35 +01:00
< p class = "m-b-0" > Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante.< / p >
2015-11-03 10:25:17 +01:00
< footer class = "blockquote-footer" > Someone famous in < cite title = "Source Title" > Source Title< / cite > < / footer >
2014-07-10 08:06:16 +02:00
< / blockquote >
{% endexample %}
## Lists
### Unstyled
Remove the default `list-style` and left margin on list items (immediate children only). **This only applies to immediate children list items** , meaning you will need to add the class for any nested lists as well.
{% example html %}
< ul class = "list-unstyled" >
< li > Lorem ipsum dolor sit amet< / li >
< li > Consectetur adipiscing elit< / li >
< li > Integer molestie lorem at massa< / li >
< li > Facilisis in pretium nisl aliquet< / li >
< li > Nulla volutpat aliquam velit
< ul >
< li > Phasellus iaculis neque< / li >
< li > Purus sodales ultricies< / li >
< li > Vestibulum laoreet porttitor sem< / li >
< li > Ac tristique libero volutpat at< / li >
< / ul >
< / li >
< li > Faucibus porta lacus fringilla vel< / li >
< li > Aenean sit amet erat nunc< / li >
< li > Eget porttitor lorem< / li >
< / ul >
{% endexample %}
### Inline
2015-12-08 08:31:02 +01:00
Place all list items on a single line with `display: inline-block;` and some basic margin between.
2014-07-10 08:06:16 +02:00
{% example html %}
< ul class = "list-inline" >
2015-11-03 01:57:37 +01:00
< li class = "list-inline-item" > Lorem ipsum< / li >
< li class = "list-inline-item" > Phasellus iaculis< / li >
< li class = "list-inline-item" > Nulla volutpat< / li >
2014-07-10 08:06:16 +02:00
< / ul >
{% endexample %}
2015-12-25 05:26:24 +01:00
### Description list alignment
2014-07-10 08:06:16 +02:00
2014-12-11 23:12:10 +01:00
Align terms and descriptions horizontally by using our grid system's predefined classes (or semantic mixins). For longer terms, you can optionally add a `.text-truncate` class to truncate the text with an ellipsis.
2014-07-10 08:06:16 +02:00
{% example html %}
2015-12-25 05:26:24 +01:00
< dl class = "row" >
2014-12-11 23:12:10 +01:00
< dt class = "col-sm-3" > Description lists< / dt >
< dd class = "col-sm-9" > A description list is perfect for defining terms.< / dd >
< dt class = "col-sm-3" > Euismod< / dt >
< dd class = "col-sm-9" > Vestibulum id ligula porta felis euismod semper eget lacinia odio sem nec elit.< / dd >
2016-02-07 05:01:37 +01:00
< dd class = "col-sm-9 offset-sm-3" > Donec id elit non mi porta gravida at eget metus.< / dd >
2015-01-04 05:08:58 +01:00
2014-12-11 23:12:10 +01:00
< dt class = "col-sm-3" > Malesuada porta< / dt >
< dd class = "col-sm-9" > Etiam porta sem malesuada magna mollis euismod.< / dd >
2015-01-04 05:08:58 +01:00
2014-12-11 23:12:10 +01:00
< dt class = "col-sm-3 text-truncate" > Truncated term is truncated< / dt >
< dd class = "col-sm-9" > Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.< / dd >
2016-01-07 01:56:27 +01:00
< dt class = "col-sm-3" > Nesting< / dt >
< dd class = "col-sm-9" >
< dl class = "row" >
2016-02-07 05:01:37 +01:00
< dt class = "col-sm-4" > Nested definition list< / dt >
< dd class = "col-sm-8" > Aenean posuere, tortor sed cursus feugiat, nunc augue blandit nunc.< / dd >
2016-01-07 01:56:27 +01:00
< / dl >
< / dd >
2014-07-10 08:06:16 +02:00
< / dl >
{% endexample %}
2015-08-23 03:56:28 +02:00
## Responsive typography
*Responsive typography* refers to scaling text and components by simply adjusting the root element's `font-size` within a series of media queries. Bootstrap doesn't do this for you, but it's fairly easy to add if you need it.
Here's an example of it in practice. Choose whatever `font-size` s and media queries you wish.
{% highlight scss %}
html {
font-size: 14px;
}
@include media-breakpoint-up(sm) {
html {
font-size: 16px;
}
}
@include media-breakpoint-up(md) {
html {
2015-08-24 08:03:58 +02:00
font-size: 20px;
2015-08-23 03:56:28 +02:00
}
}
@include media-breakpoint-up(lg) {
html {
2015-08-24 08:03:58 +02:00
font-size: 28px;
2015-08-23 03:56:28 +02:00
}
}
{% endhighlight %}