Headings & body copy
Typographic scale
The entire typographic grid is based on two Less variables in our variables.less file: @baseFontSize
and @baseLineHeight
. The first is the base font-size used throughout and the second is the base line-height.
We use those variables, and some math, to create the margins, paddings, and line-heights of all our type and more.
Example body text
Nullam quis risus eget urna mollis ornare vel eu leo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nullam id dolor id nibh ultricies vehicula.
Lead body copy
Make a paragraph stand out by adding .lead
.
Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Duis mollis, est non commodo luctus.
h1. Heading 1
h2. Heading 2
h3. Heading 3
h4. Heading 4
h5. Heading 5
h6. Heading 6
Emphasis, address, and abbreviation
Element | Usage | Optional |
---|---|---|
<strong>
|
For emphasizing a snippet of text with important | None |
<em>
|
For emphasizing a snippet of text with stress | None |
<abbr>
|
Wraps abbreviations and acronyms to show the expanded version on hover |
Include optional Use |
<address>
|
For contact information for its nearest ancestor or the entire body of work |
Preserve formatting by ending all lines with <br>
|
Using emphasis
Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Maecenas faucibus mollis interdum. Nulla vitae elit libero, a pharetra augue.
Note: Feel free to use <b>
and <i>
in HTML5, but their usage has changed a bit. <b>
is meant to highlight words or phrases without conveying additional importance while <i>
is mostly for voice, technical terms, etc.
Example addresses
Here are two examples of how the <address>
tag can be used:
795 Folsom Ave, Suite 600
San Francisco, CA 94107
P: (123) 456-7890
Full Name
first.last@gmail.com
Example abbreviations
Abbreviations with a title
attribute have a light dotted bottom border and a help cursor on hover. This gives users extra indication something will be shown on hover.
Add the initialism
class to an abbreviation to increase typographic harmony by giving it a slightly smaller text size.
HTML is the best thing since sliced bread.
An abbreviation of the word attribute is attr.
Blockquotes
Element | Usage | Optional |
---|---|---|
<blockquote>
|
Block-level element for quoting content from another source |
Add Use |
<small>
|
Optional element for adding a user-facing citation, typically an author with title of work |
Place the <cite> around the title or name of source
|
To include a blockquote, wrap <blockquote>
around any HTML as the quote. For straight quotes we recommend a <p>
.
Include an optional <small>
element to cite your source and you’ll get an em dash —
before it for styling purposes.
<blockquote> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante venenatis.</p> <small>Someone famous</small> </blockquote>
Example blockquotes
Default blockquotes are styled as such:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante venenatis.
Someone famous in Body of work
To float your blockquote to the right, add class="pull-right"
:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer posuere erat a ante venenatis.
Someone famous in Body of work
Lists
Unordered
<ul>
- Lorem ipsum dolor sit amet
- Consectetur adipiscing elit
- Integer molestie lorem at massa
- Facilisis in pretium nisl aliquet
- Nulla volutpat aliquam velit
- Phasellus iaculis neque
- Purus sodales ultricies
- Vestibulum laoreet porttitor sem
- Ac tristique libero volutpat at
- Faucibus porta lacus fringilla vel
- Aenean sit amet erat nunc
- Eget porttitor lorem
Unstyled
<ul class="unstyled">
- Lorem ipsum dolor sit amet
- Consectetur adipiscing elit
- Integer molestie lorem at massa
- Facilisis in pretium nisl aliquet
- Nulla volutpat aliquam velit
- Phasellus iaculis neque
- Purus sodales ultricies
- Vestibulum laoreet porttitor sem
- Ac tristique libero volutpat at
- Faucibus porta lacus fringilla vel
- Aenean sit amet erat nunc
- Eget porttitor lorem
Ordered
<ol>
- Lorem ipsum dolor sit amet
- Consectetur adipiscing elit
- Integer molestie lorem at massa
- Facilisis in pretium nisl aliquet
- Nulla volutpat aliquam velit
- Faucibus porta lacus fringilla vel
- Aenean sit amet erat nunc
- Eget porttitor lorem
Description
<dl>
- Description lists
- A description list is perfect for defining terms.
- Euismod
- Vestibulum id ligula porta felis euismod semper eget lacinia odio sem nec elit.
- Donec id elit non mi porta gravida at eget metus.
- Malesuada porta
- Etiam porta sem malesuada magna mollis euismod.
Horizontal description
<dl class="dl-horizontal">
- Description lists
- A description list is perfect for defining terms.
- Euismod
- Vestibulum id ligula porta felis euismod semper eget lacinia odio sem nec elit.
- Donec id elit non mi porta gravida at eget metus.
- Malesuada porta
- Etiam porta sem malesuada magna mollis euismod.
- Felis euismod semper eget lacinia
- Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus.
Heads up!
Horizontal description lists will truncate terms that are too long to fit in the left column fix text-overflow
. In narrower viewports, they will change to the default stacked layout.
Code Inline and block code snippets
Inline
Wrap inline snippets of code with <code>
.
For example, <code>section</code> should be wrapped as inline.
Basic block
Use <pre>
for multiple lines of code. Be sure to escape any angle brackets in the code for proper rendering.
<p>Sample text here...</p>
<pre> <p>Sample text here...</p> </pre>
Note: Be sure to keep code within <pre>
tags as close to the left as possible; it will render all tabs.
You may optionally add the .pre-scrollable
class which will set a max-height of 350px and provide a y-axis scrollbar.
Google Prettify
Take the same <pre>
element and add two optional classes for enhanced rendering.
<p>Sample text here...</p>
<pre class="prettyprint linenums"> <p>Sample text here...</p> </pre>
Download google-code-prettify and view the readme for how to use.
Tables For, you guessed it, tabular data
Table markup
Tag | Description |
---|---|
<table>
|
Wrapping element for displaying data in a tabular format |
<thead>
|
Container element for table header rows (<tr> ) to label table columns
|
<tbody>
|
Container element for table rows (<tr> ) in the body of the table
|
<tr>
|
Container element for a set of table cells (<td> or <th> ) that appears on a single row
|
<td>
|
Default table cell |
<th>
|
Special table cell for column (or row, depending on scope and placement) labels Must be used within a <thead>
|
<caption>
|
Description or summary of what the table holds, especially useful for screen readers |
<table> <thead> <tr> <th>…</th> <th>…</th> </tr> </thead> <tbody> <tr> <td>…</td> <td>…</td> </tr> </tbody> </table>
Table options
Name | Class | Description |
---|---|---|
Default | None | No styles, just columns and rows |
Basic |
.table
|
Only horizontal lines between rows |
Bordered |
.table-bordered
|
Rounds corners and adds outer border |
Zebra-stripe |
.table-striped
|
Adds light gray background color to odd rows (1, 3, 5, etc) |
Condensed |
.table-condensed
|
Cuts vertical padding in half, from 8px to 4px, within all td and th elements |
Example tables
1. Default table styles
Tables are automatically styled with only a few borders to ensure readability and maintain structure. With 2.0, the .table
class is required.
<table class="table"> … </table>
# | First Name | Last Name | Username |
---|---|---|---|
1 | Mark | Otto | @mdo |
2 | Jacob | Thornton | @fat |
3 | Larry | the Bird |
2. Striped table
Get a little fancy with your tables by adding zebra-striping—just add the .table-striped
class.
Note: Striped tables use the :nth-child
CSS selector and is not available in IE7-IE8.
<table class="table table-striped"> … </table>
# | First Name | Last Name | Username |
---|---|---|---|
1 | Mark | Otto | @mdo |
2 | Jacob | Thornton | @fat |
3 | Larry | the Bird |
3. Bordered table
Add borders around the entire table and rounded corners for aesthetic purposes.
<table class="table table-bordered"> … </table>
# | First Name | Last Name | Username |
---|---|---|---|
1 | Mark | Otto | @mdo |
Mark | Otto | @TwBootstrap | |
2 | Jacob | Thornton | @fat |
3 | Larry the Bird |
4. Condensed table
Make your tables more compact by adding the .table-condensed
class to cut table cell padding in half (from 8px to 4px).
<table class="table table-condensed"> … </table>
# | First Name | Last Name | Username |
---|---|---|---|
1 | Mark | Otto | @mdo |
2 | Jacob | Thornton | @fat |
3 | Larry the Bird |
5. Combine them all!
Feel free to combine any of the table classes to achieve different looks by utilizing any of the available classes.
<table class="table table-striped table-bordered table-condensed"> ... </table>
Full name | |||
---|---|---|---|
# | First Name | Last Name | Username |
1 | Mark | Otto | @mdo |
2 | Jacob | Thornton | @fat |
3 | Larry the Bird |
Forms
Flexible HTML and CSS
The best part about forms in Bootstrap is that all your inputs and controls look great no matter how you build them in your markup. No superfluous HTML is required, but we provide the patterns for those who require it.
More complicated layouts come with succinct and scalable classes for easy styling and event binding, so you’re covered at every step.
Four layouts included
Bootstrap comes with support for four types of form layouts:
- Vertical (default)
- Search
- Inline
- Horizontal
Different types of form layouts require some changes to markup, but the controls themselves remain and behave the same.
Control states and more
Bootstrap’s forms include styles for all the base form controls like input, textarea, and select you’d expect. But it also comes with a number of custom components like appended and prepended inputs and support for lists of checkboxes.
States like error, warning, and success are included for each type of form control. Also included are styles for disabled controls.
Four types of forms
Bootstrap provides simple markup and styles for four styles of common web forms.
Name | Class | Description |
---|---|---|
Vertical (default) | .form-vertical (not required) |
Stacked, left-aligned labels over controls |
Inline | .form-inline |
Left-aligned label and inline-block controls for compact style |
Search | .form-search |
Extra-rounded text input for a typical search aesthetic |
Horizontal | .form-horizontal |
Float left, right-aligned labels on same line as controls |
Example forms using just form controls, no extra markup
Basic form
Smart and lightweight defaults without extra markup.
<form class="well"> <label>Label name</label> <input type="text" class="span3" placeholder="Type something…"> <span class="help-block">Example block-level help text here.</span> <label class="checkbox"> <input type="checkbox"> Check me out </label> <button type="submit" class="btn">Submit</button> </form>
Search form
Add .form-search
to the form and .search-query
to the input
.
<form class="well form-search"> <input type="text" class="input-medium search-query"> <button type="submit" class="btn">Search</button> </form>
Inline form
Add .form-inline
to finesse the vertical alignment and spacing of form controls.
<form class="well form-inline"> <input type="text" class="input-small" placeholder="Email"> <input type="password" class="input-small" placeholder="Password"> <label class="checkbox"> <input type="checkbox"> Remember me </label> <button type="submit" class="btn">Sign in</button> </form>
Horizontal forms
Shown on the right are all the default form controls we support. Here’s the bulleted list:
- text inputs (text, password, email, etc)
- checkbox
- radio
- select
- multiple select
- file input
- textarea
Example markup
Given the above example form layout, here’s the markup associated with the first input and control group. The .control-group
, .control-label
, and .controls
classes are all required for styling.
<form class="form-horizontal"> <fieldset> <legend>Legend text</legend> <div class="control-group"> <label class="control-label" for="input01">Text input</label> <div class="controls"> <input type="text" class="input-xlarge" id="input01"> <p class="help-block">Supporting help text</p> </div> </div> </fieldset> </form>
Form control states
Bootstrap features styles for browser-supported focused and disabled
states. We remove the default Webkit outline
and apply a box-shadow
in its place for :focus
.
Form validation
It also includes validation styles for errors, warnings, and success. To use, add the error class to the surrounding .control-group
.
<fieldset class="control-group error"> … </fieldset>
Extending form controls
Prepend & append inputs
Input groups—with appended or prepended text—provide an easy way to give more context for your inputs. Great examples include the @ sign for Twitter usernames or $ for finances.
Checkboxes and radios
Up to v1.4, Bootstrap required extra markup around checkboxes and radios to stack them. Now, it’s a simple matter of repeating the <label class="checkbox">
that wraps the <input type="checkbox">
.
Inline checkboxes and radios are also supported. Just add .inline
to any .checkbox
or .radio
and you’re done.
Inline forms and append/prepend
To use prepend or append inputs in an inline form, be sure to place the .add-on
and input
on the same line, without spaces.
Form help text
To add help text for your form inputs, include inline help text with <span class="help-inline">
or a help text block with <p class="help-block">
after the input element.