8.0k New

Aspect Ratio

Displays content within a desired ratio.

Docs API Reference

Epicenter

Local-first, open source apps

Special Sponsor
Placeholder
<script lang="ts">
	import { AspectRatio } from "$lib/components/ui/aspect-ratio/index.js";
</script>
 
<div class="w-full max-w-sm">
	<AspectRatio ratio={16 / 9} class="rounded-lg bg-muted">
		<img
			src="https://avatar.vercel.sh/shadcn1"
			alt="Placeholder"
			class="size-full rounded-lg object-cover grayscale dark:brightness-20"
		/>
	</AspectRatio>
</div>

Installation

pnpm dlx shadcn-svelte@latest add aspect-ratio

Usage

<script lang="ts">
  import { AspectRatio } from "$lib/components/ui/aspect-ratio/index.js";
</script>
<AspectRatio ratio={16 / 9}>
  <img src="..." alt="Image" class="rounded-md object-cover" />
</AspectRatio>

Square

A square aspect ratio component using the ratio={1 / 1} prop. This is useful for displaying images in a square format.

Placeholder
<script lang="ts">
	import { AspectRatio } from "$lib/components/ui/aspect-ratio/index.js";
</script>
 
<div class="w-full max-w-[12rem]">
	<AspectRatio ratio={1 / 1} class="rounded-lg bg-muted">
		<img
			src="https://avatar.vercel.sh/shadcn1"
			alt="Placeholder"
			class="size-full rounded-lg object-cover grayscale dark:brightness-20"
		/>
	</AspectRatio>
</div>

Portrait

A portrait aspect ratio component using the ratio={9 / 16} prop. This is useful for displaying images in a portrait format.

Placeholder
<script lang="ts">
	import { AspectRatio } from "$lib/components/ui/aspect-ratio/index.js";
</script>
 
<div class="w-full max-w-[10rem]">
	<AspectRatio ratio={9 / 16} class="rounded-lg bg-muted">
		<img
			src="https://avatar.vercel.sh/shadcn1"
			alt="Placeholder"
			class="size-full rounded-lg object-cover grayscale dark:brightness-20"
		/>
	</AspectRatio>
</div>