--- layout: docs title: File browser description: Use our custom file inputs for consistent cross-browser styling, built-in customization, and lightweight JavaScript. group: forms toc: false --- {{< callout info >}} The recommended plugin to animate custom file input: [bs-custom-file-input](https://www.npmjs.com/package/bs-custom-file-input), that's what we are using currently here in our docs. {{< /callout >}} The file input is the most gnarly of the bunch and requires additional JavaScript if you'd like to hook them up with functional *Choose file...* and selected file name text. {{< example >}}
{{< /example >}} Add the `disabled` attribute to the `` and the custom markup will be updated to appear disabled. {{< example >}}
{{< /example >}} Longer placeholder text is truncated and an ellipsis is added when there's not enough space. {{< example >}}
{{< /example >}} We hide the default file `` via `opacity` and instead style the `