Content helpers

Besides basic typography classes, helper classes are an extra set of additional predefined classes, that can be applied to different content or layout elements and components. Helper classes are custom additions mostly, written especially for current layout, except common BS helpers. Below is a summarized table with all available classes, descriptions and content type. Flex utilities are moved to a separate page and include various examples.

Classes Usage Description
Borders
.border-0 Any element Use this class to remove all borders from an element
.border-[side]-0
.border-[side]-[breakpoint]-0
Any element Use this class to remove specific borders. Available [side] options: start, end, top, bottom.
.border-width-0 Any element Sets border width to 0. Useful for inheriting other border properties
.border Any element Adds a border to an element with pre-defined BS's default width and color properties
.border-width-[size] Any element Adds the border to an element. Available [size] options: 0, 1, 2, 3, 4, 5
.border-width-[side]-[size] Any element Same as .border-[size], but for specific [side]: start, end, top, bottom
.border-[color] Any element Changes color of all element's borders. Supports all available color classes, including transparent option
.border-[side]-[color] Any element If you need to change color of some specific border, use this class combination. Options for [side]: left, right, top, bottom
.border-style-[dashed|dotted] Any element Changes border style from solid to dashed or dotted. Dashed borders also support top/bottom/left/right options
Border radius
.rounded Any element Rounds all borders. Default value is defined in $border-radius variable
.rounded-[side] Any element Rounds borders of specific [side]: top, bottom, left, right
.rounded-[side]-[start|end] Any element Rounds borders of 1 corner of specific vertical [side]: top, bottom
.rounded-0 Any element Removes rounded corners from all borders
.rounded-[side]-0 Any element Removes rounded corners from specific [side]: top, bottom, left, right
.rounded-pill Any element Adds 100rem border radius to all borders
.rounded-[side]-pill Any element Adds 100rem border radius to specific [side]: top, bottom, left, right
.rounded-circle Any element Adds 50% border radius to all borders
Transformations
.rotate-cw Any element Rotates element clockwise. Options for [value]: 45, 90, 180 degrees
.rotate-ccw Any element Rotates element counterclockwise. Options for [value]: 45, 90, 180 degrees
.spinner Any element Adds infinite clockwise rotation
.spinner-reverse Any element Adds infinite counterclockwise rotation
.translate-middle
.translate-middle-[x|y|start|top]
Any element Centers element vertically and/or horizontally
Positioning
.position-[value] Any element Changes element's positiion. Available options for [value]: relative, static, absolute, fixed, sticky
.fixed-[top|bottom] Any element Position an element at the top (bottom) of the viewport, from edge to edge
.sticky-[top|bottom] Any element Position an element at the top (bottom) of the viewport relatively to its parent
.top-[0|50|100|auto] All except static Resets top property for fixed, absolute and relative opsitions
.bottom-[0|50|100|auto] All except static Resets bottom property for fixed, absolute and relative opsitions
.start-[0|50|100|auto] All except static Resets left property for fixed, absolute and relative opsitions
.end-[0|50|100|auto] All except static Resets right property for fixed, absolute and relative opsitions
Alignment
.float-[side] Any element Element floating. Options for [side]: start, end sides
.float-[breakpoint]-[side] Any element Responsive variations of element floating. Options for [breakpoint]: sm, md, lg, xl, xxl screen sizes
.float-none Any element Removes floating
.clearfix Any element Easily clear floats by adding .clearfix to the element
.text-[side] Inline element, text Element alignment. Options for [side]: left, center, right sides
.text-[breakpoint]-[side] Inline element, text Responsive variations of element alignment. Options for [breakpoint]: sm, md, lg, xl screen sizes
.align-[value] Inline element, table Vertical alignment. Options for [value]: baseline, top, middle, bottom, text-top and text-bottom
Images
.img-fluid Images only Applies max-width: 100%; and height: auto; to the image so that it scales nicely to the parent element
.img-thumbnail Images only Adds grey frame with white background color
Sizing
.wmin-[value] Any element Sets a minimum width of the element in pixels. Available options for [value]: 200, 250, 300, 350, 400, 450, 500, 550, 600 pixels
.wmin-[breakpoint]-[value] Any element Responsive variations of width utilities. Options for [breakpoint]: sm, md, lg, xl screen sizes
.mw-[value] Any element Sets a maximum width of the element in pixels. Available option for [value] is 100%
.vw-[value] Any element Sets viewport container width in vw. Available option for [value] is 100
.min-vw-[value] Any element Sets viewport container min-width in vw. Available option for [value] is 100
.w-[responsive value] Any element Sets a responsive width of the element in percents. Values are: [25, 50, 75, 100, auto]. Supports breakpoints
.w-[fixed values] Any element Sets a responsive width of the element in pixels. Values are: 16px, 24px, 32px, 40px, 48px, 56px, 64px, 72px, 80px
.h-[responsive value] Any element Sets a responsive height of the element in percents. Values are: [25, 50, 75, 100, auto]. Supports breakpoints
.h-[fixed values] Any element Sets a responsive height of the element in pixels. Values are: 16px, 24px, 32px, 40px, 48px, 56px, 64px, 72px, 80px
.vh-[value] Any element Sets viewport container height in vh. Available option for [value] is 100
.min-vh-[value] Any element Sets viewport container min-height in vh. Available option for [value] is 100
Visibility
.overflow-[value] Containers Content overflow utility. Available options for [value]: hidden - hides content, visible - shows content, auto - makes content scrollable, scroll - always displays scrollbar
.visible Containers Makes the element invisible for the user, but visible for screen readers
.invisible Containers 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
Display
.d-[value] Any element Set of classes for display property. Values are: inline, inline-block, block, grid, table, table-row, table-cell, flex, inline-flex, none
.d-[breakpoint]-[value] Any element Responsive variations of d-[value] utility. Options for [breakpoint]: sm, md, lg, xl, xxl screen sizes
Spacing
.m-[size] Any element Adds margin property to all sides. Available [size] are: 0, 1 ~ 5px, 2 ~ 10px, 3 ~ 20px, 4 ~ 30px, 5 ~ 40px, auto
.m-[breakpoint]-[size] Any element Responsive variations of .m-[size] utility. Options for [breakpoint]: sm, md, lg, xl screen sizes
.m[s,e,t,b,x,y]-[size] Any element Adds margin property to the specific side: s - left (start), e - right (end), t - top, b - bottom, x - horizontal, y - vertical. Options for the size are the same
.m[s,e,t,b]-[breakpoint]-[size] Any element Same as for .m-[breakpoint]-[size], except x and y options
.p-[size] Any element Adds padding property to all sides. Available [size] are: 0, 1 ~ 5px, 2 ~ 10px, 3 ~ 20px, 4 ~ 30px, 5 ~ 40px, auto
.p-[breakpoint]-[size] Any element Responsive variations of .p-[size] utility. Options for [breakpoint]: sm, md, lg, xl, xxl screen sizes
.p[s,e,t,b,x,y]-[size] Any element Adds padding property to the specific side: s - left (start), e - right (end), t - top, b - bottom, x - horizontal, y - vertical. Options for the size are the same
.p[s,e,t,b]-[breakpoint]-[size] Any element Same as for .p-[breakpoint]-[size], except x and y options
Text
.font-[value] Text Sets/overrides font family. Available [value] options: monospace, serif
.fs-[value] Text Sets/overrides font size. Available [value] options: base ~ 14px, xs ~ 12px; sm - 13px, lg ~ 15px
.fw-[value] Text Sets/overrides font weight. Available [value] options: light, lighter, normal, medium, semibold, bold, bolder
.fst-[value] Text Sets/overrides font style. Available [value] options: italic, normal
.lh-[value] Text Line height. Available [value] options: base, xs; sm, lg and 1
.text-decoration-[value] Text Text decoration. Available [value] options: none, underline, line-through
.text-[value] Text Various text styles. Available [value] options: lowercase, uppercase, capitalize, wrap, nowrap, break
Color
.text-[color] Text Sets text color. Available [value] options: muted, white, dark, black, primary, secondary, danger, success, warning, info, pink, purple, indigo, teal, yellow
.link-[color] Text Sets text link color. Available [value] options: muted, white, dark, black, primary, secondary, danger, success, warning, info, pink, purple, indigo, teal, yellow
.bg-[color] Block and inline elements Sets background color. Available [value] options: muted, white, dark, black, primary, secondary, danger, success, warning, info, pink, purple, indigo, teal, yellow
Opacity
.opacity-[value] Any element Changes opacity of an element. Available [value] options: 0, 25, 50, 75, 100
.border-opacity-[value] Any element Changes border opacity. Supported values are: 0, 10, 15, 20, 25, 50, 75, 100
.text-opacity-[value] Any element Changes text opacity. Supported values are: 0, 10, 15, 20, 25, 50, 75, 100
.bg-opacity-[value] Any element Changes background color opacity. Supported values are: 0, 10, 15, 20, 25, 50, 75, 100
Shadow
.shadow Any element Adds box shadowto an element
.shadow-[value] Any element Adds or removes box shadow. Supported values are: none, sm, lg
Misc
.user-select-[value] Any element Enable or disable selection. Available [value] options: all, auto, none
.pe-[value] Any element Changes pointer events. Available [value] options: none, auto
.cursor-[value] Any element Changes cursor style. Available [value] options: move, pointer and default styles
.filter-none Any element Removes all CSS filters
.transition-none Any element Removes all CSS transitions
zindex jQuery plugins Resets z-index of an element. Values are: 1, auto

Flex utilities

Enable flex behaviors

Apply display utilities to create a flexbox container and transform direct children elements into flex items. Flex containers and items are able to be modified further with additional flex properties. The .d-flex class makes the flex container a block-level element. The .d-inline-flex class makes the flex container an atomic inline-level element. Please note: an anonymous flex item that contains only white space is not rendered, as if it were designated display: none. Also clear and vertical-align properties have no effect on flex items, and float causes the display property of the element to compute to block.

Flexbox container

I'm a flexbox container!

Inline flexbox container

I'm an inline flexbox container!
Classes Description
.d-flex Displays an element as a block-level flex container
.d-[breakpoint]-flex Responsive variations of .d-flex class. Options for [breakpoint]: sm, md, lg, xl, xxl screen sizes
.d-inline-flex Displays an element as an inline-level flex container
.d-[breakpoint]-inline-flex Responsive variations of .d-inline-flex class. Options for [breakpoint]: sm, md, lg, xl, xxl screen sizes

Flex direction

Set the direction of flex items in a flex container with direction utilities. In most cases you can omit the horizontal class here as the browser default is row. However, you may encounter situations where you needed to explicitly set this value (like responsive layouts). Use .flex-row to set a horizontal direction (the browser default), or .flex-row-reverse to start the horizontal direction from the opposite side. Use .flex-column to set a vertical direction, or .flex-column-reverse to start the vertical direction from the opposite side.

Row direction

Flex item 1
Flex item 2
Flex item 3

Reverse row direction

Flex item 1
Flex item 2
Flex item 3

Column direction

Flex item 1
Flex item 2
Flex item 3

Reverse column direction

Flex item 1
Flex item 2
Flex item 3

Justify content

Use justify-content utilities on flexbox containers to change the alignment of flex items on the main axis (the x-axis to start, y-axis if flex-direction: column). Choose from start (browser default), end, center, between, or around values. The alignment is done after the lengths and auto margins are applied, meaning that, if in a Flexbox layout there is at least one flexible element, with flex-grow different from 0, it will have no effect as there won't be any available space.

Beginning (start) of the container

Flex item
Flex item
Flex item

Center of the container

Flex item
Flex item
Flex item

End of the container

Flex item
Flex item
Flex item

With space between the lines

Flex item
Flex item
Flex item

With space before, between, and after the lines

Flex item
Flex item
Flex item
Classes Description
.justify-content-[value] Aligns the flex container's items when the items don't use all available space on the main-axis (horizontally). Available options for [value]: start (browser default), end, center, between, or around.
.justify-content-[breakpoint]-[value] Responsive variations of .justify-content-[value] classes. Options for [breakpoint]: sm, md, lg, xl, xxl screen sizes

Align items

Use align-items utilities on flexbox containers to change the alignment of flex items on the cross axis (the y-axis to start, x-axis if flex-direction: column). Choose from start, end, center, baseline, or stretch (browser default). Basically it works like justify-content, but in the perpendicular direction. Tip: use the align-self property of each item to override the align-items property.

Beginning (start) of the container

Flex item
Flex item
Flex item

Center of the container

Flex item
Flex item
Flex item

End of the container

Flex item
Flex item
Flex item

WBaseline of the container

Flex item
Flex item
Flex item

Fit the container

Flex item
Flex item
Flex item
Classes Description
.align-items-[value] Alignment of items inside flex container. Options for [value]: start, end, center, baseline, or stretch (browser default).
.align-items-[breakpoint]-[value] Responsive variations of .align-items-[value] classes. Options for [breakpoint]: sm, md, lg, xl, xxl screen sizes

Align self

Use align-self utilities on flexbox items to individually change their alignment on the cross axis (the y-axis to start, x-axis if flex-direction: column). Choose from the same options as align-items: start, end, center, baseline, or stretch (browser default). The property doesn't apply to block-level boxes, or to table cells.

Beginning (start) of the container

Flex item
Aligned flex item
Flex item

Center of the container

Flex item
Aligned flex item
Flex item

End of the container

Flex item
Aligned flex item
Flex item

Baseline of the container

Flex item
Aligned flex item
Flex item

Fit the container

Flex item
Aligned flex item
Flex item
Classes Description
.align-self-[value] Alignment of the selected item inside flex container. Options for [value]: start, end, center, baseline, or stretch (browser default).
.align-self-[breakpoint]-[value] Responsive variations of .align-self-[value] classes. Options for [breakpoint]: sm, md, lg, xl, xxl screen sizes.

Flex fill

Use the .flex-fill class on a series of sibling elements to force them into widths equal to their content (or equal widths if their content does not surpass their border-boxes) while taking up all available horizontal space.

Right auto margin

Flex item with a lot of content
Flex item 2
Flex item 3
Classes Description
.flex-fill All breakpoints
.flex-[breakpoint]-fill Responsive variations of .flex-fill class. Options for [breakpoint]: sm, md, lg, xl screen sizes

Flex stretch

Equivalent to flex: [positive-number] 1 0. Makes the flex item flexible and sets the flex basis to zero, resulting in an item that receives the specified proportion of the free space in the flex container. If all items in the flex container use this pattern, their sizes will be proportional to the specified flex factor. Other words it's similar to .flex-fill, but forces elements to stretch equally regardless content length. To reset .flex-1 use .flex-0 class.

Example

Flex item with a lot of content
Flex item 2
Flex item 3
Classes Description
.flex-0 All breakpoints. Equivalent to flex: 0 1 0%
.flex-[breakpoint]-0 Responsive variations of .flex-0 class. Options for [breakpoint]: sm, md, lg, xl screen sizes
.flex-1 All breakpoints. Equivalent to flex: 1 1 0%
.flex-[breakpoint]-1 Responsive variations of .flex-1 class. Options for [breakpoint]: sm, md, lg, xl screen sizes

Grow and shrink

Grow

This property specifies how much of the remaining space in the flex container should be assigned to the item (the flex grow factor). The remaining space is the size of the flex container minus the size of all flex items' sizes together. In the example below, the .flex-grow-1 elements uses all available space it can, while allowing the remaining two flex items their necessary space.

Example

Flex item 1
Flex item 2
Flex item 3 with long content
Shrink

Use .flex-shrink-* utilities to toggle a flex item’s ability to shrink if necessary. In the example below, the second flex item with .flex-shrink-1 is forced to wrap its contents to a new line, “shrinking” to allow more space for the previous flex item with .w-100. If it's with .flex-shrink-0 class, text won't wrap.

Example

Flex item 1
Text in this item wraps
Classes Description
.flex-[grow|shrink]-0 All breakpoints
.flex-[grow|shrink]-1 All breakpoints
.flex-[breakpoint]-[grow|shrink]-0 Responsive variations of .flex-grow-0 and .flex-shrink-0 classes to use in 4 breakpoints.
.flex-[breakpoint]-[grow|shrink]-1 Responsive variations of .flex-grow-1 and .flex-shrink-1 classes to use in 4 breakpoints.

Auto margins

Flexbox can do some pretty awesome things when you mix flex alignments with auto margins. Shown below are three examples of controlling flex items via auto margins: default (no auto margin), pushing two items to the right (.me-auto), and pushing two items to the left (.ms-auto). Unfortunately, IE10 and IE11 do not properly support auto margins on flex items whose parent has a non-default justify-content value.

Right auto margin

Flex item 1
Flex item 2
Flex item 3

Left auto margin

Flex item 1
Flex item 2
Flex item 3

Bottom auto margin

Flex item 1
Flex item 2
Flex item 3

Top auto margin

Flex item 1
Flex item 2
Flex item 3
Classes Description
.m[t,b,s,e]-auto Pushes flex items to specified side, where "s" is left, "e" is right, "t" is top and "b" is bottom.
.m[t,b,s,e]-[breakpoint]-auto Responsive variations of .m[t,b,s,e]-auto classes. Options for [breakpoint]: sm, md, lg, xl, xxl screen sizes

Flex wrap

The flex-wrap classes specify whether flex items are forced into a single line or can be wrapped onto multiple lines. If wrapping is allowed, this property also enables you to control the direction in which lines are stacked. Note: if the elements are not flexible items, the flex-wrap property has no effect. Supports 2 directions: default and reversed.

No wrap

Flex item
Flex item
Flex item
Flex item

Wrap - default direction

Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item

Wrap - reversed direction

Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Classes Description
.flex-nowrap The flex items are laid out in a single line - may cause the flex container to overflow
.flex-[breakpoint]-nowrap Responsive variations of .flex-nowrap class. Options for [breakpoint]: sm, md, lg, xl, xxl screen sizes
.flex-wrap The flex items break into multiple lines
.flex-[breakpoint]-wrap Responsive variations of .flex-wrap class. Options for [breakpoint]: sm, md, lg, xl, xxl screen sizes
.flex-wrap-reverse Behaves the same as .flex-wrap, but in reverse order
.flex-[breakpoint]-wrap-reverse Responsive variations of .flex-wrap-reverse class. Options for [breakpoint]: sm, md, lg, xl, xxl screen sizes

Flex order

Change the visual order of specific flex items with a handful of order utilities. We only provide options for making an item first or last, as well as a reset to use the DOM order. As order takes any integer value (e.g., 5), add custom CSS for any additional values needed. Elements with the same order value are laid out in the order in which they appear in the source code. Note: If the element is not a flexible item, the order property has no effect.

Default order

Flex item 1
Flex item 2
Flex item 3

Custom order

Flex item 1
Flex item 2
Flex item 3

Default order

Flex item 1
Flex item 2
Flex item 3

Custom order

Flex item 1
Flex item 2
Flex item 3
Classes Description
.order-[value] Specify the order used to lay out flex items in their flex container. Values for [value]: 1, 2, ... 12.
.order-[breakpoint]-[value] Responsive variations of .order-[value] classes. Options for [breakpoint]: sm, md, lg, xl, xxl screen sizes

Align content

Use align-content utilities on flexbox containers to align flex items together on the cross axis. Choose from start (browser default), end, center, between, around, or stretch. To demonstrate these utilities, we’ve enforced flex-wrap: wrap and increased the number of flex items. Note: this property has no effect on single rows of flex items.

Start of the flex container

Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item

End of the flex container

Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item

Center of the flex container

Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item

Evenly in the flex container

Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item

Evenly with half-size spaces on either end

Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item

Stretch to take up the remaining space

Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Flex item
Classes Description
.align-content-[value] Similar to align-items, but instead of aligning flex items, it aligns flex lines. Options for [value] are similar to .justify-content-[value] classes
.align-content-[breakpoint]-[value] Responsive variations of .align-content-[value] classes. Options for [breakpoint]: sm, md, lg, xl, xxl screen sizes