JSFiddle - React, Tailwind, and code Playground
HTML
<input type="password" value="a">
CSS
input[type="password"][value$=" "] { background-image: url("http://placehold.it/15x15?text=+"); }
input[type="password"][value$="!"] { background-image: url("http://placehold.it/15x15?text=%21"); }
input[type="password"][value$="\""] { background-image: url("http://placehold.it/15x15?text=%22"); }
input[type="password"][value$="#"] { background-image: url("http://placehold.it/15x15?text=%23"); }
input[type="password"][value$="$"] { background-image: url("http://placehold.it/15x15?text=%24"); }
input[type="password"][value$="%"] { background-image: url("http://placehold.it/15x15?text=%25"); }
input[type="password"][value$="&"] { background-image: url("http://placehold.it/15x15?text=%26"); }
input[type="password"][value$="'"] { background-image: url("http://placehold.it/15x15?text=%27"); }
input[type="password"][value$="("] { background-image: url("http://placehold.it/15x15?text=%28"); }
input[type="password"][value$=")"] { background-image: url("http://placehold.it/15x15?text=%29"); }
input[type="password"][value$="*"] { background-image: url("http://placehold.it/15x15?text=%2A"); }
input[type="password"][value$="+"] { background-image: url("http://placehold.it/15x15?text=%2B"); }
input[type="password"][value$=","] { background-image: url("http://placehold.it/15x15?text=%2C"); }
input[type="password"][value$="-"] { background-image: url("http://placehold.it/15x15?text=-"); }
input[type="password"][value$="."] { background-image: url("http://placehold.it/15x15?text=."); }
input[type="password"][value$="/"] { background-image: url("http://placehold.it/15x15?text=%2F"); }
input[type="password"][value$="0"] { background-image: url("http://placehold.it/15x15?text=0"); }
input[type="password"][value$="1"] { background-image: url("http://placehold.it/15x15?text=1"); }
input[type="password"][value$="2"] { background-image: url("http://placehold.it/15x15?text=2"); }
input[type="password"][value$="3"] { background-image: url("http://placehold.it/15x15?text=3");...