shadcn.io is an independent project built on shadcn/ui
A muted box shows 2:1 in the center. The frame is exactly twice as wide as it is tall, and the height follows the width.
Use 2:1 for a wide banner or a page header. A Carousel fits several banners in the same slot. On Svelte, Ark UI does not crop a picture to this frame.
Installation
Anatomy

Usage
<div class="w-full max-w-md"><AspectRatio ratio={2}><div class="flex size-full items-center justify-center rounded-md bg-muted"><span class="text-muted-foreground text-sm">2:1</span></div></AspectRatio></div>FAQ
How is the 2:1 frame set?
ratio is 2 on AspectRatio, width divided by height. The number 2 means the frame is twice as wide as it is tall. The centered label reads "2:1".
Where does the frame's width come from?
The parent is w-full max-w-md. The height follows that width. Give the wrapper a width, because a ratio with no width can collapse. max-w-md caps the width, and the height is half of that.
How does the label fill the frame?
The child is a div with size-full, flex items-center justify-center, rounded-md, and bg-muted. The span is text-sm text-muted-foreground. Those classes are on the child, so the frame's shape stays on ratio.
How does ratio become a height?
The ratio is stored in the --ratio custom property, and the aspect-ratio utility reads that variable.
How do I put an image or a video in this frame?
Put one child in AspectRatio and make it fill the box. The Aspect Ratio usage places the image absolutely, inset on every side, at full size, with object-cover. This file's child is the muted "2:1" label.
API Reference
Aspect Ratio
Sets ratio={2}. The rest is on the Aspect Ratio page.





