JSFiddle - React, Tailwind, and code Playground
HTML
<div class="popular-tags">
<ul class="languages">
<li><a href="#">Bash</a></li>
<li><a href="#">Python</a></li>
<li><a href="#">PHP</a></li>
</ul>
<ul class="web-servers">
<li><a href="#">nginx</a></li>
<li><a href="#">Apache</a></li>
<li><a href="#">Lighttpd</a></li>
</ul>
<ul class="network-services">
<li><a href="#">Exchange</a></li>
<li><a href="#">WebDAV</a></li>
<li><a href="#">Backups</a></li>
</ul>
</div>
CSS
* { -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; }
body {font-size:100%;}
a {
color:#FFF;
text-decoration:none;
}
.popular-tags {
font-family: 'Noto Serif', serif;
font-size:1.4em;
font-weight:700;
margin: 0 auto;
text-align: center;
}
.popular-tags ul, .popular-tags li {
margin: 0;
padding: 0;
}
.popular-tags li {
display: inline;
text-align: left;
}
.popular-tags li:first-child a {margin-left: 0;}
.popular-tags a {
background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,0)), to(rgba(0,0,0,0.10)));
border: 1px solid rgba(0, 0, 0, 0.2);
display: inline-block;
margin: 0 0 5% 5%;
padding: 1% 0 12% 2%;
width:25%;
text-shadow: 0 1px 0 rgba(0,0,0,0.35);
}
.popular-tags a:hover {
background-image:linear-gradient(135deg, rgba(255, 255, 255, .05) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .05) 50%, rgba(255, 255, 255, .05) 75%, transparent 75%, transparent);
box-shadow: inset 0 -1px 0 rgba(255,255,2550.4);
-webkit-background-size: 40px 40px;
-webkit-transform: scale(1.035);
-webkit-transition-duration: 0.04s;
-webkit-transition-timing-function: ease-in-out;
-webkit-animation: animate-bg 5s linear infinite;
}
.languages a {background-color: #4D99E0;}
.web-servers a {background-color: #75CC00;}
.network-services a {background-color: #E4247E;}
@-webkit-keyframes animate-bg {
from {
background-position: 0 0;
}
to {
background-position: -80px 0;
}
}
JavaScript
WebFontConfig = { google: { families: [ 'Noto+Serif:400,700:latin' ] } };
(function() {
var wf = document.createElement('script');
wf.src = ('https:' == document.location.protocol ? 'https' : 'http') +
'://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js';
wf.type = 'text/javascript';
wf.async = 'true';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(wf, s);
})();