Skip to content

shadcn.io is an independent project built on shadcn/ui

Free

21:9 Aspect Ratio (Ultrawide) for React

An ultrawide frame at 21:9, with that label centered in a muted box. The frame is much wider than it is tall.

A muted box shows 21:9 in the center. The frame is much wider than it is tall, and the height follows the width.

Use 21:9 for a cinematic banner or a trailer. An Image Zoom can open the artwork larger. In React, Base UI only holds the frame.

Preview

Preview width
21:9

Installation

Sign in to get your install command
Free with an account. It carries your token, so the CLI installs everything in one go.
Use email insteadNo credit card

Anatomy

Aspect Ratio anatomy: root, media, ratio

Usage

<div className="w-full max-w-md">
  <AspectRatio ratio={21 / 9}>
    <div className="flex size-full items-center justify-center rounded-md bg-muted">
      <span className="text-muted-foreground text-sm">21:9</span>
    </div>
  </AspectRatio>
</div>

FAQ

How is 21:9 set on this frame?

ratio is 21 / 9 on AspectRatio, width divided by height. That is a very wide frame, so at the same width it is shorter than 16:9. The centered label reads "21:9".

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 stays a short band.

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 "21:9" label.

What happens if I omit ratio?

The default is 1, a square. This file sets 21 / 9 so the frame stays that wide shape.

API Reference

Aspect Ratio

Sets ratio={21 / 9}. The rest is on the Aspect Ratio page.