Etiam porta sem malesuada magna mollis euismod. Maecenas faucibus mollis interdum. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Bootstrap is a toolkit from Twitter designed to kickstart development of webapps and sites.
It includes base CSS and HTML for typography, forms, buttons, tables, grids, navigation, and more.
Nerd alert: Bootstrap is built with Less and was designed to work out of the gate with modern browsers in mind.
For the quickest and easiest start, just copy this snippet into your webpage.
A fan of using Less? No problem, just clone the repo and add these lines:
Download, fork, pull, file issues, and more with the official Bootstrap repo on Github.
In the earlier days of Twitter, engineers used almost any library they were familiar with to meet front-end requirements. Bootstrap began as an answer to the challenges that presented and development quickly accelerated during Twitter’s first Hackweek.
With the help and feedback of many engineers at Twitter, Bootstrap has grown significantly to encompass not only basic styles, but more elegant and durable front-end design patterns.
Read more on dev.twitter.com ›
Bootstrap is tested and supported in modern browsers like Chrome, Safari, and Firefox. Full support for some versions of Internet Explorer is in the works.
Bootstrap comes complete with compiled CSS, uncompiled, and example templates.
The default grid system provided as part of Bootstrap is a 940px wide 16-column grid. It’s a flavor of the popular 960 grid system, but without the additional margin/padding on the left and right sides.
As shown here, a basic layout can be created with two "columns," each spanning a number of the 16 foundational columns we defined as part of our grid system. See the examples below for more variations.
<div class="row"> <div class="span6 columns"> ... </div> <div class="span10 columns"> ... </div> </div>
A basic 940px wide, centered container layout for just about any site or page.
<body> <div class="container"> ... </div> </body>
A flexible fluid or liquid page structure with min- and max-widths and a left-hand sidebar. Great for apps.
<body> <div class="container-fluid"> <div class="sidebar"> ... </div> <div class="content"> ... </div> </div> </body>
A standard typographic hierarchy for structuring your webpages.
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 ut id elit.
Using emphasis, addresses, & abbreviations
<strong>
<em>
<address>
<abbr>
Emphasis tags (<strong>
and <em>
) should be used to indicate additional importance or emphasis of a word or phrase relative to its surrounding copy. Use <strong>
for importance and <em>
for stress 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: It's still okay to use <b>
and <i>
tags in HTML5, but they don't come with inherent styles anymore. <b>
is meant to highlight words or phrases without conveying additional importance, while <i>
is mostly for voice, technical terms, etc.
The <address>
element is used for contact information for its nearest ancestor, or the entire body of work. Here’s how it looks:
Note: Each line in an <address>
must end with a line-break (<br />
) or be wrapped in a block-level tag (e.g., <p>
) to properly structure the content.
For abbreviations and acronyms, use the <abbr>
tag (<acronym>
is deprecated in HTML5). Put the shorthand form within the tag and set a title for the complete name.
<blockquote>
<p>
<small>
Be sure to wrap your <blockquote>
around <p>
and <small>
tags. When citing a source, use the <small>
element. The CSS will automatically preface a name with an em dash (—).
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua…
Dr. Julius Hibbert
<ul>
<ul.unstyled>
<ol>
dl
<table>
<thead>
<tbody>
<tr>
<th>
<td>
<colspan>
<caption>
Tables are great—for a lot of things. Great tables, however, need a bit of markup love to be useful, scalable, and readable (at the code level). Here are a few tips to help.
Always wrap your column headers in a <thead>
such that hierarchy is <thead>
> <tr>
> <th>
.
Similar to the column headers, all your table’s body content should be wrapped in a <tbody>
so your hierarchy is <tbody>
> <tr>
> <td>
.
All tables will be automatically styled with only the essential borders to ensure readability and maintain structure. No need to add extra classes or attributes.
# | First Name | Last Name | Language |
---|---|---|---|
1 | Some | One | English |
2 | Joe | Sixpack | English |
3 | Stu | Dent | Code |
<table class="common-table"> ... </table>
Get a little fancy with your tables by adding zebra-striping—just add the .zebra-striped
class.
# | First Name | Last Name | Language |
---|---|---|---|
1 | Some | One | English |
2 | Joe | Sixpack | English |
3 | Stu | Dent | Code |
<table class="common-table zebra-striped"> ... </table>
Taking the previous example, we improve the usefulness of our tables by providing sorting functionality via jQuery and the Tablesorter plugin. Click any column’s header to change the sort.
# | First Name | Last Name | Language |
---|---|---|---|
1 | Your | One | English |
2 | Joe | Sixpack | English |
3 | Stu | Dent | Code |
<script src="js/jquery/jquery.tablesorter.min.js"></script> <script > $(function() { $("table#sortTableExample").tablesorter({ sortList: [[1,0]] }); }); </script> <table class="common-table zebra-striped"> ... </table>
All forms are given default styles to present them in a readable and scalable way. Styles are provided for text inputs, select lists, textareas, radio buttons and checkboxes, and buttons.
Add .form-stacked
to your form’s HTML and you’ll have labels on top of their fields instead of to their left. This works great if your forms are short or you have two columns of inputs for heavier forms.
As a convention, buttons are used for actions while links are used for objects. For instance, "Download" could be a button and "recent activity" could be a link.
All buttons default to a light gray style, but a blue .primary
class is available. Plus, rolling your own styles is easy peasy.
Button styles can be applied to anything with the .btn
applied. Typically you’ll want to apply these to only <a>
, <button>
, and select <input>
elements. Here’s how it looks:
Fancy larger or smaller buttons? Have at it!
For buttons that are not active or are disabled by the app for one reason or another, use the disabled state. That’s .disabled
for links and :disabled
for <button>
elements.