Animated background images with SVG
Please don't! Putting animation behind content is bad for usability and accessibility
Making web and mobile applications
fast, secure, and easy to operate.
:enabled :invalid :placeholder-shown :disabled :in-range :user-error :checked :out-of-range :indeterminate :default :required :read-only :valid :optional :read-write
[aria-required] [aria-invalid="true"]↪
* { 0 - 0 - 0 }
li, p, ::before { 0 - 0 - 1 }
.class, [type] { 0 - 1 - 0 }
#soPowerful { 1 - 0 - 0 }
ul > li { 0 - 0 - 2 }
ul li { 0 - 0 - 2 }
li ~ li { 0 - 0 - 2 }
li:nth-of-type(n+2) { 0 - 1 - 1 }
h1 + h2 { 0 - 0 - 2 }
header h2 { 0 - 0 - 2 }
li { 0 - 0 - 1 }
:not(li) { 0 - 0 - 1 }
.someClass { 0 - 1 - 0 }
:not(.someClass) { 0 - 1 - 0 }
#someId { 1 - 0 - 0 }
:not(#someId) { 1 - 0 - 0 }
input[type=checkbox] { 0 - 1 - 1 }
input:not([type=checkbox]) { 0 - 1 - 1 }
.disabled {cursor: default !important;}
p.btn {cursor: pointer;}
v.
.disabled.disabled.disabled {cursor: default;}
p.btn {cursor: pointer;}
#TheirWidget {background-color: blue !important;}
#3rdPartyWidget {background-color: white;}
v.
#TheirWidget#TheirWidget {background-color: blue ;}
#3rdPartyWidget {background-color: white;}
Please don't! Putting animation behind content is bad for usability and accessibility

88KB
+
4KB
<
551KB
div {
background-image:url(images/frame.jpg);
mask: url(images/framemask.png);
}
pointer-events: none; -webkit-user-modify: read-write-plaintext-only; -moz-user-modify: read-write; user-modify: read-write;</pre>
<input id="zip" type="tel" name="zipcode" class="masked"
placeholder="XXXXX" pattern="\d{5}" title="5-digit zip code">
progressively enhanced with JS to:
<label for="zip">Zip Code</label>
<span class="shell">
<span aria-hidden="true" id="zipMask"><i>123</i>XX</span>
<input id="zip" type="tel" name="zipcode" pattern="\d{5}"
class="masked" title="5-digit zip code" maxlength="5" data-placeholder="XXXXX">
</span>
Github Repo
<fieldset class="mgr" id="address">
<legend>Select an address to edit:</legend>
<div>
<a class="backward" data-move="backward" data-mgr="shipping-addresses" hidden></a>
<ul class="mgr-labels left0">
<li>
<label for="address1">
Instart Logic<br/>
US Headquarters<br/>
450 Lambert Avenue<br/>
Palo Alto, CA 94306
</label>
</li>
<li>
<label for="address2">
Instart Logic<br/>
India Office<br/>
6th Floor , HM Vibha Towers<br/>
Hosur Rd, Adugodi<br/>
Bengaluru — 560029
</label>
</li>...
</ul>
<a class="forward" data-move="forward" data-mgr="shipping-addresses" hidden></a>
</div>
<ul id="addressradios" class="mgr-radios">
<li>
<input type="radio" name="shipping-addresses" data-value="0" id="address1" checked><span></span>
</li>
<li>
<input type="radio" name="shipping-addresses" data-value="1" id="address2"><span></span>
</li>...
</ul>
</fieldset>