Introducing Dynamic Island and Widget Stack
Two new signature components for fitting expressive, glanceable interactions into compact spaces.
v2.2.0Spark 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
Featured component
Widget Stack
A stack of small or medium widgets with vertical snap scrolling and page dots.