Create responsive video or slideshow embeds based on the width of the parent by creating an intrinsic ratio that scales on any device.


Rules are directly applied to <iframe>, <embed>, <video>, and <object> elements; optionally use an explicit descendant class .embed-responsive-item when you want to match the styling for other attributes.

Pro-Tip! You don’t need to include frameborder="0" in your <iframe>s as we override that for you in reboot.


Wrap any embed, like an <iframe>, in a parent element with .ratio and an aspect ratio class. The immediate child element is automatically sized thanks to our universal selector .ratio > *.

                      <div class="ratio ratio-16x9">
                        <iframe src="https://www.youtube.com/embed/zpOULjyy-n8?rel=0" title="YouTube video" allowfullscreen></iframe>

Aspect ratios

Aspect ratios can be customized with modifier classes. By default the following ratio classes are provided:

                      <div class="ratio ratio-1x1">
                      <div class="ratio ratio-4x3">
                      <div class="ratio ratio-16x9">
                      <div class="ratio ratio-21x9">

Custom ratios

Each .ratio-* class includes a CSS custom property (or CSS variable) in the selector. You can override this CSS variable to create custom aspect ratios on the fly with some quick math on your part.

For example, to create a 2x1 aspect ratio, set --aspect-ratio: 50% on the .ratio.

                      <div class="ratio" style="--aspect-ratio: 50%;">

Sass map

Within _variables.scss, you can change the aspect ratios you want to use. Here’s our default $ratio-aspect-ratios map. Modify the map as you like and recompile your Sass to put them to use.

                $aspect-ratios: (
  "1x1": 100%,
  "4x3": calc(3 / 4 * 100%),
  "16x9": calc(9 / 16 * 100%),
  "21x9": calc(9 / 21 * 100%)