A Dynamic Island for uploads: a pill that morphs between idle, uploading and done, and expands into the file list on hover.
"use client"
import { demoAdapter } from "@/examples/_demo"
import { UploadIsland } from "@/components/upload-island"
export default function UploadIslandExample() {
return <UploadIsland adapter={demoAdapter} />
}
Installation
npx shadcn@latest add @uploadcn/upload-islandUsage
import { UploadIsland } from "@/components/upload-island"<UploadIsland maxFiles={10} />The pill is the dropzone itself, so it's both a button and a drop target. The shape animates with motion's layout; content cross-fades with a blur. It expands on hover and on keyboard focus, and its accessible name always describes the progress.
Props
Prop
Type