JSFiddle - React, Tailwind, and code Playground

HTML

<div data-philter-sepia="100"><img src="http://lorempixel.com/image_output/animals-h-c-421-480-5.jpg" data-philter-drop-shadow="0 0 3 90 0 0 10 60" data-philter-contrast="125"></div>

JavaScript

/* Philter v1.1.1 | (c) 2015 Liudas Dzisevicius | MIT License */
!function(r){"use strict";function e(r,e,i,a,l,s){return"drop-shadow"==e[0]?(r[0]=r[0]+e[0]+"("+e[1]+i+" "+e[2]+i+" "+e[3]+i+" rgba(0,0,0,"+.01*e[4]+")) ",e[5]&&e[6]&&e[7]&&e[8]?r[1]=r[1]+e[0]+"("+e[5]+i+" "+e[6]+i+" "+e[7]+i+" rgba(0,0,0,"+.01*e[8]+")) ":r[1]=r[1]+e[0]+"("+e[1]+i+" "+e[2]+i+" "+e[3]+i+" rgba(0,0,0,"+.01*e[4]+")) "):"svg"==e[0]?(r[0]=r[0]+"url("+i+e[1]+") ",e[2]?r[1]=r[1]+"url("+i+e[2]+") ":r[1]=r[1]+"url("+i+e[1]+") "):"color"==e[0]?(o.color=o.color+1,t(e[1],e[2],a,l,s),r[0]=r[0]+"url("+i+"color-"+o.color+") ",e[3]&&e[4]?(o.color=o.color+1,t(e[3],e[4],a,l,s),r[1]=r[1]+"url("+i+"color-"+o.color+") "):r[1]=r[1]+"url("+i+"color-"+o.color+") "):(r[0]=r[0]+e[0]+"("+e[1]+i+") ",e[2]?r[1]=r[1]+e[0]+"("+e[2]+i+") ":r[1]=r[1]+e[0]+"("+e[1]+i+") "),r}function t(e,t,i,a,l){r("#svg").length||(r("body").append('<div id="svg"></div>'),r("#svg").append('<svg xmlns="http://www.w3.org/2000/svg" version="1.1"><defs></defs></svg>')),t=.01*t,r.ajax({url:l+"/philter/svg/color.svg",success:function(l){r(l).find("filter").attr("id","color-"+o.color),r(l).find("feFlood").attr({"flood-opacity":t,"flood-color":e,width:i,height:a});var s=(new XMLSerializer).serializeToString(l.documentElement);r("defs").append(s),r("#svg").html(r("#svg").html())},error:function(r,e,t){console.error(t)},async:!1})}var o=[];o.color=0,r.philter=function(t){t=r.extend({transitionTime:.5,url:"../js",tag:!0},t);var o=["blur","grayscale","hue-rotate","saturate","sepia","contrast","invert","opacity","brightness","drop-shadow","svg","color"],i=[],a=["",""],l="<style>",s="";if(t.tag)var n="data-philter-";else var n="data-";for(var c=0;c<o.length;c++)r("["+n+o[c]+"]").each(function(){i.indexOf(this)<0&&i.push(this)});for(var c=0;c<i.length;c++){for(var d=0;d<o.length;d++){var f=i[c].getAttribute(n+o[d]+"");if(f){s=s+"["+n+o[d]+'="'+f+'"]',f=f.split(" "),f.unshift(o[d]);var...