Aspect Ratio
Displays content within a desired aspect ratio.
Examples
Default (16 / 9)
<div class="w-[450px]">
<c-aspect-ratio aspect-ratio-classes="bg-muted rounded-lg overflow-hidden">
<img
src="https://images.unsplash.com/photo-1588345921523-c2dcdb7f1dcd?w=800&dpr=2&q=80"
alt="Gray by Drew Beamer"
class="size-full rounded-lg object-cover"
/>
</c-aspect-ratio>
</div>
Custom Ratio (1 / 1)
<div class="w-[300px]">
<c-aspect-ratio
ratio="1"
aspect-ratio-classes="bg-muted rounded-lg overflow-hidden"
>
<img
src="https://images.unsplash.com/photo-1588345921523-c2dcdb7f1dcd?w=800&dpr=2&q=80"
alt="Gray by Drew Beamer"
class="size-full rounded-lg object-cover"
/>
</c-aspect-ratio>
</div>
Video (16 / 9)
<div class="w-[450px]">
<c-aspect-ratio aspect-ratio-classes="bg-muted rounded-lg overflow-hidden">
<iframe
src="https://www.youtube.com/embed/dQw4w9WgXcQ"
class="size-full rounded-lg"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen
></iframe>
</c-aspect-ratio>
</div>
API Reference
AspectRatio
A container component that maintains a specific aspect ratio for its content.
Usage
<!-- Default 16:9 aspect ratio -->
<c-aspect-ratio>
<img src="..." alt="..." class="size-full object-cover" />
</c-aspect-ratio>
<!-- Square (1:1) aspect ratio -->
<c-aspect-ratio ratio="1">
<img src="..." alt="..." class="size-full object-cover" />
</c-aspect-ratio>
<!-- Custom 21:9 aspect ratio -->
<c-aspect-ratio ratio="2.333">
<video src="..." class="size-full"></video>
</c-aspect-ratio>
<!-- With custom classes -->
<c-aspect-ratio aspect-ratio-classes="bg-muted rounded-lg">
<img src="..." alt="..." class="size-full object-cover rounded-lg" />
</c-aspect-ratio>