utilities.md 6.98 KB
Newer Older
Mark Otto's avatar
Mark Otto committed
1
2
---
layout: page
3
title: Utility classes
Mark Otto's avatar
Mark Otto committed
4
---
Mark Otto's avatar
Mark Otto committed
5

6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Bootstrap includes dozens of utilities—classes with a single purpose. They're designed to keep the number of declarations in your CSS down while allowing for quick and easy development.

### Text alignment

Easily realign text to components with text alignment classes.

{% example html %}
<p class="text-left">Left aligned text.</p>
<p class="text-center">Center aligned text.</p>
<p class="text-right">Right aligned text.</p>
<p class="text-justify">Justified text.</p>
<p class="text-nowrap">No wrap text.</p>
{% endexample %}

### Text transform

Transform text in components with text capitalization classes.

{% example html %}
<p class="text-lowercase">Lowercased text.</p>
<p class="text-uppercase">Uppercased text.</p>
<p class="text-capitalize">Capitalized text.</p>
{% endexample %}

Mark Otto's avatar
Mark Otto committed
30
31
32
33
34
35
36
37
38
39
40
41
42
### 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 %}
<p class="text-muted">Fusce dapibus, tellus ac cursus commodo, tortor mauris nibh.</p>
<p class="text-primary">Nullam id dolor id nibh ultricies vehicula ut id elit.</p>
<p class="text-success">Duis mollis, est non commodo luctus, nisi erat porttitor ligula.</p>
<p class="text-info">Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
<p class="text-warning">Etiam porta sem malesuada magna mollis euismod.</p>
<p class="text-danger">Donec ullamcorper nulla non metus auctor fringilla.</p>
{% endexample %}

43
44
45
46
47
48
49
50
51
52
53
{% callout info %}
#### Dealing with specificity

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 `<span>` with the class.
{% endcallout %}

{% callout warning %}
#### Conveying meaning to assistive technologies

Using color to add meaning only provides a visual indication, which will not be conveyed to users of assistive technologies – such as screen readers. Ensure that information denoted by the color is either obvious from the content itself (the contextual colors are only used to reinforce meaning that is already present in the text/markup), or is included through alternative means, such as additional text hidden with the `.sr-only` class.
{% endcallout %}
Mark Otto's avatar
Mark Otto committed
54
55
56
57
58
59
60
61
62
63
64
65
66

### 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 %}
<div class="bg-primary">Nullam id dolor id nibh ultricies vehicula ut id elit.</div>
<div class="bg-success">Duis mollis, est non commodo luctus, nisi erat porttitor ligula.</div>
<div class="bg-info">Maecenas sed diam eget risus varius blandit sit amet non magna.</div>
<div class="bg-warning">Etiam porta sem malesuada magna mollis euismod.</div>
<div class="bg-danger">Donec ullamcorper nulla non metus auctor fringilla.</div>
{% endexample %}

67
68
69
70
71
72
73
74
{% callout info %}
#### Dealing with specificity

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 `<div>` with the class.
{% endcallout %}

{% callout warning %}
#### Conveying meaning to assistive technologies
Mark Otto's avatar
Mark Otto committed
75

76
77
As with [contextual colors](#helper-classes-colors), ensure that any meaning conveyed through color is also conveyed in a format that is not purely presentational.
{% endcallout %}
Mark Otto's avatar
Mark Otto committed
78

Mark Otto's avatar
Mark Otto committed
79
80
81
82
83
### 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 %}
Mark Otto's avatar
Mark Otto committed
84
<button type="button" class="close" aria-label="Close">
Mark Otto's avatar
Mark Otto committed
85
86
87
88
89
  <span aria-hidden="true">&times;</span>
  <span class="sr-only">Close</span>
</button>
{% endexample %}

90
### Floats
Mark Otto's avatar
Mark Otto committed
91
92
93
94

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 %}
Mark Otto's avatar
Mark Otto committed
95
96
<div class="pull-left">Float left</div>
<div class="pull-right">Float right</div>
Mark Otto's avatar
Mark Otto committed
97
98
{% endexample %}

Mark Otto's avatar
Mark Otto committed
99
100
101
102
103
104
105
106
107
108
109
{% highlight scss %}
// Classes
.pull-left {
  float: left !important;
}
.pull-right {
  float: right !important;
}

// Usage as mixins
.element {
Mark Otto's avatar
Mark Otto committed
110
  @include pull-left;
Mark Otto's avatar
Mark Otto committed
111
112
}
.another-element {
Mark Otto's avatar
Mark Otto committed
113
  @include pull-right;
Mark Otto's avatar
Mark Otto committed
114
115
116
}
{% endhighlight %}

117
### Center content
Mark Otto's avatar
Mark Otto committed
118
119
120
121

Set an element to `display: block;` and center via `margin`. Available as a mixin and class.

{% example html %}
Mark Otto's avatar
Mark Otto committed
122
<div class="center-block">Centered block</div>
Mark Otto's avatar
Mark Otto committed
123
124
{% endexample %}

Mark Otto's avatar
Mark Otto committed
125
{% highlight scss %}
Mark Otto's avatar
Mark Otto committed
126
// Class
Mark Otto's avatar
Mark Otto committed
127
128
129
130
131
132
.center-block {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

Mark Otto's avatar
Mark Otto committed
133
// Usage as a mixin
Mark Otto's avatar
Mark Otto committed
134
.element {
135
  @include center-block;
Mark Otto's avatar
Mark Otto committed
136
137
138
}
{% endhighlight %}

Mark Otto's avatar
Mark Otto committed
139
140
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.

Mark Otto's avatar
Mark Otto committed
141
142
143
{% highlight html %}
<div class="clearfix">...</div>
{% endhighlight %}
Mark Otto's avatar
Mark Otto committed
144

Mark Otto's avatar
Mark Otto committed
145
146
147
148
149
150
151
152
153
154
155
156
157
{% highlight scss %}
// Mixin itself
.clearfix() {
  &:before,
  &:after {
    content: " ";
    display: table;
  }
  &:after {
    clear: both;
  }
}

Mark Otto's avatar
Mark Otto committed
158
// Usage as a mixin
Mark Otto's avatar
Mark Otto committed
159
.element {
160
  @include clearfix;
Mark Otto's avatar
Mark Otto committed
161
162
163
}
{% endhighlight %}

164
### Hidden content
Mark Otto's avatar
Mark Otto committed
165

166
Hide any HTML element with the `[hidden]` attribute. Previously, v3.x included a `.hidden` class that forced toggled content. However, we removed it due to conflicts with jQuery's `hide()` function. It's taken from [PureCSS](http://purecss.io).
Mark Otto's avatar
Mark Otto committed
167

168
Furthermore, `.invisible` can be used to toggle the visibility of an element, meaning its `display` is not modified and the element can still affect the flow of the document.
Mark Otto's avatar
Mark Otto committed
169

Mark Otto's avatar
Mark Otto committed
170
{% highlight html %}
171
<input type="text" hidden>
Mark Otto's avatar
Mark Otto committed
172
{% endhighlight %}
Mark Otto's avatar
Mark Otto committed
173

174
### Invisible content
Mark Otto's avatar
Mark Otto committed
175

176
The `.invisible` class 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.
177
178

{% highlight html %}
179
<div class="invisible">...</div>
Mark Otto's avatar
Mark Otto committed
180
181
{% endhighlight %}

182
{% highlight scss %}
Mark Otto's avatar
Mark Otto committed
183
// Class
184
185
186
187
.invisible {
  visibility: hidden;
}

Mark Otto's avatar
Mark Otto committed
188
// Usage as a mixin
189
190
191
.element {
  .invisible();
}
Mark Otto's avatar
Mark Otto committed
192
{% endhighlight %}
193

194
### Screen readers
Mark Otto's avatar
Mark Otto committed
195
196
197

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.

Mark Otto's avatar
Mark Otto committed
198
199
200
{% highlight html %}
<a class="sr-only sr-only-focusable" href="#content">Skip to main content</a>
{% endhighlight %}
Mark Otto's avatar
Mark Otto committed
201

Mark Otto's avatar
Mark Otto committed
202
{% highlight scss %}
Mark Otto's avatar
Mark Otto committed
203
// Usage as a mixin
Mark Otto's avatar
Mark Otto committed
204
.skip-navigation {
205
206
  @include sr-only;
  @include sr-only-focusable;
Mark Otto's avatar
Mark Otto committed
207
208
209
}
{% endhighlight %}

Mark Otto's avatar
Mark Otto committed
210
211
212
213
### Image replacement

Utilize the `.text-hide` class or mixin to help replace an element's text content with a background image.

Mark Otto's avatar
Mark Otto committed
214
{% highlight html %}
Mark Otto's avatar
Mark Otto committed
215
<h1 class="text-hide">Custom heading</h1>
Mark Otto's avatar
Mark Otto committed
216
{% endhighlight %}
Mark Otto's avatar
Mark Otto committed
217
218

{% highlight scss %}
Mark Otto's avatar
Mark Otto committed
219
// Usage as a mixin
Mark Otto's avatar
Mark Otto committed
220
.heading {
221
  @include text-hide;
Mark Otto's avatar
Mark Otto committed
222
223
}
{% endhighlight %}