Dynamic Island

An iOS-style island pill that morphs between live activity views with a bouncy resize.

@spectrumui/dynamic-island

Focus

24:59

Installation

Login to view commandCreate a free account to access the install command

Usage

import { DynamicIsland, DynamicIslandView } from "@/components/motion/dynamic-island"
<DynamicIsland view={view} compact={<Dot />}>
  <DynamicIslandView id="timer">…</DynamicIslandView>
  <DynamicIslandView id="music">…</DynamicIslandView>
</DynamicIsland>

API Reference

DynamicIsland

beUI's Dynamic Island block (beui.dev, MIT), installed from its shadcn registry into components/motion. The shell animates real width and height on a long spring with barely-there bounce, while views crossfade with blur. Set view to null for the compact pill.

PropTypeDefaultDescription
*viewstring | null-Active view id; null shows the compact pill
compactReactNode-Compact pill content shown when no view is active
childrenReactNode-DynamicIslandView elements
classNamestring-Classes for the shell

DynamicIslandView

One view inside the island. Only the view whose id matches the parent's view prop is rendered.

PropTypeDefaultDescription
*idstring-Matches the parent view prop when active
*childrenReactNode-View content
classNamestring-Classes for the view
Work with me