Aspect Ratio

Media containers that hold preset ratios across responsive layouts, with a shimmer placeholder while images load.

Loading preview

Examples

Practical examples and common states for the same installable component.

Video

Widescreen ratio optimized for video embeds.

examples/aspect-ratio-video.tsx
import {
AspectRatio,
AspectRatioImage,
} from "@/components/wensity/aspect-ratio";
export function AspectRatioVideo() {
return (
<AspectRatio variant="video" className="max-w-md">
<AspectRatioImage
src="https://assets.wensity.com/photos/landscape/canyon-falls.webp"
alt="Waterfall dropping through a green canyon"
/>
</AspectRatio>
);
}

Portrait

Vertical ratio for stories and mobile media.

examples/aspect-ratio-portrait.tsx
import {
AspectRatio,
AspectRatioImage,
} from "@/components/wensity/aspect-ratio";
export function AspectRatioPortrait() {
return (
<AspectRatio variant="portrait" className="max-w-xs">
<AspectRatioImage
src="https://assets.wensity.com/photos/portrait/twin-falls-lagoon.webp"
alt="Twin waterfalls feeding a turquoise mountain lagoon"
/>
</AspectRatio>
);
}

Square

Equal dimensions for avatars and galleries.

examples/aspect-ratio-square.tsx
import {
AspectRatio,
AspectRatioImage,
} from "@/components/wensity/aspect-ratio";
export function AspectRatioSquare() {
return (
<AspectRatio variant="square" className="max-w-xs">
<AspectRatioImage
src="https://assets.wensity.com/photos/portrait/mirror-lake.webp"
alt="Mountain range reflected in a still alpine lake"
/>
</AspectRatio>
);
}

Cinema

Ultra-wide ratio for banners and showcases.

examples/aspect-ratio-cinema.tsx
import {
AspectRatio,
AspectRatioImage,
} from "@/components/wensity/aspect-ratio";
export function AspectRatioCinema() {
return (
<AspectRatio variant="cinema" className="max-w-lg">
<AspectRatioImage
src="https://assets.wensity.com/photos/landscape/river-valley-sunset.webp"
alt="Wide sunset view over a winding river valley"
/>
</AspectRatio>
);
}

Photo

Classic ratio for images and photography.

examples/aspect-ratio-photo.tsx
import {
AspectRatio,
AspectRatioImage,
} from "@/components/wensity/aspect-ratio";
export function AspectRatioPhoto() {
return (
<AspectRatio variant="photo" className="max-w-sm">
<AspectRatioImage
src="https://assets.wensity.com/photos/landscape/sunrise-glacier-peaks.webp"
alt="Classic framed mountain range photograph at sunrise"
/>
</AspectRatio>
);
}

Props

PropTypeDefaultDescription
variant"video" | "portrait" | "square" | "cinema" | "photo"-Preset media ratio. Ignored when ratio is set.
rationumber-Custom ratio as width divided by height, such as 16 / 9. Overrides variant.