UploadKit
SDK@uploadkitdev/react

UploadBlueprint

A technical blueprint/schematic-styled dropzone with grid lines, crosshairs, corner brackets, and monospace file readouts.

A dropzone styled like a technical drawing — dark blue background, white grid lines, crosshair markers, L-bracket corners, and monospace file status readouts using block characters for progress. Perfect for developer tools and engineering platforms.

Design inspiration: Figma Dev Mode, CAD/engineering tools, technical schematics.

motion is an optional peerDependency. Without it, corners expand via CSS transitions. pnpm add motion for spring-animated corner brackets and AnimatePresence file entries.

DROP FILES TO UPLOAD

Figma · CAD — technical blueprint

Basic usage

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

export default function Page() {
  return (
    <UploadBlueprint
      route="fileUploader"
      accept={['image/*', 'application/pdf']}
      maxSize={50 * 1024 * 1024}
      onUploadComplete={(results) => {
        console.log('Schematic uploaded:', 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 failure.
classNamestringAdditional CSS class(es).
childrenReactNodeOverride the title.

Theming

VariableDefaultPurpose
--uk-blueprint-bg#0d1b2aBackground color
--uk-blueprint-gridrgba(255,255,255,0.06)Grid line color
--uk-blueprint-accent#4cc9f0Accent for crosshairs, corners, text

File readout format

> mountain-photo.jpg .... 2.4MB [████████░░] 78%
> report.pdf ............ 1.1MB [OK]
> broken.zip ............ 500KB [ERR]

Accessibility

  • role="button" with keyboard support
  • Corner brackets animate outward on drag
  • Respects prefers-reduced-motion

On this page