caliper uidocs

Link unfurl

Pro

A preview card for a link, with image, title and source.

Installs components/ui/link-unfurl.tsxDepends on lucide-reactMotion none in component source
pnpm dlx shadcn@latest add @caliper/link-unfurl

Example Journal

Designing calm motion for product interfaces (opens in a new tab)

Movement should explain a change, then get out of the way. Durations, easing and reduced motion in practice.

When to use #

Use it for

  • Showing a pasted URL inside a message or note.

Skip it when

  • The link cannot be fetched safely.

Installation #

terminal
pnpm dlx shadcn@latest add @caliper/link-unfurl

Adds its 2 files to components/ui/, each with its own stylesheet, and installs their packages. Pro installs with your access token, set up once per project. See Pro access. The first part also adds Caliper UI’s tokens; import them once as in Installation.

Usage #

Import it from your copy of the source. The example behind the preview comes with the source.

example.tsx
import { LinkUnfurl } from "@/components/ui/link-unfurl"

The worked example comes with Pro

The 18-line example behind the preview opens here with a Pro or Team licence.

Checking your licence…

API reference #

LinkUnfurl

component
PropTypeDefault
url *string—
previewLinkPreview—
status"loading" | "error" | "ready"preview ? "ready" : "loading"
onRetry(() => void)—
onRemove(() => void)—
layout"horizontal" | "vertical""horizontal"
classNamestring—

Accessibility #

It exposes status and alert semantics, with aria-busy, aria-label and aria-hidden kept in step with state. Changes that matter are announced through a live region.

No custom key handling; Tab and the native activation keys do the work.

Motion #

It declares no animation in its component source. Any transition comes from its stylesheet, which uses the duration tokens that collapse to instant under prefers-reduced-motion.