Aspect Ratio
Sometimes you can’t control the size of an image, you can constrain your images with aspect-ratios. The base class aspect-ratio maintains a 1 to 1 ratio relative to its container’s width.
Use aspect-ratio-3-to-2, aspect-ratio-4-to-3, aspect-ratio-8-to-3, aspect-ratio-8-to-5, or aspect-ratio-16-to-9 to maintain the specific ratio relative to its container or create your own by setting padding-bottom to the ratio you want e.g. 2 to 1 .aspect-ratio-2-to-1 { padding-bottom: 50% }.
<div className ="aspect-ratio" ></div >
<div className ="aspect-ratio aspect-ratio-3-to-2" ></div >
<div className ="aspect-ratio aspect-ratio-4-to-3" ></div >
<div className ="aspect-ratio aspect-ratio-8-to-3" ></div >
<div className ="aspect-ratio aspect-ratio-8-to-5" ></div >
<div className ="aspect-ratio aspect-ratio-16-to-9" ></div >
Aspect Ratio Sass API
The map $aspect-ratio-sizes allows generating any number of aspect ratio variants. If a key starts with ., #, or ’%’ Clay will output it as is, otherwise we will prepend . to the key (e.g., .aspect-ratio-16-to-9). It will also generate a Sass placeholder prefixed by % (e.g., %aspect-ratio-16-to-9).
$aspect-ratio-sizes : (
aspect-ratio-16-to-9 : (
height : 9 ,
width : 16 ,
),
'.card .aspect-ratio' : (
extend : '%aspect-ratio-16-to-9' ,
),
'%aspect-ratio-4-to-1' : (
height : 1 ,
width : 4 ,
),
'.aspect-ratio-4-to-1' : (
extend : '%aspect-ratio-4-to-1' ,
),
);Show code
Outputs:
.aspect-ratio-16-to-9 ,
.card .aspect-ratio {
padding-bottom : calc (9 / 16 * 100 % );
}
.aspect-ratio-4-to-1 {
padding-bottom : calc (1 / 4 * 100 % );
}
Aspect Ratio Bg Contain
The class aspect-ratio-bg-contain on aspect-ratio centers the background-image and scales the image as large as possible without cropping or stretching the image.
<div
className ="aspect-ratio aspect-ratio-16-to-9 aspect-ratio-bg-contain"
style ={{ backgroundImage: "url('/images/thumbnail_hot_air_ballon.jpg')" }}
></div >
Aspect Ratio Bg Cover
The class aspect-ratio-bg-cover on aspect-ratio centers the background-image and scales the image to fill the container. It will stretch and change the proportions of the image to achieve this.
<div
className ="aspect-ratio aspect-ratio-16-to-9 aspect-ratio-bg-cover bg-light"
style ={{ backgroundImage: "url('/images/thumbnail_hot_air_ballon.jpg')" }}
></div >
Aspect Ratio Bg Center
The class aspect-ratio-bg-center on aspect-ratio will center the background-image.
<div
className ="aspect-ratio aspect-ratio-16-to-9 aspect-ratio-bg-center"
style ={{ backgroundImage: "url('/images/liferay_logo_tagline.jpg')" }}
></div >
Aspect Ratio Item
Use aspect-ratio-item on the nested img if you want to keep the content’s original size and crop the visible area.
<div className ="aspect-ratio aspect-ratio-4-to-3" >
<img
alt ="thumbnail"
className =" aspect-ratio-item"
src ="/images/thumbnail_hot_air_ballon.jpg"
/>
</div >
Aspect Ratio Item Fluid
The class aspect-ratio-item-fluid should be used on aspect-ratio-item to keep wide images viewable inside the aspect-ratio container. It sets the max-width to be 100%, similar to img-fluid.
Original Image
<div className ="aspect-ratio aspect-ratio-16-to-9" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-fluid"
src ="/images/thumbnail_hot_air_ballon.jpg"
/>
</div >
<div className ="aspect-ratio" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-fluid"
src ="/images/thumbnail_hot_air_ballon.jpg"
/>
</div >
<div className ="aspect-ratio aspect-ratio-3-to-2" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-fluid"
src ="/images/thumbnail_hot_air_ballon.jpg"
/>
</div >
<div className ="aspect-ratio aspect-ratio-4-to-3" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-fluid"
src ="/images/thumbnail_hot_air_ballon.jpg"
/>
</div >
<div className ="aspect-ratio aspect-ratio-8-to-3" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-fluid"
src ="/images/thumbnail_hot_air_ballon.jpg"
/>
</div >
<div className ="aspect-ratio aspect-ratio-8-to-5" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-fluid"
src ="/images/thumbnail_hot_air_ballon.jpg"
/>
</div >
<div className ="aspect-ratio aspect-ratio-16-to-9" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-fluid"
src ="/images/thumbnail_hot_air_ballon.jpg"
/>
</div > Show code
Aspect Ratio Item Vertical Fluid
The class aspect-ratio-item-vertical-fluid should be used on aspect-ratio-item to keep tall images viewable inside the aspect-ratio container. It sets the max-height to be 100%.
<div className ="aspect-ratio" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-vertical-fluid"
src ="/images/long_user_image.png"
/>
</div >
<div className ="aspect-ratio aspect-ratio-3-to-2" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-vertical-fluid"
src ="/images/long_user_image.png"
/>
</div >
<div className ="aspect-ratio aspect-ratio-4-to-3" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-vertical-fluid"
src ="/images/long_user_image.png"
/>
</div >
<div className ="aspect-ratio aspect-ratio-8-to-3" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-vertical-fluid"
src ="/images/long_user_image.png"
/>
</div >
<div className ="aspect-ratio aspect-ratio-8-to-5" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-vertical-fluid"
src ="/images/long_user_image.png"
/>
</div >
<div className ="aspect-ratio aspect-ratio-16-to-9" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-vertical-fluid"
src ="/images/long_user_image.png"
/>
</div > Show code
Aspect Ratio Item Flush
The class aspect-ratio-item-flush should be used for images that are too narrow and want it to fill the remaining space. It forces the width to be 100.6%.
The 100.6% width is to account for browser subpixel rendering issues.
<div className ="aspect-ratio aspect-ratio-16-to-9" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-center-middle aspect-ratio-item-flush"
src ="/images/thumbnail_hot_air_ballon.jpg"
/>
</div >
<div className ="aspect-ratio aspect-ratio-16-to-9" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-center-middle aspect-ratio-item-flush"
src ="/images/liferay_logo_tagline.png"
/>
</div > Show code
Aspect Ratio Item Vertical Flush
The class aspect-ratio-item-vertical-flush should be used for images that are too short and want it to fill the remaining vertical space. It forces the height to be 100.6%.
The 100.6% height is to account for browser subpixel rendering issues.
<div className ="aspect-ratio aspect-ratio-16-to-9 bg-light" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-center-middle aspect-ratio-item-vertical-flush"
src ="/images/thumbnail_graph2.png"
/>
</div >
<div className ="aspect-ratio aspect-ratio-16-to-9 bg-light" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-center-middle aspect-ratio-item-vertical-flush"
src ="/images/liferay_logo_tagline.png"
/>
</div > Show code
Aspect Ratio Item Center Middle
The class aspect-ratio-item-center-middle centers an item horizontally and vertically.
<div className ="aspect-ratio aspect-ratio-16-to-9" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-center-middle aspect-ratio-item-fluid"
src ="/images/liferay_logo_tagline.png"
/>
</div >
Aspect Ratio Item Top Center
The class aspect-ratio-item-top-center vertically aligns the item at the top and centers it horizontally.
<div className ="aspect-ratio aspect-ratio-16-to-9" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-top-center aspect-ratio-item-fluid"
src ="/images/liferay_logo_tagline.png"
/>
</div >
Aspect Ratio Item Top Right
The class aspect-ratio-item-top-right aligns the item at the top right corner.
<div className ="aspect-ratio aspect-ratio-16-to-9" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-fluid aspect-ratio-item-top-right"
src ="/images/liferay_logo_tagline.png"
/>
</div >
Aspect Ratio Item Right Middle
The class aspect-ratio-item-right-middle aligns an item in the middle vertically and right side horizontally.
<div className ="aspect-ratio aspect-ratio-16-to-9" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-fluid aspect-ratio-item-right-middle"
src ="/images/liferay_logo_tagline.png"
/>
</div >
Aspect Ratio Item Bottom Right
The class aspect-ratio-item-bottom-right aligns an item at the bottom right corner.
<div className ="aspect-ratio aspect-ratio-16-to-9" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-bottom-right aspect-ratio-item-fluid"
src ="/images/liferay_logo_tagline.png"
/>
</div >
Aspect Ratio Item Bottom Center
The class aspect-ratio-item-bottom-center aligns an item at the bottom vertically and centers it horizontally.
<div className ="aspect-ratio aspect-ratio-16-to-9" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-bottom-center aspect-ratio-item-fluid"
src ="/images/liferay_logo_tagline.png"
/>
</div >
Aspect Ratio Item Bottom Left
The class aspect-ratio-item-bottom-left aligns an item at the bottom left corner.
<div className ="aspect-ratio aspect-ratio-16-to-9" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-bottom-left aspect-ratio-item-fluid"
src ="/images/liferay_logo_tagline.png"
/>
</div >
Aspect Ratio Item Left Middle
The class aspect-ratio-item-left-middle aligns an item on the left horizontally and in the middle vertically.
<div className ="aspect-ratio aspect-ratio-16-to-9" >
<img
alt ="thumbnail"
className ="aspect-ratio-item aspect-ratio-item-left-middle aspect-ratio-item-fluid"
src ="/images/liferay_logo_tagline.png"
/>
</div > Edit this page on GitHub Contributors
Matuzalém Teles
Last edited May 9, 2025 at 6:15:38 AM