Ratio
Configuration
config.scss
$s-ratios: (
"ratio-1x1": 1 1,
"ratio-4x3": 4 3,
"ratio-16x9": 16 9,
// add yours
),
Example output classes
With these config values, the following classes are created :
ratio-1x1
ratio-16x9
ratio-4x3
Html structure
Add the ratio class to a parent div
<div class="ratio-16x9">
<div>A child div or iframe, img, etc. </div>
</div>
Mixin
You can also use a mixin to add a ratio to an existing class.
_partial.scss
@use "sailorcss" as s;
.element {
@include s.ratio(16 9);
}
Mixin arguments
The mixin needs 2 arguments when you use it with include.
@include ratio($ratio, $selector)
$ratio
2 integers, with a space between.
$selector (optionnal)
The class of the first child in your div. Default will be > :first-child"
Return value
padding-bottom: 56% // example -> the return percentage
position: relative;
> :first-child { // or custom class if argument exists
left: 0;
height: 100%;
position: absolute;
top: 0;
width: 100%;
}