Last Updated: February 25, 2016
· iamnan

"That's a nice web design! Now, about that File Field..."

Good for avatars and such!

Input file fields in HTML forms are notoriously ugly and inconsistent across browsers.

ImageDrop is a tiny (989 characters), deceptively simple, and entirely effective way to make file input fields consistent looking while adding an image preview and placeholder text.

ImageDrop employs a little CSS trickery to change the file input field into a drop zone.

During hover, a div is temporarily shown to act as the placeholder.

On drop, javascript validates that the file is an image and generates the preview by updating the the background-image style of the parent div with the local image -- all on the client-side of course.

The html structure in the form looks like this:

<div data-imagedrop>
  <input type='file'>

And, yes, that's completely compatible with bootstrap.

ImageDrop has been packaged as a gem, but the raw js and css files are included for use outside of rails.

Check out the demo or visit the ImageDrop repo on GitHub.

Say Thanks