Removes chrome from color input swatch and overlays over an image, using blend modes to colorize. Voila! Color changing without JS.
Chrome and Firefox only right now.
<!-- CLICK TO CHANGE COLOR --> | |
<input type="color" value="#0000ff"> | |
<img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/18515/9284591662_38b0438418_h.jpg"> | |
<!-- Image Credit --> | |
<a href="https://www.flickr.com/photos/betabit/9284591662/" target="_blank">Photo by Jackson Faddis 🔗</a> |
html, body { height: 100%; } | |
body { margin: 0; } | |
img { | |
height: 100%; | |
width: 100%; | |
object-fit: cover; | |
} | |
input { | |
/* removes default styling from input color element */ | |
padding: 0; | |
border: none; | |
/* makes input (color swatch) 100% size of container */ | |
position: absolute; | |
width: 100%; | |
height: 100%; | |
/* mix blend mode makes the color of the swatch alter the image behind it. */ | |
mix-blend-mode: hue; /* try screen, multiply or other blend modes for different effects */ | |
cursor: pointer; | |
} | |
/* removes default styling from input color element */ | |
::-webkit-color-swatch { | |
border: none; | |
} | |
::-webkit-color-swatch-wrapper { | |
padding: 0; | |
} | |
::-moz-color-swatch, | |
::-moz-focus-inner { | |
border: none; | |
} | |
::-moz-focus-inner { | |
padding: 0; | |
} | |
/* Image Credit */ | |
a { | |
position: absolute; | |
bottom: 10px; | |
right: 10px; | |
color: #6B6BFF; | |
background: black; | |
display: block; | |
padding: 0 8px 3px; | |
font-size: 15px; | |
text-decoration: none; | |
} |