<p>Buttons will appear pressed (with a darker background, darker border, and inset shadow) when active. For <code><button></code> elements, this is done via <code>:active</code>. For <code><a></code> elements, it's done with <code>.active</code>. However, you may use <code>.active</code> on <code><button></code>s should you need to replicate the active state programmatically.</p>
<h3>Button element</h3>
<p>No need to add <code>:active</code> as it's a pseudo-class, but if you need to force the same appearance, go ahead and add <code>.active</code>.</p>
Buttons will appear pressed (with a darker background, darker border, and inset shadow) when active. **There's no need to add a class to `<button>`s as they use a pseudo-class**. However, you can still force the same active appearance with `.active` should you need to replicate the state programmatically.
<p>If you add the <code>disabled</code> attribute to a <code><button></code>, Internet Explorer 9 and below will render text gray with a nasty text-shadow that we cannot fix.</p>
</div>
<h3>Anchor element</h3>
<p>Add the <code>.disabled</code> class to <code><a></code> buttons.</p>
We use <code>.disabled</code> as a utility class here, similar to the common <code>.active</code> class, so no prefix is required.
</p>
<divclass="bs-callout bs-callout-warning">
<h4>Link functionality caveat</h4>
<p>This class uses <code>pointer-events: none</code> to try to disable the link functionality of <code><a></code>s, but that CSS property is not yet standardized and isn't fully supported in Opera 18 and below, or in Internet Explorer 11. So to be safe, use custom JavaScript to disable such links.</p>
</div>
<divclass="bs-callout bs-callout-warning">
<h4>Context-specific usage</h4>
<p>While button classes can be used on <code><a></code> and <code><button></code> elements, only <code><button></code> elements are supported within our nav and navbar components.</p>
</div>
<h2id="buttons-tags">Button tags</h2>
<p>Use the button classes on an <code><a></code>, <code><button></code>, or <code><input></code> element.</p>
<p>If you add the <code>disabled</code> attribute to a <code><button></code>, Internet Explorer 9 and below will render text gray with a nasty text-shadow that we cannot fix.</p>
</div>
<divclass="bs-callout bs-callout-warning">
<h4>Link functionality caveat</h4>
<p>This class uses <code>pointer-events: none</code> to try to disable the link functionality of <code><a></code>s, but that CSS property is not yet standardized and isn't fully supported in Opera 18 and below, or in Internet Explorer 11. So to be safe, use custom JavaScript to disable such links.</p>
</div>
<divclass="bs-callout bs-callout-warning">
<h4>Context-specific usage</h4>
<p>While button classes can be used on <code><a></code> and <code><button></code> elements, only <code><button></code> elements are supported within our nav and navbar components.</p>
</div>
<aid="buttons-tags"></a>
## Button tags
Use the button classes on an `<a>`, `<button>`, or `<input>` element.
<p>As a best practice, <strong>we highly recommend using the <code><button></code> element whenever possible</strong> to ensure matching cross-browser rendering.</p>
<p>Among other things, there's <ahref="https://bugzilla.mozilla.org/show_bug.cgi?id=697451">a bug in Firefox <30</a> that prevents us from setting the <code>line-height</code> of <code><input></code>-based buttons, causing them to not exactly match the height of other buttons on Firefox.</p>
</div>
<divclass="bs-callout bs-callout-warning">
<h4>Cross-browser rendering</h4>
<p>As a best practice, <strong>we highly recommend using the <code><button></code> element whenever possible</strong> to ensure matching cross-browser rendering.</p>
<p>Among other things, there's <ahref="https://bugzilla.mozilla.org/show_bug.cgi?id=697451">a bug in Firefox <30</a> that prevents us from setting the <code>line-height</code> of <code><input></code>-based buttons, causing them to not exactly match the height of other buttons on Firefox.</p>
<p>Convey meaning through color with a handful of emphasis utility classes. These may also be applied to links and will darken on hover just like our default link styles.</p>
<divclass="bs-example">
<pclass="text-muted">Fusce dapibus, tellus ac cursus commodo, tortor mauris nibh.</p>
<pclass="text-primary">Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
<pclass="text-success">Duis mollis, est non commodo luctus, nisi erat porttitor ligula.</p>
<pclass="text-info">Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
<pclass="text-warning">Etiam porta sem malesuada magna mollis euismod.</p>
<pclass="text-danger">Donec ullamcorper nulla non metus auctor fringilla.</p>
</div>
{% highlight html %}
<pclass="text-muted">...</p>
<pclass="text-primary">...</p>
<pclass="text-success">...</p>
<pclass="text-info">...</p>
<pclass="text-warning">...</p>
<pclass="text-danger">...</p>
{% endhighlight %}
<divclass="bs-callout bs-callout-info">
<h4>Dealing with specificity</h4>
<p>Sometimes emphasis classes cannot be applied due to the specificity of another selector. In most cases, a sufficient workaround is to wrap your text in a <code><span></code> with the class.</p>
<p>Similar to the contextual text color classes, easily set the background of an element to any contextual class. Anchor components will darken on hover, just like the text classes.</p>
<divclass="bs-example bs-example-bg-classes">
<pclass="bg-primary">Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
<pclass="bg-success">Duis mollis, est non commodo luctus, nisi erat porttitor ligula.</p>
<pclass="bg-info">Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
<pclass="bg-warning">Etiam porta sem malesuada magna mollis euismod.</p>
<pclass="bg-danger">Donec ullamcorper nulla non metus auctor fringilla.</p>
</div>
{% highlight html %}
<pclass="bg-primary">...</p>
<pclass="bg-success">...</p>
<pclass="bg-info">...</p>
<pclass="bg-warning">...</p>
<pclass="bg-danger">...</p>
{% endhighlight %}
<divclass="bs-callout bs-callout-info">
<h4>Dealing with specificity</h4>
<p>Sometimes contextual background classes cannot be applied due to the specificity of another selector. In some cases, a sufficient workaround is to wrap your element's content in a <code><div></code> with the class.</p>
</div>
<h3id="helper-classes-close">Close icon</h3>
<p>Use the generic close icon for dismissing content like modals and alerts.</p>
<p>Float an element to the left or right with a class. <code>!important</code> is included to avoid specificity issues. Classes can also be used as mixins.</p>
{% highlight html %}
# Helper classes
<aid="helpers-colors"></a>
### Contextual colors
Convey meaning through color with a handful of emphasis utility classes. These may also be applied to links and will darken on hover just like our default link styles.
{% example html %}
<pclass="text-muted">Fusce dapibus, tellus ac cursus commodo, tortor mauris nibh.</p>
<pclass="text-primary">Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
<pclass="text-success">Duis mollis, est non commodo luctus, nisi erat porttitor ligula.</p>
<pclass="text-info">Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
<pclass="text-warning">Etiam porta sem malesuada magna mollis euismod.</p>
<pclass="text-danger">Donec ullamcorper nulla non metus auctor fringilla.</p>
{% endexample %}
<divclass="bs-callout bs-callout-info">
<h4>Dealing with specificity</h4>
<p>Sometimes emphasis classes cannot be applied due to the specificity of another selector. In most cases, a sufficient workaround is to wrap your text in a <code><span></code> with the class.</p>
</div>
<aid="helpers-bgs"></a>
### Contextual backgrounds
Similar to the contextual text color classes, easily set the background of an element to any contextual class. Anchor components will darken on hover, just like the text classes.
{% example html %}
<divclass="bg-primary">Nullam id dolor id nibh ultricies vehicula ut id elit.</div>
<divclass="bg-success">Duis mollis, est non commodo luctus, nisi erat porttitor ligula.</div>
<divclass="bg-info">Maecenas sed diam eget risus varius blandit sit amet non magna.</div>
<divclass="bg-warning">Etiam porta sem malesuada magna mollis euismod.</div>
<divclass="bg-danger">Donec ullamcorper nulla non metus auctor fringilla.</div>
{% endexample %}
<divclass="bs-callout bs-callout-info">
<h4>Dealing with specificity</h4>
<p>Sometimes contextual background classes cannot be applied due to the specificity of another selector. In some cases, a sufficient workaround is to wrap your element's content in a <code><div></code> with the class.</p>
</div>
<aid="helpers-close"></a>
### Close icon
Use a generic close icon for dismissing content like modals and alerts. **Be sure to include screen reader text when you can** as we've done with `.sr-only`.
{% example html %}
<buttontype="button"class="close">
<spanaria-hidden="true">×</span>
<spanclass="sr-only">Close</span>
</button>
{% endexample %}
<aid="helpers-floats"></a>
### Quick floats
Float an element to the left or right with a class. `!important` is included to avoid specificity issues. Classes can also be used as mixins.
{% example html %}
<divclass="pull-left">...</div>
<divclass="pull-right">...</div>
{% endhighlight %}
{% endexample %}
{% highlight scss %}
// Classes
.pull-left {
...
...
@@ -78,17 +91,23 @@
}
{% endhighlight %}
<divclass="bs-callout bs-callout-warning">
<h4>Not for use in navbars</h4>
<p>To align components in navbars with utility classes, use <code>.navbar-left</code> or <code>.navbar-right</code> instead. <ahref="../components/#navbar-component-alignment">See the navbar docs</a> for details.</p>
</div>
<divclass="bs-callout bs-callout-warning">
<h4>Not for use in navbars</h4>
<p>To align components in navbars with utility classes, use <code>.navbar-left</code> or <code>.navbar-right</code> instead. <ahref="../components/#navbar-component-alignment">See the navbar docs</a> for details.</p>
<p>Set an element to <code>display: block</code> and center via <code>margin</code>. Available as a mixin and class.</p>
{% highlight html %}
<aid="helpers-center"></a>
### Center content blocks
Set an element to `display: block;` and center via `margin`. Available as a mixin and class.
{% example html %}
<divclass="center-block">...</div>
{% endhighlight %}
{% endexample %}
{% highlight scss %}
// Classes
.center-block {
...
...
@@ -104,12 +123,15 @@
{% endhighlight %}
<h3id="helper-classes-clearfix">Clearfix</h3>
<p>Easily clear <code>float</code>s by adding <code>.clearfix</code><strong>to the parent element</strong>. Utilizes <ahref="http://nicolasgallagher.com/micro-clearfix-hack/">the micro clearfix</a> as popularized by Nicolas Gallagher. Can also be used as a mixin.</p>
<aid="helpers-clearfix"></a>
Easily clear `float`s by adding `.clearfix`**to the parent element**. Utilizes [the micro clearfix](http://nicolasgallagher.com/micro-clearfix-hack/) as popularized by Nicolas Gallagher. Can also be used as a mixin.
{% highlight html %}
<!-- Usage as a class -->
<divclass="clearfix">...</div>
{% endhighlight %}
{% highlight scss %}
// Mixin itself
.clearfix() {
...
...
@@ -130,13 +152,20 @@
{% endhighlight %}
<h3id="helper-classes-show-hide">Showing and hiding content</h3>
<p>Force an element to be shown or hidden (<strong>including for screen readers</strong>) with the use of <code>.show</code> and <code>.hidden</code> classes. These classes use <code>!important</code> to avoid specificity conflicts, just like the <ahref="#helper-classes-floats">quick floats</a>. They are only available for block level toggling. They can also be used as mixins.</p>
<p>Furthermore, <code>.invisible</code> can be used to toggle only the visibility of an element, meaning its <code>display</code> is not modified and the element can still affect the flow of the document.</p>
<aid="helpers-toggles"></a>
### Showing and hiding content
Force an element to be shown or hidden (**including for screen readers**) with the use of `.show` and `.hidden` classes. These classes use `!important` to avoid specificity conflicts, just like the [quick floats](#helper-floats). They are only available for block level toggling. They can also be used as mixins.
Furthermore, `.invisible` can be used to toggle only the visibility of an element, meaning its `display` is not modified and the element can still affect the flow of the document.
{% highlight html %}
<divclass="show">...</div>
<divclass="hidden">...</div>
{% endhighlight %}
{% highlight scss %}
// Classes
.show {
...
...
@@ -160,11 +189,17 @@
{% endhighlight %}
<h3id="helper-classes-screen-readers">Screen reader and keyboard navigation content</h3>
<p>Hide an element to all devices <strong>except screen readers</strong> with <code>.sr-only</code>. Combine <code>.sr-only</code> with <code>.sr-only-focusable</code> to show the element again when it's focused (e.g. by a keyboard-only user). Necessary for following <ahref="../getting-started/#accessibility">accessibility best practices</a>. Can also be used as mixins.</p>
<aid="helpers-screen-readers"></a>
### Screen readers and keyboard navigation
Hide an element to all devices **except screen readers** with `.sr-only`. Combine `.sr-only` with `.sr-only-focusable` to show the element again when it's focused (e.g. by a keyboard-only user). Necessary for following [accessibility best practices](../getting-started/#accessibility). Can also be used as mixins.
{% highlight html %}
<aclass="sr-only sr-only-focusable"href="#content">Skip to main content</a>