About
Renders an area for uploading files with a native HTML file input, handling click and drag events with an onChange handler for the uploaded file data. Supports a separate Trigger element, custom children composition, inline rendering and a headless variant with render props exposing the drag-over state.
Built with React and Tailwind. Copy the prompt and paste it into Claude Code, Cursor or Lovable: your agent adds Reshaped File upload to your project and fits it to your theme.
Code
How Reshaped File upload is used: the demo's code. The component's own source comes with a free account.
Usage.tsx
import { Reshaped, View } from "reshaped/bundle";
import FileUpload from "@/components/ui/reshaped-file-upload";
export default function Demo() {
return (
<Reshaped theme="slate">
<div style={{ maxWidth: 480, width: "100%", margin: "0 auto", padding: 24 }}>
<FileUpload name="file" inline>
<View padding={3}>Drop files to attach</View>
</FileUpload>
</div>
</Reshaped>
);
}








