Dynamic Island Toast

Pro

A pixel-faithful Apple Dynamic Island that morphs, splits, and breathes while it hosts live activities inside your app.

cinematic interactionsdynamicislandtoastframer motion
Dynamic Island Toast component preview

Installation

Run the following command

~/your-project
pnpm dlx wensity@latest add dynamic-island-toast

Usage

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.

app/example.tsx
"use client";
import { useState } from "react";
import {
DynamicIslandToast,
type DynamicIslandToastModel,
} from "@/components/wensity/dynamic-island-toast";
export function DynamicIslandToastDemo() {
const [toast, setToast] = useState<DynamicIslandToastModel | null>({
id: "upload-1",
variant: "upload",
title: "hero-final.mp4",
progress: 0.62,
duration: 4000,
});
return (
<DynamicIslandToast
inline
toast={toast}
onDismiss={() => setToast(null)}
/>
);
}

Props

PropTypeDefaultDescription
toastDynamicIslandToast | null-The active toast. Pass null to dismiss.
secondaryDynamicIslandToast | null-Optional second activity. When set, the island enters split-mode with two pills.
defaultExpandedbooleanfalseRender 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.
inlinebooleanfalseIf true, position absolutely inside the nearest positioned ancestor. If false, fixed to the viewport.