--- layout: docs title: Ratios description: Use generated psuedo 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. group: helpers toc: true --- ## About Use the ratio helper to manage the aspect ratios of external content like ` {{< /example >}} ## Aspect ratios Aspect ratios can be customized with modifier classes. By default the following ratio classes are provided: {{< example class="bd-example-ratios" >}}
1x1
4x3
16x9
21x9
{{< /example >}} ## 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`. {{< example class="bd-example-ratios" >}}
2x1
{{< /example >}} This CSS variable makes it easy to modify the aspect ratio across breakpoints. The following is 4x3 to start, but changes to a custom 2x1 at the medium breakpoint. ```scss .ratio-4x3 { @include media-breakpoint-up(md) { --aspect-ratio: 50%; // 2x1 } } ``` {{< example class="bd-example-ratios bd-example-ratios-breakpoint" >}}
4x3, then 2x1
{{< /example >}} ## 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. {{< scss-docs name="aspect-ratios" file="scss/_variables.scss" >}}