JSFiddle - React, Tailwind, and code Playground

HTML

<div id="wrap">
    <div class="gradient">
        &nbsp;
    </div>
</div>

CSS

#wrap {
    position: relative;
    width: 120px;
    margin: 5em auto 0 auto;
}

:before,
:after {
    box-sizing: border-box;
}

.gradient:before {
    width: 120px;
    height: 120px;
    content: " ";
    position: absolute;
    left: 50%;
    top: -35px;
    margin-left: -60px;
    background: orange;
    border: 2px solid black;
}

.gradient:after {
    background: url(http://maps.finance.gov.au/sites/all/themes/maps_theme/images/icon-dof-cycle.png) 0 0 no-repeat;	
	-webkit-mask-image: url(https://opc.com.au/sites/default/files/trans-gradient-2.png);
	-o-mask-image: url(https://opc.com.au/sites/default/files/trans-gradient-2.png);
	-moz-mask-image: url(https://opc.com.au/sites/default/files/trans-gradient-2.png);
	mask-image: url(https://opc.com.au/sites/default/files/trans-gradient-2.png);

	content: "";
    position: absolute;
    width: 40px;
    height: 80px;
    margin-left: -25px;
    margin-top: -25px;
    top: 10%;
    left: 50%;
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
}

.gradient {
    height: 120px;
    position: relative;
}

.gradient:hover {
    cursor: pointer;
}

.gradient:hover:after {
    background-position: 0 -30px;
}