Иконка календаря с помощью CSS3

Пример создания иконки календаря с датой и месяцем с помощью свойств CSS3

by Andrey Dobrovoi

HTML

<!-- иконка календаря -->
<time datetime="2014-04-18" class="icon">
  <em>Пятница</em>
  <strong>Апрель</strong>
  <span>18</span>
</time>

CSS

body
{
  font-family: "Helvetica Neue Bold", arial, helvetica, sans-serif;
  font-size: 100%;
  margin: 10px;
  color: #333;
  background-color: #EBEBEB;
}

h1
{
  margin: 0;
  font-weight: normal;
}

time.icon
{
  font-size: 1em; /* change icon size */
  display: block;
  position: relative;
  width: 5em;
  height: 5em;
  background-color: #fff;
  margin: 2em auto;
  border-radius: 0.6em;
  box-shadow: 0 1px 0 #bdbdbd, 0 2px 0 #fff, 0 3px 0 #bdbdbd, 0 4px 0 #fff, 0 5px 0 #bdbdbd, 0 0 0 1px #bdbdbd;
  overflow: hidden;
  -webkit-backface-visibility: hidden;
  -webkit-transform: rotate(0deg) skewY(0deg);
  -webkit-transform-origin: 50% 10%;
  transform-origin: 50% 10%;
}

time.icon *
{
  display: block;
  width: 100%;
  font-size: 0.8em;
  font-weight: bold;
  font-style: normal;
  text-align: center;
}

time.icon strong
{
position: absolute;
top: 0;
padding: 0.4em 0;
color: #E0E0E0;
background-color: #15AF00;
border-bottom: 1px dashed #016605;
box-shadow: 0 2px 0 #22D500;
}

time.icon em
{
  position: absolute;
  bottom: 0.3em;
  color: #0EAC00;
  text-shadow: 1px 1px 3px #B6B6B6;  
}

time.icon span
{
  width: 100%;
  font-size: 1.6em;
  letter-spacing: -0.04em;
  padding-top: 1.2em;
  color: #2f2f2f;
  text-shadow: 1px 1px 3px #757575;  
}

time.icon:hover, time.icon:focus
{
  -webkit-animation: swing 0.6s ease-out;
  animation: swing 0.6s ease-out;
}

@-webkit-keyframes swing {
  0%   { -webkit-transform: rotate(0deg)  skewY(0deg); }
  20%  { -webkit-transform: rotate(12deg) skewY(4deg); }
  60%  { -webkit-transform: rotate(-9deg) skewY(-3deg); }
  80%  { -webkit-transform: rotate(6deg)  skewY(-2deg); }
  100% { -webkit-transform: rotate(0deg)  skewY(0deg); }
}

@keyframes swing {
  0%   { transform: rotate(0deg)  skewY(0deg); }
  20%  { transform: rotate(12deg) skewY(4deg); }
  60%  { transform: rotate(-9deg) skewY(-3deg); }
  80%  { transform: rotate(6deg)  skewY(-2deg); }
  100% { transform: rotate(0deg)  skewY(0deg); }
}