UploadKit
SDK@uploadkitdev/react

UploadPolaroid

A Pinterest/VSCO-inspired photo stack where images appear as rotated polaroid cards that "develop" from white as they upload.

Drop images and watch them appear as slightly rotated polaroid cards. Each card starts white and gradually "develops" to reveal the image as upload progress advances — like a real polaroid coming to life. Hover the stack to fan cards out.

Design inspiration: Pinterest boards, VSCO collections, instant photography.

motion is an optional peerDependency. Without it, cards appear with CSS transitions. pnpm add motion for spring scale-in entrances.

Drop photos hereor click to browse

Pinterest · VSCO — polaroid stack

Basic usage

import { UploadPolaroid } from '@uploadkitdev/react';

export default function Page() {
  return (
    <UploadPolaroid
      route="galleryUploader"
      accept={['image/*']}
      maxFiles={8}
      onUploadComplete={(results) => {
        console.log('Photos:', results.map((r) => r.url));
      }}
    />
  );
}

Props

PropTypeDefaultDescription
routestringRequired. Route name from your file router.
acceptstring[]Accepted MIME types.
maxSizenumberMaximum file size in bytes.
maxFilesnumberMaximum number of files.
metadataRecord<string, unknown>Metadata forwarded to the server.
onUploadComplete(results: UploadResult[]) => voidCalled after all files upload.
onUploadError(error: Error) => voidCalled on individual file failure.
classNamestringAdditional CSS class(es).

Visual states

StateAppearance
EmptyDashed border, upload icon, "Drop photos here"
DevelopingWhite overlay fades as progress crosses 50%
SuccessFull image visible, green status badge
HoverCards fan out with translateX stagger

Accessibility

  • Container is role="button" with keyboard support
  • Blob URLs revoked on unmount
  • Respects prefers-reduced-motion

On this page