Components · Twitter Bootstrap

# Button groups Join buttons for more toolbar-like functionality

### Button groups

Use button groups to join multiple buttons together as one composite component. Build them with a series of `<a>` or `<button>` elements.

### Best practices

We recommend the following guidelines for using button groups and toolbars:

- Always use the same element in a single button group, `<a>` or `<button>`.
- Don't mix buttons of different colors in the same button group.
- Use icons in addition to or instead of text, but be sure include alt and title text where appropriate.

Related Button groups with dropdowns (see below) should be called out separately and always include a dropdown caret to indicate intended behavior.

### Default example

Here's how the HTML looks for a standard button group built with anchor tag buttons:

    <div class="btn-group">
      <button class="btn">1</button>
      <button class="btn">2</button>
      <button class="btn">3</button>
    </div>

### Toolbar example

Combine sets of `<div class="btn-group">` into a `<div class="btn-toolbar">` for more complex components.

    <div class="btn-toolbar">
      <div class="btn-group">
        ...
      </div>
    </div>

### Checkbox and radio flavors

Button groups can also function as radios, where only one button may be active, or checkboxes, where any number of buttons may be active. View the Javascript docs for that.

Get the javascript »

### Dropdowns in button groups

Heads up! Buttons with dropdowns must be individually wrapped in their own `.btn-group` within a `.btn-toolbar` for proper rendering.

# Button dropdown menus Built on button groups to provide contextual menus

## Button dropdowns

### Overview and examples

Use any button to trigger a dropdown menu by placing it within a `.btn-group` and providing the proper menu markup.

### Example markup

Similar to a button group, our markup uses regular button markup, but with a handful of additions to refine the style and support Bootstrap's dropdown jQuery plugin.

    <div class="btn-group">
      <a class="btn dropdown-toggle" data-toggle="dropdown" href="#">
        Action
        <span class="caret"></span>
      </a>
      <ul class="dropdown-menu">
        <!-- dropdown menu links -->
      </ul>
    </div>

### Works with all button sizes

Button dropdowns work at any size. your button sizes to `.btn-large`, `.btn-small`, or `.btn-mini`.

### Requires javascript

Button dropdowns require the Bootstrap dropdown plugin to function.

In some cases—like mobile—dropdown menus will extend outside the viewport. You need to resolve the alignment manually or with custom javascript.

## Split button dropdowns

### Overview and examples

Building on the button group styles and markup, we can easily create a split button. Split buttons feature a standard action on the left and a dropdown toggle on the right with contextual links.

### Sizes

Utilize the extra button classe `.btn-mini`, `.btn-small`, or `.btn-large` for sizing.

    <div class="btn-group">
      ...
      <ul class="dropdown-menu pull-right">
        <!-- dropdown menu links -->
      </ul>
    </div>

### Example markup

We expand on the normal button dropdowns to provide a second button action that operates as a separate dropdown trigger.

    <div class="btn-group">
      <button class="btn">Action</button>
      <button class="btn dropdown-toggle" data-toggle="dropdown">
        <span class="caret"></span>
      </button>
      <ul class="dropdown-menu">
        <!-- dropdown menu links -->
      </ul>
    </div>

### Dropup menus

Dropdown menus can also be toggled from the bottom up by adding a single class to the immediate parent of `.dropdown-menu`. It will flip the direction of the `.caret` and reposition the menu itself to move from the bottom up instead of top down.

    <div class="btn-group dropup">
      <button class="btn">Dropup</button>
      <button class="btn dropdown-toggle" data-toggle="dropdown">
        <span class="caret"></span>
      </button>
      <ul class="dropdown-menu">
        <!-- dropdown menu links -->
      </ul>
    </div>

# Nav, tabs, and pills Highly customizable list-style navigation

## Lightweight defaults Same markup, different classes

### Powerful base class

All nav components here—tabs, pills, and lists—share the same base markup and styles through the `.nav` class.

### When to use

Tabs and pills are great for sections of content or navigating between pages of related content.

### Component alignment

To align nav links, use the `.pull-left` or `.pull-right` utility classes. Both classes will add a CSS float in the specified direction.

### Basic tabs

Take a regular `<ul>` of links and add `.nav-tabs`:

    <ul class="nav nav-tabs">
      <li class="active">
        <a href="#">Home</a>
      </li>
      <li><a href="#">...</a></li>
      <li><a href="#">...</a></li>
    </ul>

### Basic pills

Take that same HTML, but use `.nav-pills` instead:

    <ul class="nav nav-pills">
      <li class="active">
        <a href="#">Home</a>
      </li>
      <li><a href="#">...</a></li>
      <li><a href="#">...</a></li>
    </ul>

## Stackable Make tabs or pills vertical

### How to stack 'em

As tabs and pills are horizontal by default, just add a second class, `.nav-stacked`, to make them appear vertically stacked.

### Stacked tabs

    <ul class="nav nav-tabs nav-stacked">
      ...
    </ul>

### Stacked pills

    <ul class="nav nav-pills nav-stacked">
      ...
    </ul>

## Dropdowns For advanced nav components

### Rich menus made easy

Dropdown menus in Bootstrap tabs and pills are super easy and require only a little extra HTML and a lightweight jQuery plugin.

Head over to the Javascript page to read the docs on initializing dropdowns in Bootstrap.

### Tabs with dropdowns

    <ul class="nav nav-tabs">
      <li class="dropdown">
        <a class="dropdown-toggle"
           data-toggle="dropdown"
           href="#">
            Dropdown
            <b class="caret"></b>
          </a>
        <ul class="dropdown-menu">
          <!-- links -->
        </ul>
      </li>
    </ul>

### Pills with dropdowns

    <ul class="nav nav-pills">
      <li class="dropdown">
        <a class="dropdown-toggle"
           data-toggle="dropdown"
           href="#">
            Dropdown
            <b class="caret"></b>
          </a>
        <ul class="dropdown-menu">
          <!-- links -->
        </ul>
      </li>
    </ul>

## Nav lists Build simple stacked navs, great for sidebars

### Application-style navigation

Nav lists provide a simple and easy way to build groups of nav links with optional headers. They're best used in sidebars like the Finder in OS X.

Structurally, they're built on the same core nav styles as tabs and pills, so usage and customization are straightforward.

#### With icons

Nav lists are also easy to equip with icons. Add the proper `<i>` tag with class and you're set.

#### Horizontal dividers

Add a horizontal divider by creating an empty list item with the class `.divider`, like so:

    <ul class="nav nav-list">
      ...
      <li class="divider"></li>
      ...
    </ul>

### Example nav list

Take a list of links and add `class="nav nav-list"`:

    <ul class="nav nav-list">
      <li class="nav-header">
        List header
      </li>
      <li class="active">
        <a href="#">Home</a>
      </li>
      <li>
        <a href="#">Library</a>
      </li>
      ...
    </ul>

### Example with icons

Same example, but with `<i>` tags for icons.

    <ul class="nav nav-list">
      ...
      <li>
        <a href="#">
          <i class="icon-book"></i>
          Library
        </a>
      </li>
      ...
    </ul>

## Tabbable nav Bring tabs to life via javascript

### What's included

Bring your tabs to life with a simple plugin to toggle between content via tabs. Bootstrap integrates tabbable tabs in four styles: top (default), right, bottom, and left.

Changing between them is easy and only requires changing very little markup.

### Tabbable example

To make tabs tabbable, wrap the `.nav-tabs` in another div with class `.tabbable`.

I'm in Section 1.

Howdy, I'm in Section 2.

What up girl, this is Section 3.

### Custom jQuery plugin

All tabbable tabs are powered by our lightweight jQuery plugin. Read more about how to bring tabbable tabs to life on the javascript docs page.

Get the javascript →

### Straightforward markup

Using tabbable tabs requires a wrapping div, a set of tabs, and a set of tabbable panes of content.

    <div class="tabbable">
      <ul class="nav nav-tabs">
        <li class="active"><a href="#1" data-toggle="tab">Section 1</a></li>
        <li><a href="#2" data-toggle="tab">Section 2</a></li>
      </ul>
      <div class="tab-content">
        <div class="tab-pane active" id="1">
          <p>I'm in Section 1.</p>
        </div>
        <div class="tab-pane" id="2">
          <p>Howdy, I'm in Section 2.</p>
        </div>
      </div>
    </div>

### Tabbable in any direction

#### Tabs on the bottom

Flip the order of the HTML and add a class to put tabs on the bottom.

I'm in Section A.

Howdy, I'm in Section B.

What up girl, this is Section C.

    <div class="tabbable tabs-below">
      <div class="tab-content">
        ...
      </div>
      <ul class="nav nav-tabs">
        ...
      </ul>
    </div>

#### Tabs on the left

Swap the class to put tabs on the left.

I'm in Section A.

Howdy, I'm in Section B.

What up girl, this is Section C.

    <div class="tabbable tabs-left">
      <ul class="nav nav-tabs">
        ...
      </ul>
      <div class="tab-content">
        ...
      </div>
    </div>

#### Tabs on the right

Swap the class to put tabs on the right.

I'm in Section A.

Howdy, I'm in Section B.

What up girl, this is Section C.

    <div class="tabbable tabs-right">
      <ul class="nav nav-tabs">
        ...
      </ul>
      <div class="tab-content">
        ...
      </div>
    </div>

# Navbar

## Static navbar example

An example of a static (not fixed to the top) navbar with project name, navigation, and search form.

### Navbar scaffolding

The navbar requires only a few divs to structure it well for static or fixed display.

    <div class="navbar">
      <div class="navbar-inner">
        <div class="container">
          ...
        </div>
      </div>
    </div>

### Fixed navbar

Fix the navbar to the top or bottom of the viewport with an additional class on the outermost div, `.navbar`.

    <div class="navbar navbar-fixed-top">
      ...
    </div>

    <div class="navbar navbar-fixed-bottom">
      ...
    </div>

When you affix the navbar, remember to account for the hidden area underneath. Add 40px or more of apdding to the `<body>`. Be sure to add this after the core Bootstrap CSS and before the optional responsive CSS.

### Brand name

A simple link to show your brand or project name only requires an anchor tag.

    <a class="brand" href="#">
      Project name
    </a>

### Forms in navbar

To properly style and position a form within the navbar, add the appropriate classes as shown below. For a default form, include `.navbar-form` and either `.pull-left` or `.pull-right` to properly align it.

    <form class="navbar-form pull-left">
      <input type="text" class="span2">
    </form>

For a more customized search form, add the `.navbar-search` class to receive specialized styles in the navbar.

    <form class="navbar-search pull-left">
      <input type="text" class="search-query" placeholder="Search">
    </form>

### Optional responsive variation

Depending on the amount of content in your topbar, you might want to implement the responsive options. To do so, wrap your nav content in a containing div, `.nav-collapse.collapse`, and add the navbar toggle button, `.btn-navbar`.

    <div class="navbar">
      <div class="navbar-inner">
        <div class="container">

          <!-- .btn-navbar is used as the toggle for collapsed navbar content -->
          <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </a>

          <!-- Be sure to leave the brand out there if you want it shown -->
          <a class="brand" href="#">Project name</a>

          <!-- Everything you want hidden at 940px or less, place within here -->
          <div class="nav-collapse">
            <!-- .nav, .navbar-search, .navbar-form, etc -->
          </div>

        </div>
      </div>
    </div>

Heads up! The responsive navbar requires the collapse plugin.

### Nav links

Nav items are simple to add via unordered lists.

    <ul class="nav">
      <li class="active">
        <a href="#">Home</a>
      </li>
      <li><a href="#">Link</a></li>
      <li><a href="#">Link</a></li>
    </ul>

You can easily add dividers to your nav links with an empty list item and a simple class. Just add this between links:

    <ul class="nav">
      ...
      <li class="divider-vertical"></li>
      ...
    </ul>

### Component alignment

To align a nav, search form, or text, use the `.pull-left` or `.pull-right` utility classes. Both classes will add a CSS float in the specified direction.

### Adding dropdown menus

Adding dropdowns and dropups to the nav is super simple, but does require the use of our javascript plugin.

    <ul class="nav">
      <li class="dropdown">
        <a href="#"
              class="dropdown-toggle"
              data-toggle="dropdown">
              Account
              <b class="caret"></b>
        </a>
        <ul class="dropdown-menu">
          ...
        </ul>
      </li>
    </ul>

Get the javascript →

### Text in the navbar

Wrap strings of text in a `<p>` tag for proper leading and color.

# Breadcrumbs

### Why use them

Breadcrumb navigation is used as a way to show users where they are within an app or a site, but not for primary navigation. Keep their use sparse and succinct to be most effective.

### Examples

A single example shown as it might be displayed across multiple pages.

### Markup

HTML is your standard unordered list with links.

    <ul class="breadcrumb">
      <li>
        <a href="#">Home</a> <span class="divider">/</span>
      </li>
      <li>
        <a href="#">Library</a> <span class="divider">/</span>
      </li>
      <li class="active">Data</li>
    </ul>

# Pagination Two options for paging through content

## Multicon-page pagination

### When to use

Ultra simplistic and minimally styled pagination inspired by Rdio, great for apps and search results. The large block is hard to miss, easily scalable, and provides large click areas.

### Stateful page links

Links are customizable and work in a number of circumstances with the right class. `.disabled` for unclickable links and `.active` for current page.

### Flexible alignment

Add either of two optional classes to change the alignment of pagination links: `.pagination-centered` and `.pagination-right`.

### Examples

The default pagination component is flexible and works in a number of variations.

- «
- 1
- 2
- 3
- 4
- »

- «
- 10
- 11
- 12
- »

- ←
- 10
- ...
- 20
- →

- 1
- 2
- 3
- 4
- 5

### Markup

Wrapped in a `<div>`, pagination is just a `<ul>`.

    <div class="pagination">
      <ul>
        <li><a href="#">Prev</a></li>
        <li class="active">
          <a href="#">1</a>
        </li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
        <li><a href="#">4</a></li>
        <li><a href="#">Next</a></li>
      </ul>
    </div>

## Pager For quick previous and next links

### About pager

The pager component is a set of links for simple pagination implementations with light markup and even lighter styles. It's great for simple sites like blogs or magazines.

#### Optional disabled state

Pager links also use the general `.disabled` class from the pagination.

### Default example

By default, the pager centers links.

- Previous
- Next

    <ul class="pager">
      <li>
        <a href="#">Previous</a>
      </li>
      <li>
        <a href="#">Next</a>
      </li>
    </ul>

### Aligned links

Alternatively, you can align each link to the sides:

- ← Older
- Newer →

    <ul class="pager">
      <li class="previous">
        <a href="#">&larr; Older</a>
      </li>
      <li class="next">
        <a href="#">Newer &rarr;</a>
      </li>
    </ul>

# Inline labels Label and annotate text

Labels | Markup
--- | ---
Default | `<span class="label">Default</span>`
Success | `<span class="label label-success">Success</span>`
Warning | `<span class="label label-warning">Warning</span>`
Important | `<span class="label label-important">Important</span>`
Info | `<span class="label label-info">Info</span>`
Inverse | `<span class="label label-inverse">Inverse</span>`

# Badges Indicators and unread counts

### About

Badges are small, simple components for displaying an indicator or count of some sort. They're commonly found in email clients like Mail.app or on mobile apps for push notifications.

### Available classes

Name | Example | Markup
--- | --- | ---
Default | 1 | `<span class="badge">1</span>`
Success | 2 | `<span class="badge badge-success">2</span>`
Warning | 4 | `<span class="badge badge-warning">4</span>`
Error | 6 | `<span class="badge badge-error">6</span>`
Info | 8 | `<span class="badge badge-info">8</span>`
Inverse | 10 | `<span class="badge badge-inverse">10</span>`

# Typographic components Page header and hero unit for segmenting content

## Hero unit

Bootstrap provides a lightweight, flexible component called a hero unit to showcase content on your site. It works well on marketing and content-heavy sites.

### Markup

Wrap your content in a `div` like so:

    <div class="hero-unit">
      <h1>Heading</h1>
      <p>Tagline</p>
      <p>
        <a class="btn btn-primary btn-large">
          Learn more
        </a>
      </p>
    </div>

# Hello, world!

This is a simple hero unit, a simple jumbotron-style component for calling extra attention to featured content or information.

Learn more

## Page header

A simple shell for an `h1` to appropratiely space out and segment sections of content on a page. It can utilize the `h1`'s default `small`, element as well most other components (with additional styles).

# Example page header Subtext for header

    <div class="page-header">
      <h1>Example page header</h1>
    </div>

# Thumbnails Grids of images, videos, text, and more

## Default thumbnails

By default, Bootstrap's thumbnails are designed to showcase linked images with minimal required markup.

## Highly customizable

With a bit of extra markup, it's possible to add any kind of HTML content like headings, paragraphs, or buttons into thumbnails.

- ##### Thumbnail label

  Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.

  Action Action

- ##### Thumbnail label

  Cras justo odio, dapibus ac facilisis in, egestas eget quam. Donec id elit non mi porta gravida at eget metus. Nullam id dolor id nibh ultricies vehicula ut id elit.

  Action Action

### Why use thumbnails

Thumbnails (previously `.media-grid` up until v1.4) are great for grids of photos or videos, image search results, retail products, portfolios, and much more. They can be links or static content.

### Simple, flexible markup

Thumbnail markup is simple—a `ul` with any number of `li` elements is all that is required. It's also super flexible, allowing for any type of content with just a bit more markup to wrap your contents.

### Uses grid column sizes

Lastly, the thumbnails component uses existing grid system classes—like `.span2` or `.span3`—for control of thumbnail dimensions.

## The markup

As mentioned previously, the required markup for thumbnails is light and straightforward. Here's a look at the default setup for linked images:

    <ul class="thumbnails">
      <li class="span3">
        <a href="#" class="thumbnail">
          <img src="http://placehold.it/260x180" alt="">
        </a>
      </li>
      ...
    </ul>

For custom HTML content in thumbnails, the markup changes slightly. To allow block level content anywhere, we swap the `<a>` for a `<div>` like so:

    <ul class="thumbnails">
      <li class="span3">
        <div class="thumbnail">
          <img src="http://placehold.it/260x180" alt="">
          <h5>Thumbnail label</h5>
          <p>Thumbnail caption right here...</p>
        </div>
      </li>
      ...
    </ul>

## More examples

Explore all your options with the various grid classes available to you. You can also mix and match different sizes.

# Alerts Styles for success, warning, and error messages

## Lightweight defaults

### Rewritten base class

With Bootstrap 2, we've simplified the base class: `.alert` instead of `.alert-message`. We've also reduced the minimum required markup—no `<p>` is required by default, just the outer `<div>`.

### Single alert message

For a more durable component with less code, we've removed the differentiating look for block alerts, messages that come with more padding and typically more text. The class also has changed to `.alert-block`.

### Goes great with javascript

Bootstrap comes with a great jQuery plugin that supports alert messages, making dismissing them quick and easy.

Get the plugin »

### Example alerts

Wrap your message and an optional close icon in a div with simple class.

× Warning! Best check yo self, you're not looking too good.

    <div class="alert">
      <a class="close" data-dismiss="alert">×</a>
      <strong>Warning!</strong> Best check yo self, you're not looking too good.
    </div>

Easily extend the standard alert message with two optional classes: `.alert-block` for more padding and text controls and `.alert-heading` for a matching heading.

×

#### Warning!

Best check yo self, you're not looking too good. Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.

    <div class="alert alert-block">
      <a class="close" data-dismiss="alert">×</a>
      <h4 class="alert-heading">Warning!</h4>
      Best check yo self, you're not...
    </div>

## Contextual alternatives Add optional classes to change an alert's connotation

### Error or danger

× Oh snap! Change a few things up and try submitting again.

    <div class="alert alert-error">
      ...
    </div>

### Success

× Well done! You successfully read this important alert message.

    <div class="alert alert-success">
      ...
    </div>

### Information

× Heads up! This alert needs your attention, but it's not super important.

    <div class="alert alert-info">
      ...
    </div>

# Progress bars For loading, redirecting, or action status

## Examples and markup

### Basic

Default progress bar with a vertical gradient.

    <div class="progress">
      <div class="bar"
           style="width: 60%;"></div>
    </div>

### Striped

Uses a gradient to create a striped effect (no IE).

    <div class="progress progress-striped">
      <div class="bar"
           style="width: 20%;"></div>
    </div>

### Animated

Takes the striped example and animates it (no IE).

    <div class="progress progress-striped
         active">
      <div class="bar"
           style="width: 40%;"></div>
    </div>

## Options and browser support

### Additional colors

Progress bars use some of the same button and alert classes for consistent styles.

### Striped bars

Similar to the solid colors, we have varied striped progress bars.

### Behavior

Progress bars use CSS3 transitions, so if you dynamically adjust the width via javascript, it will smoothly resize.

If you use the `.active` class, your `.progress-striped` progress bars will animate the stripes left to right.

### Browser support

Progress bars use CSS3 gradients, transitions, and animations to achieve all their effects. These features are not supported in IE7-9 or older versions of Firefox.

Opera and IE do not support animations at this time.

# Miscellaneous Lightweight utility components

## Wells

Use the well as a simple effect on an element to give it an inset effect.

Look, I'm in a well!

    <div class="well">
      ...
    </div>

## Close icon

Use the generic close icon for dismissing content like modals and alerts.

×

    <a class="close">&times;</a>