A flexible JavaScript file upload component that works with every stack

A JavaScript library that can upload anything you throw at it, and offers a great, accessible, silky smooth user experience.

Get Started View on GitHub

Easily integrates with your favorite frameworks

The FilePond web component works with any JavaScript framework…

…and thanks to Shadow DOM, it plays nicely with CSS frameworks too.

Highlights

Use as Custom Element

The <file-pond> custom element feels right at home on a classic webpage…

<file-pond>
    <label for="my-file">Drop files here, or <u>browse</u></label>
    <input id="my-file" type="file" name="docs" />
</file-pond>
<button type="submit">Upload</button>

<script type="module">
    import { defineFilePond } from 'filepond';
    import { locale } from 'filepond/locales/en-gb.js';
    defineFilePond({ locale });
</script>

…and turns into a <Component> when used with a JavaScript framework.

export default function App() {
    const [myEntries, setMyEntries] = useState<FilePondEntry[]>([]);
    return (
        <file-pond entries={myEntries}>
            <label htmlFor="my-file">
                Drop files here, or <u>browse</u>
            </label>
            <input id="my-file" type="file" name="docs" />
        </file-pond>
    );
}

Spring Powered Layout Engine

The layout engine automagically animates elements to new positions resulting in a fully animated user interface no matter the CSS layout.

Easily Extendable

Preview Images and Videos

Use appendEntryImageView and appendEntryVideoView to add media previews to the file entry.

Headless Mode

Use FilePond without a user interface. Useful for programmatic processing of files or when building a custom UI on top of FilePond core.

import { createFilePondEntryTree, createExtensionManager } from "filepond";

const entryTree = createFilePondEntryTree();

const extensionManager = createExtensionManager(entryTree);

entryTree.entries = [new File(/* */)];

Light and Dark theme

FilePond uses CSS color-scheme to make switching between light and dark mode super easy.

Style with parts and custom properties

Powerful templating

Palls with Pintura

FilePond integrates beautifully with Pintura unlocking the perfect image editing experience for your users.

Learn more about Pintura Show demo integration