Animated Chessboard
Demo
If you like this experiment, you may also want to see it extended as a custom HTML5 Web Component tag.
Usage and Code Insight
<p>If you like this experiment, you may also want to see
it <a href="x-chessboard-html5-web-component.html" target="_blank">extended as a custom</a> HTML5 Web Component tag.</p>
<p> </p<p> </p><p> </p>
<div class="acidjs-chessboard">
<ul>
<li class="black rook"><!-- / --></li>
<li class="black knight"><!-- / --></li>
<li class="black bishop"><!-- / --></li>
<li class="black queen"><!-- / --></li>
<li class="black king"><!-- / --></li>
<li class="black bishop"><!-- / --></li>
<li class="black knight"><!-- / --></li>
<li class="black rook"><!-- / --></li>
<li class="black pawn"><!-- / --></li>
<li class="black pawn"><!-- / --></li>
<li><!-- / --></li>
<li class="black pawn"><!-- / --></li>
<li class="black pawn"><!-- / --></li>
<li class="black pawn"><!-- / --></li>
<li class="black pawn"><!-- / --></li>
<li class="black pawn"><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li class="black pawn"><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li class="white pawn"><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li><!-- / --></li>
<li class="white pawn"><!-- / --></li>
<li class="white pawn"><!-- / --></li>
<li class="white pawn"><!-- / --></li>
<li class="white pawn"><!-- / --></li>
<li><!-- / --></li>
<li class="white pawn"><!-- / --></li>
<li class="white pawn"><!-- / --></li>
<li class="white pawn"><!-- / --></li>
<li class="white rook"><!-- / --></li>
<li class="white knight"><!-- / --></li>
<li class="white bishop"><!-- / --></li>
<li class="white queen"><!-- / --></li>
<li class="white king"><!-- / --></li>
<li class="white bishop"><!-- / --></li>
<li class="white knight"><!-- / --></li>
<li class="white rook"><!-- / --></li>
</ul>
</div>
/*
* Animated CSS3 Only Chessboard by Martin Ivanov (@wemakesitesnet)
* @version 1.0
* @author Martin Ivanov
* @url portfolio http://wemakesites.net/
* @url twitter https://twitter.com/wemakesitesnet
* @url blog http://acidmartin.wordpress.com/
**/
/*
* Do you like this solution? Please, donate:
* https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QFUHPWJB2JDBS
**/
.acidjs-chessboard,
.acidjs-chessboard *,
.acidjs-chessboard *::before,
.acidjs-chessboard *::after
{
-webkit-box-sizing: content-box;
-moz-box-sizing: content-box;
box-sizing: content-box;
}
.acidjs-chessboard ul::before,
.acidjs-chessboard li:nth-child(57)::before,
.acidjs-chessboard li:nth-child(58)::before,
.acidjs-chessboard li:nth-child(59)::before,
.acidjs-chessboard li:nth-child(60)::before,
.acidjs-chessboard li:nth-child(61)::before,
.acidjs-chessboard li:nth-child(62)::before,
.acidjs-chessboard li:nth-child(63)::before,
.acidjs-chessboard li:nth-child(64)::before,
.acidjs-chessboard li:nth-child(1)::before,
.acidjs-chessboard li:nth-child(9)::before,
.acidjs-chessboard li:nth-child(17)::before,
.acidjs-chessboard li:nth-child(25)::before,
.acidjs-chessboard li:nth-child(33)::before,
.acidjs-chessboard li:nth-child(41)::before,
.acidjs-chessboard li:nth-child(49)::before
{
position: absolute;
bottom: -32px;
font: bold 24px Georgia, Garamond;
color: #2f343a;
}
.acidjs-chessboard li:nth-child(-2n+8),
.acidjs-chessboard li:nth-child(8) ~ li:nth-child(-2n+15),
.acidjs-chessboard li:nth-child(16) ~ li:nth-child(-2n+24),
.acidjs-chessboard li:nth-child(24) ~ li:nth-child(-2n+31),
.acidjs-chessboard li:nth-child(32) ~ li:nth-child(-2n+40),
.acidjs-chessboard li:nth-child(40) ~ li:nth-child(-2n+47),
.acidjs-chessboard li:nth-child(48) ~ li:nth-child(-2n+56),
.acidjs-chessboard li:nth-child(56) ~ li:nth-child(-2n+63)
{
background-color: #2f343a;
}
.acidjs-chessboard li:nth-child(1)::before,
.acidjs-chessboard li:nth-child(9)::before,
.acidjs-chessboard li:nth-child(17)::before,
.acidjs-chessboard li:nth-child(25)::before,
.acidjs-chessboard li:nth-child(33)::before,
.acidjs-chessboard li:nth-child(41)::before,
.acidjs-chessboard li:nth-child(49)::before
{
bottom: 22px;
left: -32px;
}
.acidjs-chessboard,
.acidjs-chessboard ul
{
width: 512px;
height: 512px;
}
.acidjs-chessboard ul,
.acidjs-chessboard li
{
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
-ms-transform-style: preserve-3d;
-o-transform-style: preserve-3d;
transform-style: preserve-3d;
}
.acidjs-chessboard *
{
margin: 0;
padding: 0;
list-style: none;
}
.acidjs-chessboard
{
margin: auto;
cursor: default;
position: relative;
z-index: 5;
-webkit-perspective: 600px;
-moz-perspective: 600px;
-ms-perspective: 600px;
-o-perspective: 600px;
perspective: 600px;
}
.acidjs-chessboard ul
{
border: solid 3px #2f343a;
box-shadow: 4px 6px 6px 2px rgba(0, 0, 0, .25);
-webkit-backface-visibility: visible;
-webkit-animation: spin 30s infinite;
-moz-backface-visibility: visible;
-moz-animation: spin 30s infinite;
-ms-backface-visibility: visible;
-ms-animation: spin 30s infinite;
-o-backface-visibility: visible;
-o-animation: spin 30s infinite;
backface-visibility: visible;
animation: spin 30s infinite;
}
.acidjs-chessboard li
{
float: left;
width: 64px;
height: 64px;
text-align: center;
}
.acidjs-chessboard li:nth-child(8n + 1)
{
clear: left;
}
.acidjs-chessboard li:nth-child(1)::before
{
content: "1";
}
.acidjs-chessboard li:nth-child(9)::before
{
content: "2";
}
.acidjs-chessboard li:nth-child(17)::before
{
content: "3";
}
.acidjs-chessboard li:nth-child(25)::before
{
content: "4";
}
.acidjs-chessboard li:nth-child(33)::before
{
content: "5";
}
.acidjs-chessboard li:nth-child(41)::before
{
content: "6";
}
.acidjs-chessboard li:nth-child(49)::before
{
content: "7";
}
.acidjs-chessboard ul::before
{
content: "8";
bottom: 22px;
left: -32px;
}
.acidjs-chessboard li:nth-child(57)::before
{
content: "a";
}
.acidjs-chessboard li:nth-child(58)::before
{
content: "b";
}
.acidjs-chessboard li:nth-child(59)::before
{
content: "c";
}
.acidjs-chessboard li:nth-child(60)::before
{
content: "d";
}
.acidjs-chessboard li:nth-child(61)::before
{
content: "e";
}
.acidjs-chessboard li:nth-child(62)::before
{
content: "f";
}
.acidjs-chessboard li:nth-child(63)::before
{
content: "g";
}
.acidjs-chessboard li:nth-child(64)::before
{
content: "h";
}
.acidjs-chessboard li::after
{
display: block;
font: bold 52px/64px "Arial Rounded MT", Arial, Helvetica, Sans-serif;
text-shadow: 6px 6px rgba(0, 0, 0, .5);
color: #1572b7;
-webkit-transform: translate3d(0, 0, 15px);
-moz-transform: translate3d(0, 0, 15px);
-ms-transform: translate3d(0, 0, 15px);
-o-transform: translate3d(0, 0, 15px);
transform: translate3d(0, 0, 15px);
}
.acidjs-chessboard .black::after
{
color: #e74c3c;
}
.acidjs-chessboard .rook::after
{
content: "\2656";
}
.acidjs-chessboard .pawn::after
{
content: "\2659";
}
.acidjs-chessboard .knight::after
{
content: "\2658";
}
.acidjs-chessboard .bishop::after
{
content: "\2657";
}
.acidjs-chessboard .king::after
{
content: "\2654";
}
.acidjs-chessboard .queen::after
{
content: "\2655";
}
@-webkit-keyframes spin
{
to
{
-webkit-transform: rotatex(-360deg) rotatey(-360deg) rotatez(-360deg);
}
}
@-moz-keyframes spin
{
to
{
-moz-transform: rotatex(-360deg) rotatey(-360deg) rotatez(-360deg);
}
}
@-ms-keyframes spin
{
to
{
-ms-transform: rotatex(-360deg) rotatey(-360deg) rotatez(-360deg);
}
}
@-o-keyframes spin
{
to
{
-o-transform: rotatex(-360deg) rotatey(-360deg) rotatez(-360deg);
}
}
@keyframes spin
{
to
{
transform: rotatex(-360deg) rotatey(-360deg) rotatez(-360deg);
}
}
body
{
overflow-x: hidden;
}
.acidjs-chessboard
{
transform: scale(.75);
transform-origin: top left;
}