Back to Blog
v2.2.0

Introducing Dynamic Island and Widget Stack

Two new signature components for fitting expressive, glanceable interactions into compact spaces.

v2.2.0

Spark UI 2.2.0 adds Dynamic Island and Widget Stack, bringing the focused collection to 13 signature components. Both are designed for interfaces that need to show more without permanently taking over more of the page.

Dynamic Island is a compact activity surface that smoothly morphs between a pill and expanded content. Use it for media playback, timers, calls, notifications, or any interaction that should stay available without becoming the center of the layout. It supports controlled and uncontrolled state, so it can manage its own expansion or follow another part of your application.

The component also has a deliberate empty state: when no activity is available, pressing the island briefly enlarges and shakes it before returning to rest. Native buttons, customizable labels, Escape-key handling, focus restoration, and reduced-motion support keep the interaction playful without giving up accessibility.

Widget Stack groups several glanceable widgets into one small or medium surface. People can swipe or scroll vertically between pages, use the dots to jump directly to a widget, or connect the active page to application state with the index-change callback. Each child remains ordinary React content, so the stack does not impose a separate widget API.

Keyboard controls cover arrow keys, Page Up, Page Down, Home, and End. Every page and dot announces its position, visible focus states are included, and smooth scrolling automatically switches off when reduced motion is preferred.

Both components are available now through the Spark UI registry with live examples, copyable installation commands, and source you can fully customize after installation.

Featured component

Dynamic Island

A functional iPhone-inspired island that morphs between compact and expanded content.

Install Dynamic Island

$ npx shadcn@latest add https://spark-ui-olive.vercel.app/r/dynamic-island.json
Read the Dynamic Island docs

Featured component

Widget Stack

A stack of small or medium widgets with vertical snap scrolling and page dots.

Photos

Good afternoon

UV index is moderate

July

SMTWTFS12345678910111213141516171819202122232425262728293031

Manila

28°

Partly cloudy

82%

Device

Install Widget Stack

$ npx shadcn@latest add https://spark-ui-olive.vercel.app/r/widget-stack.json
Read the Widget Stack docs