--- 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: true --- {{% callout info %}} The recommended plugin to animate custom file inputs is [bs-custom-file-input](https://www.npmjs.com/package/bs-custom-file-input); it's what we use here in our docs. {{% /callout %}} ## Default 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 `