JSFiddle - React, Tailwind, and code Playground

by St Klauz

HTML

<form>
    <input id="uploader1" type="file" accept="image/*" style="display:none;" required>
    <label for="uploader1">
         <div class="square" id="myImg1"></div>
    </label>
</form>

CSS

.square{
        position: relative;
        width: 50%;
        margin-bottom:8.33333333%;
        cursor: pointer;
    }
.square:before{
        padding-top: 95%;
        display:block;
        content: "";
    }

#myImg1 {
     background: url('http://41.media.tumblr.com/9a0887e02276397170e196758c9137b6/tumblr_nymyp5VQQE1tgso5po1_500.jpg') no-repeat center;
     background-size: cover;
}
#myImg1:hover {
    background:url('http://40.media.tumblr.com/fd646a1997d6163b282711fbdc403932/tumblr_nymyp5VQQE1tgso5po3_500.jpg') no-repeat center;
    background-size: cover;
}
#myImg1:active {
    background:url('http://40.media.tumblr.com/174384c40aa7f329ad6dd2c8590f873b/tumblr_nymyp5VQQE1tgso5po2_500.jpg') no-repeat center;
    background-size: cover;
}

#uploader1 > input {
     display:none;
 }