keyboard_double_arrow_left
help Help & getting started

Ratios.

Use generated pseudo elements to make an element maintain the aspect ratio of your choosing. Perfect for responsively handling video or slideshow embeds based on the width of the parent. Click here

Basic Ratios

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/pyRjzvdOSHk" title="YouTube video" allowfullscreen></iframe>
</div>

Aspect ratios

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

1x1
4x3
16x9
21x9

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

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 --bs-aspect-ratio: 50% on the .ratio.

2x1
4x3, then 2x1

<div class="ratio" style="--bs-aspect-ratio: 50%;">
  <div>2x1</div>
</div>

<div class="ratio ratio-4x3">
  <div>4x3, then 2x1</div>
</div>