
Infinite Marquee
A seamless, GPU-only logo strip that never stutters or snaps at the loop point.
A pixel-faithful Apple Dynamic Island that morphs, splits, and breathes while it hosts live activities inside your app.
Dynamic Island Toast is a React and Tailwind CSS notification component that recreates the iPhone Dynamic Island, in Next.js or any React app, built on Framer Motion. The pill morphs between a compact stadium, a split mode where two activities join through a gooey filter, and an expanded card opened with a tap or long press. Variants cover messages, uploads, audio, calls, the ringer, timers, navigation, AirPods, charging, and Face ID, each with its own layout. Updates are announced politely, and reduced motion is honored. Set inline to pin it inside a container instead of the viewport.
Run the following command
pnpm dlx wensity@latest add dynamic-island-toast
npx wensity@latest add dynamic-island-toast
yarn dlx wensity@latest add dynamic-island-toast
bunx wensity@latest add dynamic-island-toast
Import DynamicIslandToast from @/components/wensity/dynamic-island-toast and render it anywhere in your React or Next.js app. The source lands in your own repo, so every prop, class and animation below is yours to edit.
"use client";import { useState } from "react";import { DynamicIslandToast } from "@/components/wensity/dynamic-island-toast";export function DynamicIslandToastDemo() {const [toast, setToast] = useState<DynamicIslandToast | null>({id: "upload-1",variant: "upload",title: "hero-final.mp4",progress: 0.62,duration: 4000,});return (<DynamicIslandToastinlinetoast={toast}onDismiss={() => setToast(null)}/>);}
| Prop | Type | Default | Description |
|---|---|---|---|
toast | DynamicIslandToast | null | - | The active toast. Pass null to dismiss. |
secondary | DynamicIslandToast | null | - | Optional second activity. When set, the island enters split-mode with two pills. |
defaultExpanded | boolean | false | Render expanded by default (useful for hero previews). |
onExpandedChange | (expanded: boolean) => void | - | Fired whenever the user expands or collapses the island. |
onDismiss | () => void | - | Fired when the island auto-dismisses or the user closes it. |
inline | boolean | false | If true, position absolutely inside the nearest positioned ancestor. If false, fixed to the viewport. |

A seamless, GPU-only logo strip that never stutters or snaps at the loop point.

A pinned cinematic section that morphs in lock-step with scroll, staying perfectly in sync whichever way you travel.

Lava lamp background for React heroes: soft gradient shapes that drift and melt.

An Apple-style image sequence scrubbed frame by frame on canvas, following your hand as you scroll in either direction.