Team:Tsinghua/css/hover
/*!
* Hover.css (http://ianlunn.co.uk/) * Version: 1.0.9 * Author: Ian Lunn @IanLunn * Author URL: http://ianlunn.co.uk/ * Github: https://github.com/IanLunn/Hover
* Made available under a MIT License: * http://www.opensource.org/licenses/mit-license.php
* Hover.css Copyright Ian Lunn 2014. */
/* Default styles for the demo buttons */ .button {
margin: .4em; padding: 1em; cursor: pointer; background: #e1e1e1; text-decoration: none; color: #666666; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
/* 2D TRANSITIONS */ /* Grow */ .grow {
display: inline-block; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .grow:hover, .grow:focus, .grow:active {
-webkit-transform: scale(1.1); transform: scale(1.1);
}
/* Shrink */ .shrink {
display: inline-block; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .shrink:hover, .shrink:focus, .shrink:active {
-webkit-transform: scale(0.9); transform: scale(0.9);
}
/* Pulse */ @-webkit-keyframes pulse {
25% { -webkit-transform: scale(1.1); transform: scale(1.1); }
75% { -webkit-transform: scale(0.9); transform: scale(0.9); }
}
@keyframes pulse {
25% { -webkit-transform: scale(1.1); transform: scale(1.1); }
75% { -webkit-transform: scale(0.9); transform: scale(0.9); }
}
.pulse {
display: inline-block; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .pulse:hover, .pulse:focus, .pulse:active {
-webkit-animation-name: pulse; animation-name: pulse; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite;
}
/* Pulse Grow */ @-webkit-keyframes pulse-grow {
to { -webkit-transform: scale(1.1); transform: scale(1.1); }
}
@keyframes pulse-grow {
to { -webkit-transform: scale(1.1); transform: scale(1.1); }
}
.pulse-grow {
display: inline-block; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .pulse-grow:hover, .pulse-grow:focus, .pulse-grow:active {
-webkit-animation-name: pulse-grow; animation-name: pulse-grow; -webkit-animation-duration: 0.3s; animation-duration: 0.3s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-direction: alternate; animation-direction: alternate;
}
/* Pulse Shrink */ @-webkit-keyframes pulse-shrink {
to { -webkit-transform: scale(0.9); transform: scale(0.9); }
}
@keyframes pulse-shrink {
to { -webkit-transform: scale(0.9); transform: scale(0.9); }
}
.pulse-shrink {
display: inline-block; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .pulse-shrink:hover, .pulse-shrink:focus, .pulse-shrink:active {
-webkit-animation-name: pulse-shrink; animation-name: pulse-shrink; -webkit-animation-duration: 0.3s; animation-duration: 0.3s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-direction: alternate; animation-direction: alternate;
}
/* Push */ @-webkit-keyframes push {
50% { -webkit-transform: scale(0.8); transform: scale(0.8); }
100% { -webkit-transform: scale(1); transform: scale(1); }
}
@keyframes push {
50% { -webkit-transform: scale(0.8); transform: scale(0.8); }
100% { -webkit-transform: scale(1); transform: scale(1); }
}
.push {
display: inline-block; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .push:hover, .push:focus, .push:active {
-webkit-animation-name: push; animation-name: push; -webkit-animation-duration: 0.3s; animation-duration: 0.3s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: 1; animation-iteration-count: 1;
}
/* Pop */ @-webkit-keyframes pop {
50% { -webkit-transform: scale(1.2); transform: scale(1.2); }
100% { -webkit-transform: scale(1); transform: scale(1); }
}
@keyframes pop {
50% { -webkit-transform: scale(1.2); transform: scale(1.2); }
100% { -webkit-transform: scale(1); transform: scale(1); }
}
.pop {
display: inline-block; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .pop:hover, .pop:focus, .pop:active {
-webkit-animation-name: pop; animation-name: pop; -webkit-animation-duration: 0.3s; animation-duration: 0.3s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: 1; animation-iteration-count: 1;
}
/* Rotate */ .rotate {
display: inline-block; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .rotate:hover, .rotate:focus, .rotate:active {
-webkit-transform: rotate(4deg); transform: rotate(4deg);
}
/* Grow Rotate */ .grow-rotate {
display: inline-block; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .grow-rotate:hover, .grow-rotate:focus, .grow-rotate:active {
-webkit-transform: scale(1.1) rotate(4deg); transform: scale(1.1) rotate(4deg);
}
/* Float */ .float {
display: inline-block; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .float:hover, .float:focus, .float:active {
-webkit-transform: translateY(-5px); transform: translateY(-5px);
}
/* Sink */ .sink {
display: inline-block; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .sink:hover, .sink:focus, .sink:active {
-webkit-transform: translateY(5px); transform: translateY(5px);
}
/* Hover */ @-webkit-keyframes hover {
50% { -webkit-transform: translateY(-3px); transform: translateY(-3px); }
100% { -webkit-transform: translateY(-6px); transform: translateY(-6px); }
}
@keyframes hover {
50% { -webkit-transform: translateY(-3px); transform: translateY(-3px); }
100% { -webkit-transform: translateY(-6px); transform: translateY(-6px); }
}
.hover {
display: inline-block; -webkit-transition-duration: 0.5s; transition-duration: 0.5s; -webkit-transition-property: transform; transition-property: transform; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .hover:hover, .hover:focus, .hover:active {
-webkit-transform: translateY(-6px); transform: translateY(-6px); -webkit-animation-name: hover; animation-name: hover; -webkit-animation-duration: 1.5s; animation-duration: 1.5s; -webkit-animation-delay: 0.3s; animation-delay: 0.3s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-direction: alternate; animation-direction: alternate;
}
/* Hang */ @-webkit-keyframes hang {
50% { -webkit-transform: translateY(3px); transform: translateY(3px); }
100% { -webkit-transform: translateY(6px); transform: translateY(6px); }
}
@keyframes hang {
50% { -webkit-transform: translateY(3px); transform: translateY(3px); }
100% { -webkit-transform: translateY(6px); transform: translateY(6px); }
}
.hang {
display: inline-block; -webkit-transition-duration: 0.5s; transition-duration: 0.5s; -webkit-transition-property: transform; transition-property: transform; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .hang:hover, .hang:focus, .hang:active {
-webkit-transform: translateY(6px); transform: translateY(6px); -webkit-animation-name: hang; animation-name: hang; -webkit-animation-duration: 1.5s; animation-duration: 1.5s; -webkit-animation-delay: 0.3s; animation-delay: 0.3s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-direction: alternate; animation-direction: alternate;
}
/* Skew */ .skew {
display: inline-block; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .skew:hover, .skew:focus, .skew:active {
-webkit-transform: skew(-10deg); transform: skew(-10deg);
}
/* Skew Forward */ .skew-forward {
display: inline-block; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transform-origin: 0 100%; transform-origin: 0 100%; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .skew-forward:hover, .skew-forward:focus, .skew-forward:active {
-webkit-transform: skew(-10deg); transform: skew(-10deg);
}
/* Skew Backward */ .skew-backward {
display: inline-block; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transform-origin: 0 100%; transform-origin: 0 100%; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .skew-backward:hover, .skew-backward:focus, .skew-backward:active {
-webkit-transform: skew(10deg); transform: skew(10deg);
}
/* Wobble Vertical */ @-webkit-keyframes wobble-vertical {
16.65% { -webkit-transform: translateY(8px); transform: translateY(8px); }
33.3% { -webkit-transform: translateY(-6px); transform: translateY(-6px); }
49.95% { -webkit-transform: translateY(4px); transform: translateY(4px); }
66.6% { -webkit-transform: translateY(-2px); transform: translateY(-2px); }
83.25% { -webkit-transform: translateY(1px); transform: translateY(1px); }
100% { -webkit-transform: translateY(0); transform: translateY(0); }
}
@keyframes wobble-vertical {
16.65% { -webkit-transform: translateY(8px); transform: translateY(8px); }
33.3% { -webkit-transform: translateY(-6px); transform: translateY(-6px); }
49.95% { -webkit-transform: translateY(4px); transform: translateY(4px); }
66.6% { -webkit-transform: translateY(-2px); transform: translateY(-2px); }
83.25% { -webkit-transform: translateY(1px); transform: translateY(1px); }
100% { -webkit-transform: translateY(0); transform: translateY(0); }
}
.wobble-vertical {
display: inline-block; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .wobble-vertical:hover, .wobble-vertical:focus, .wobble-vertical:active {
-webkit-animation-name: wobble-vertical; animation-name: wobble-vertical; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: 1; animation-iteration-count: 1;
}
/* Wobble Horizontal */ @-webkit-keyframes wobble-horizontal {
16.65% { -webkit-transform: translateX(8px); transform: translateX(8px); }
33.3% { -webkit-transform: translateX(-6px); transform: translateX(-6px); }
49.95% { -webkit-transform: translateX(4px); transform: translateX(4px); }
66.6% { -webkit-transform: translateX(-2px); transform: translateX(-2px); }
83.25% { -webkit-transform: translateX(1px); transform: translateX(1px); }
100% { -webkit-transform: translateX(0); transform: translateX(0); }
}
@keyframes wobble-horizontal {
16.65% { -webkit-transform: translateX(8px); transform: translateX(8px); }
33.3% { -webkit-transform: translateX(-6px); transform: translateX(-6px); }
49.95% { -webkit-transform: translateX(4px); transform: translateX(4px); }
66.6% { -webkit-transform: translateX(-2px); transform: translateX(-2px); }
83.25% { -webkit-transform: translateX(1px); transform: translateX(1px); }
100% { -webkit-transform: translateX(0); transform: translateX(0); }
}
.wobble-horizontal {
display: inline-block; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .wobble-horizontal:hover, .wobble-horizontal:focus, .wobble-horizontal:active {
-webkit-animation-name: wobble-horizontal; animation-name: wobble-horizontal; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: 1; animation-iteration-count: 1;
}
/* Wobble To Bottom Right */ @-webkit-keyframes wobble-to-bottom-right {
16.65% { -webkit-transform: translate(8px, 8px); transform: translate(8px, 8px); }
33.3% { -webkit-transform: translate(-6px, -6px); transform: translate(-6px, -6px); }
49.95% { -webkit-transform: translate(4px, 4px); transform: translate(4px, 4px); }
66.6% { -webkit-transform: translate(-2px, -2px); transform: translate(-2px, -2px); }
83.25% { -webkit-transform: translate(1px, 1px); transform: translate(1px, 1px); }
100% { -webkit-transform: translate(0, 0); transform: translate(0, 0); }
}
@keyframes wobble-to-bottom-right {
16.65% { -webkit-transform: translate(8px, 8px); transform: translate(8px, 8px); }
33.3% { -webkit-transform: translate(-6px, -6px); transform: translate(-6px, -6px); }
49.95% { -webkit-transform: translate(4px, 4px); transform: translate(4px, 4px); }
66.6% { -webkit-transform: translate(-2px, -2px); transform: translate(-2px, -2px); }
83.25% { -webkit-transform: translate(1px, 1px); transform: translate(1px, 1px); }
100% { -webkit-transform: translate(0, 0); transform: translate(0, 0); }
}
.wobble-to-bottom-right {
display: inline-block; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .wobble-to-bottom-right:hover, .wobble-to-bottom-right:focus, .wobble-to-bottom-right:active {
-webkit-animation-name: wobble-to-bottom-right; animation-name: wobble-to-bottom-right; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: 1; animation-iteration-count: 1;
}
/* Wobble To Top Right */ @-webkit-keyframes wobble-to-top-right {
16.65% { -webkit-transform: translate(8px, -8px); transform: translate(8px, -8px); }
33.3% { -webkit-transform: translate(-6px, 6px); transform: translate(-6px, 6px); }
49.95% { -webkit-transform: translate(4px, -4px); transform: translate(4px, -4px); }
66.6% { -webkit-transform: translate(-2px, 2px); transform: translate(-2px, 2px); }
83.25% { -webkit-transform: translate(1px, -1px); transform: translate(1px, -1px); }
100% { -webkit-transform: translate(0, 0); transform: translate(0, 0); }
}
@keyframes wobble-to-top-right {
16.65% { -webkit-transform: translate(8px, -8px); transform: translate(8px, -8px); }
33.3% { -webkit-transform: translate(-6px, 6px); transform: translate(-6px, 6px); }
49.95% { -webkit-transform: translate(4px, -4px); transform: translate(4px, -4px); }
66.6% { -webkit-transform: translate(-2px, 2px); transform: translate(-2px, 2px); }
83.25% { -webkit-transform: translate(1px, -1px); transform: translate(1px, -1px); }
100% { -webkit-transform: translate(0, 0); transform: translate(0, 0); }
}
.wobble-to-top-right {
display: inline-block; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .wobble-to-top-right:hover, .wobble-to-top-right:focus, .wobble-to-top-right:active {
-webkit-animation-name: wobble-to-top-right; animation-name: wobble-to-top-right; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: 1; animation-iteration-count: 1;
}
/* Wobble Top */ @-webkit-keyframes wobble-top {
16.65% { -webkit-transform: skew(-12deg); transform: skew(-12deg); }
33.3% { -webkit-transform: skew(10deg); transform: skew(10deg); }
49.95% { -webkit-transform: skew(-6deg); transform: skew(-6deg); }
66.6% { -webkit-transform: skew(4deg); transform: skew(4deg); }
83.25% { -webkit-transform: skew(-2deg); transform: skew(-2deg); }
100% { -webkit-transform: skew(0); transform: skew(0); }
}
@keyframes wobble-top {
16.65% { -webkit-transform: skew(-12deg); transform: skew(-12deg); }
33.3% { -webkit-transform: skew(10deg); transform: skew(10deg); }
49.95% { -webkit-transform: skew(-6deg); transform: skew(-6deg); }
66.6% { -webkit-transform: skew(4deg); transform: skew(4deg); }
83.25% { -webkit-transform: skew(-2deg); transform: skew(-2deg); }
100% { -webkit-transform: skew(0); transform: skew(0); }
}
.wobble-top {
display: inline-block; -webkit-transform-origin: 0 100%; transform-origin: 0 100%; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .wobble-top:hover, .wobble-top:focus, .wobble-top:active {
-webkit-animation-name: wobble-top; animation-name: wobble-top; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: 1; animation-iteration-count: 1;
}
/* Wobble Bottom */ @-webkit-keyframes wobble-bottom {
16.65% { -webkit-transform: skew(-12deg); transform: skew(-12deg); }
33.3% { -webkit-transform: skew(10deg); transform: skew(10deg); }
49.95% { -webkit-transform: skew(-6deg); transform: skew(-6deg); }
66.6% { -webkit-transform: skew(4deg); transform: skew(4deg); }
83.25% { -webkit-transform: skew(-2deg); transform: skew(-2deg); }
100% { -webkit-transform: skew(0); transform: skew(0); }
}
@keyframes wobble-bottom {
16.65% { -webkit-transform: skew(-12deg); transform: skew(-12deg); }
33.3% { -webkit-transform: skew(10deg); transform: skew(10deg); }
49.95% { -webkit-transform: skew(-6deg); transform: skew(-6deg); }
66.6% { -webkit-transform: skew(4deg); transform: skew(4deg); }
83.25% { -webkit-transform: skew(-2deg); transform: skew(-2deg); }
100% { -webkit-transform: skew(0); transform: skew(0); }
}
.wobble-bottom {
display: inline-block; -webkit-transform-origin: 100% 0; transform-origin: 100% 0; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .wobble-bottom:hover, .wobble-bottom:focus, .wobble-bottom:active {
-webkit-animation-name: wobble-bottom; animation-name: wobble-bottom; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: 1; animation-iteration-count: 1;
}
/* Wobble Skew */ @-webkit-keyframes wobble-skew {
16.65% { -webkit-transform: skew(-12deg); transform: skew(-12deg); }
33.3% { -webkit-transform: skew(10deg); transform: skew(10deg); }
49.95% { -webkit-transform: skew(-6deg); transform: skew(-6deg); }
66.6% { -webkit-transform: skew(4deg); transform: skew(4deg); }
83.25% { -webkit-transform: skew(-2deg); transform: skew(-2deg); }
100% { -webkit-transform: skew(0); transform: skew(0); }
}
@keyframes wobble-skew {
16.65% { -webkit-transform: skew(-12deg); transform: skew(-12deg); }
33.3% { -webkit-transform: skew(10deg); transform: skew(10deg); }
49.95% { -webkit-transform: skew(-6deg); transform: skew(-6deg); }
66.6% { -webkit-transform: skew(4deg); transform: skew(4deg); }
83.25% { -webkit-transform: skew(-2deg); transform: skew(-2deg); }
100% { -webkit-transform: skew(0); transform: skew(0); }
}
.wobble-skew {
display: inline-block; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .wobble-skew:hover, .wobble-skew:focus, .wobble-skew:active {
-webkit-animation-name: wobble-skew; animation-name: wobble-skew; -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-iteration-count: 1; animation-iteration-count: 1;
}
/* Buzz */ @-webkit-keyframes buzz {
50% { -webkit-transform: translateX(3px) rotate(2deg); transform: translateX(3px) rotate(2deg); }
100% { -webkit-transform: translateX(-3px) rotate(-2deg); transform: translateX(-3px) rotate(-2deg); }
}
@keyframes buzz {
50% { -webkit-transform: translateX(3px) rotate(2deg); transform: translateX(3px) rotate(2deg); }
100% { -webkit-transform: translateX(-3px) rotate(-2deg); transform: translateX(-3px) rotate(-2deg); }
}
.buzz {
display: inline-block; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .buzz:hover, .buzz:focus, .buzz:active {
-webkit-animation-name: buzz; animation-name: buzz; -webkit-animation-duration: 0.15s; animation-duration: 0.15s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite;
}
/* Buzz Out */ @-webkit-keyframes buzz-out {
10% { -webkit-transform: translateX(3px) rotate(2deg); transform: translateX(3px) rotate(2deg); }
20% { -webkit-transform: translateX(-3px) rotate(-2deg); transform: translateX(-3px) rotate(-2deg); }
30% { -webkit-transform: translateX(3px) rotate(2deg); transform: translateX(3px) rotate(2deg); }
40% { -webkit-transform: translateX(-3px) rotate(-2deg); transform: translateX(-3px) rotate(-2deg); }
50% { -webkit-transform: translateX(2px) rotate(1deg); transform: translateX(2px) rotate(1deg); }
60% { -webkit-transform: translateX(-2px) rotate(-1deg); transform: translateX(-2px) rotate(-1deg); }
70% { -webkit-transform: translateX(2px) rotate(1deg); transform: translateX(2px) rotate(1deg); }
80% { -webkit-transform: translateX(-2px) rotate(-1deg); transform: translateX(-2px) rotate(-1deg); }
90% { -webkit-transform: translateX(1px) rotate(0); transform: translateX(1px) rotate(0); }
100% { -webkit-transform: translateX(-1px) rotate(0); transform: translateX(-1px) rotate(0); }
}
@keyframes buzz-out {
10% { -webkit-transform: translateX(3px) rotate(2deg); transform: translateX(3px) rotate(2deg); }
20% { -webkit-transform: translateX(-3px) rotate(-2deg); transform: translateX(-3px) rotate(-2deg); }
30% { -webkit-transform: translateX(3px) rotate(2deg); transform: translateX(3px) rotate(2deg); }
40% { -webkit-transform: translateX(-3px) rotate(-2deg); transform: translateX(-3px) rotate(-2deg); }
50% { -webkit-transform: translateX(2px) rotate(1deg); transform: translateX(2px) rotate(1deg); }
60% { -webkit-transform: translateX(-2px) rotate(-1deg); transform: translateX(-2px) rotate(-1deg); }
70% { -webkit-transform: translateX(2px) rotate(1deg); transform: translateX(2px) rotate(1deg); }
80% { -webkit-transform: translateX(-2px) rotate(-1deg); transform: translateX(-2px) rotate(-1deg); }
90% { -webkit-transform: translateX(1px) rotate(0); transform: translateX(1px) rotate(0); }
100% { -webkit-transform: translateX(-1px) rotate(0); transform: translateX(-1px) rotate(0); }
}
.buzz-out {
display: inline-block; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .buzz-out:hover, .buzz-out:focus, .buzz-out:active {
-webkit-animation-name: buzz-out; animation-name: buzz-out; -webkit-animation-duration: 0.75s; animation-duration: 0.75s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: 1; animation-iteration-count: 1;
}
/* BORDER TRANSITIONS */ /* Border Fade */ .border-fade {
display: inline-block; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: box-shadow; transition-property: box-shadow; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: inset 0 0 0 4px #e1e1e1, 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */
} .border-fade:hover, .border-fade:focus, .border-fade:active {
box-shadow: inset 0 0 0 4px #666666, 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */
}
/* Hollow */ .hollow {
display: inline-block; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: background; transition-property: background; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: inset 0 0 0 4px #e1e1e1, 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */
} .hollow:hover, .hollow:focus, .hollow:active {
background: none;
}
/* Trim */ .trim {
display: inline-block; position: relative; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .trim:before {
content: ; position: absolute; border: white solid 4px; top: 4px; left: 4px; right: 4px; bottom: 4px; opacity: 0; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: opacity; transition-property: opacity;
} .trim:hover:before, .trim:focus:before, .trim:active:before {
opacity: 1;
}
/* Outline Outward */ .outline-outward {
display: inline-block; position: relative; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .outline-outward:before {
content: ; position: absolute; border: #e1e1e1 solid 4px; top: 0; right: 0; bottom: 0; left: 0; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: top, right, bottom, left; transition-property: top, right, bottom, left;
} .outline-outward:hover:before, .outline-outward:focus:before, .outline-outward:active:before {
top: -8px; right: -8px; bottom: -8px; left: -8px;
}
/* Outline Inward */ .outline-inward {
display: inline-block; position: relative; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .outline-inward:before {
pointer-events: none; content: ; position: absolute; border: #e1e1e1 solid 4px; top: -16px; right: -16px; bottom: -16px; left: -16px; opacity: 0; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: top, right, bottom, left; transition-property: top, right, bottom, left;
} .outline-inward:hover:before, .outline-inward:focus:before, .outline-inward:active:before {
top: -8px; right: -8px; bottom: -8px; left: -8px; opacity: 1;
}
/* Round Corners */ .round-corners {
display: inline-block; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: border-radius; transition-property: border-radius; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .round-corners:hover, .round-corners:focus, .round-corners:active {
border-radius: 1em;
}
/* SHADOW/GLOW TRANSITIONS */ /* Glow */ .glow {
display: inline-block; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: box-shadow; transition-property: box-shadow; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .glow:hover, .glow:focus, .glow:active {
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
}
/* Box Shadow Outset */ .box-shadow-outset {
display: inline-block; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: box-shadow; transition-property: box-shadow; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .box-shadow-outset:hover, .box-shadow-outset:focus, .box-shadow-outset:active {
box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.6);
}
/* Box Shadow Inset */ .box-shadow-inset {
display: inline-block; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: box-shadow; transition-property: box-shadow; box-shadow: inset 0 0 0 rgba(0, 0, 0, 0.6), 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */ -webkit-transform: translateZ(0); transform: translateZ(0);
} .box-shadow-inset:hover, .box-shadow-inset:focus, .box-shadow-inset:active {
box-shadow: inset 2px 2px 2px rgba(0, 0, 0, 0.6), 0 0 1px rgba(0, 0, 0, 0); /* Hack to improve aliasing on mobile/tablet devices */
}
/* Float Shadow */ .float-shadow {
display: inline-block; position: relative; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .float-shadow:before {
pointer-events: none; position: absolute; z-index: -1; content: ; top: 100%; left: 5%; height: 10px; width: 90%; opacity: 0; background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 80%); /* W3C */ -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform, opacity; transition-property: transform, opacity;
} .float-shadow:hover, .float-shadow:focus, .float-shadow:active {
-webkit-transform: translateY(-5px); transform: translateY(-5px); /* move the element up by 5px */
} .float-shadow:hover:before, .float-shadow:focus:before, .float-shadow:active:before {
opacity: 1; -webkit-transform: translateY(5px); transform: translateY(5px); /* move the element down by 5px (it will stay in place because it's attached to the element that also moves up 5px) */
}
/* Hover Shadow */ @-webkit-keyframes hover {
50% { -webkit-transform: translateY(-3px); transform: translateY(-3px); }
100% { -webkit-transform: translateY(-6px); transform: translateY(-6px); }
}
@keyframes hover {
50% { -webkit-transform: translateY(-3px); transform: translateY(-3px); }
100% { -webkit-transform: translateY(-6px); transform: translateY(-6px); }
}
@-webkit-keyframes hover-shadow {
0% { -webkit-transform: translateY(6px); transform: translateY(6px); opacity: .4; }
50% { -webkit-transform: translateY(3px); transform: translateY(3px); opacity: 1; }
100% { -webkit-transform: translateY(6px); transform: translateY(6px); opacity: .4; }
}
@keyframes hover-shadow {
0% { -webkit-transform: translateY(6px); transform: translateY(6px); opacity: .4; }
50% { -webkit-transform: translateY(3px); transform: translateY(3px); opacity: 1; }
100% { -webkit-transform: translateY(6px); transform: translateY(6px); opacity: .4; }
}
.hover-shadow {
display: inline-block; position: relative; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .hover-shadow:before {
pointer-events: none; position: absolute; z-index: -1; content: ; top: 100%; left: 5%; height: 10px; width: 90%; opacity: 0; background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0) 80%); /* W3C */ -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform, opacity; transition-property: transform, opacity;
} .hover-shadow:hover, .hover-shadow:focus, .hover-shadow:active {
-webkit-transform: translateY(-6px); transform: translateY(-6px); -webkit-animation-name: hover; animation-name: hover; -webkit-animation-duration: 1.5s; animation-duration: 1.5s; -webkit-animation-delay: 0.3s; animation-delay: 0.3s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-direction: alternate; animation-direction: alternate;
} .hover-shadow:hover:before, .hover-shadow:focus:before, .hover-shadow:active:before {
opacity: .4; -webkit-transform: translateY(6px); transform: translateY(6px); -webkit-animation-name: hover-shadow; animation-name: hover-shadow; -webkit-animation-duration: 1.5s; animation-duration: 1.5s; -webkit-animation-delay: 0.3s; animation-delay: 0.3s; -webkit-animation-timing-function: linear; animation-timing-function: linear; -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; -webkit-animation-direction: alternate; animation-direction: alternate;
}
/* Shadow Radial */ .shadow-radial {
display: inline-block; position: relative; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .shadow-radial:before, .shadow-radial:after {
pointer-events: none; position: absolute; content: ; left: 0; width: 100%; box-sizing: border-box; background-repeat: no-repeat; height: 5px; opacity: 0; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: opacity; transition-property: opacity;
} .shadow-radial:before {
bottom: 100%; background: radial-gradient(ellipse at 50% 150%, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 80%);
} .shadow-radial:after {
top: 100%; background: radial-gradient(ellipse at 50% -50%, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 80%);
} .shadow-radial:hover:before, .shadow-radial:focus:before, .shadow-radial:active:before, .shadow-radial:hover:after, .shadow-radial:focus:after, .shadow-radial:active:after {
opacity: 1;
}
/* SPEECH BUBBLES */ /* Bubble Top */ .bubble-top {
display: inline-block; position: relative; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .bubble-top:before {
pointer-events: none; position: absolute; z-index: -1; content: ; border-style: solid; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: top; transition-property: top; left: calc(50% - 10px); top: 0; border-width: 0 10px 10px 10px; border-color: transparent transparent #e1e1e1 transparent;
} .bubble-top:hover:before, .bubble-top:focus:before, .bubble-top:active:before {
top: -10px;
}
/* Bubble Right */ .bubble-right {
display: inline-block; position: relative; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .bubble-right:before {
pointer-events: none; position: absolute; z-index: -1; content: ; border-style: solid; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: right; transition-property: right; top: calc(50% - 10px); right: 0; border-width: 10px 0 10px 10px; border-color: transparent transparent transparent #e1e1e1;
} .bubble-right:hover:before, .bubble-right:focus:before, .bubble-right:active:before {
right: -10px;
}
/* Bubble Bottom */ .bubble-bottom {
display: inline-block; position: relative; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .bubble-bottom:before {
pointer-events: none; position: absolute; z-index: -1; content: ; border-style: solid; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: bottom; transition-property: bottom; left: calc(50% - 10px); bottom: 0; border-width: 10px 10px 0 10px; border-color: #e1e1e1 transparent transparent transparent;
} .bubble-bottom:hover:before, .bubble-bottom:focus:before, .bubble-bottom:active:before {
bottom: -10px;
}
/* Bubble Left */ .bubble-left {
display: inline-block; position: relative; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .bubble-left:before {
pointer-events: none; position: absolute; z-index: -1; content: ; border-style: solid; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: left; transition-property: left; top: calc(50% - 10px); left: 0; border-width: 10px 10px 10px 0; border-color: transparent #e1e1e1 transparent transparent;
} .bubble-left:hover:before, .bubble-left:focus:before, .bubble-left:active:before {
left: -10px;
}
/* Bubble Float Top */ .bubble-float-top {
display: inline-block; position: relative; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .bubble-float-top:before {
position: absolute; z-index: -1; content: ; left: calc(50% - 10px); top: 0; border-style: solid; border-width: 0 10px 10px 10px; border-color: transparent transparent #e1e1e1 transparent; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: top; transition-property: top;
} .bubble-float-top:hover, .bubble-float-top:focus, .bubble-float-top:active {
-webkit-transform: translateY(5px) translateZ(0); transform: translateY(5px) translateZ(0);
} .bubble-float-top:hover:before, .bubble-float-top:focus:before, .bubble-float-top:active:before {
top: -10px;
}
/* Bubble Float Right */ .bubble-float-right {
display: inline-block; position: relative; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .bubble-float-right:before {
position: absolute; z-index: -1; top: calc(50% - 10px); right: 0; content: ; border-style: solid; border-width: 10px 0 10px 10px; border-color: transparent transparent transparent #e1e1e1; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: right; transition-property: right;
} .bubble-float-right:hover, .bubble-float-right:focus, .bubble-float-right:active {
-webkit-transform: translateX(-5px); transform: translateX(-5px);
} .bubble-float-right:hover:before, .bubble-float-right:focus:before, .bubble-float-right:active:before {
right: -10px;
}
/* Bubble Float Bottom */ .bubble-float-bottom {
display: inline-block; position: relative; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .bubble-float-bottom:before {
position: absolute; z-index: -1; content: ; left: calc(50% - 10px); bottom: 0; border-style: solid; border-width: 10px 10px 0 10px; border-color: #e1e1e1 transparent transparent transparent; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: bottom; transition-property: bottom;
} .bubble-float-bottom:hover, .bubble-float-bottom:focus, .bubble-float-bottom:active {
-webkit-transform: translateY(-5px) translateZ(0); transform: translateY(-5px) translateZ(0);
} .bubble-float-bottom:hover:before, .bubble-float-bottom:focus:before, .bubble-float-bottom:active:before {
bottom: -10px;
}
/* Bubble Float Left */ .bubble-float-left {
display: inline-block; position: relative; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: transform; transition-property: transform; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .bubble-float-left:before {
position: absolute; z-index: -1; content: ; top: calc(50% - 10px); left: 0; border-style: solid; border-width: 10px 10px 10px 0; border-color: transparent #e1e1e1 transparent transparent; -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: left; transition-property: left;
} .bubble-float-left:hover, .bubble-float-left:focus, .bubble-float-left:active {
-webkit-transform: translateX(5px); transform: translateX(5px);
} .bubble-float-left:hover:before, .bubble-float-left:focus:before, .bubble-float-left:active:before {
left: -10px;
}
/* CURLS */ /* Curl Top Left */ .curl-top-left {
display: inline-block; position: relative; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .curl-top-left:before {
pointer-events: none; position: absolute; content: ; height: 0; width: 0; top: 0; left: 0; background: white; /* IE9 */ background: linear-gradient(135deg, white 45%, #aaaaaa 50%, #cccccc 56%, white 80%); filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#ffffff', endColorstr='#000000'); /*For IE7-8-9*/ z-index: 1000; box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.4); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: width, height; transition-property: width, height;
} .curl-top-left:hover:before, .curl-top-left:focus:before, .curl-top-left:active:before {
width: 25px; height: 25px;
}
/* Curl Top Right */ .curl-top-right {
display: inline-block; position: relative; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .curl-top-right:before {
pointer-events: none; position: absolute; content: ; height: 0; width: 0; top: 0; right: 0; background: white; /* IE9 */ background: linear-gradient(225deg, white 45%, #aaaaaa 50%, #cccccc 56%, white 80%); box-shadow: -1px 1px 1px rgba(0, 0, 0, 0.4); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: width, height; transition-property: width, height;
} .curl-top-right:hover:before, .curl-top-right:focus:before, .curl-top-right:active:before {
width: 25px; height: 25px;
}
/* Curl Bottom Right */ .curl-bottom-right {
display: inline-block; position: relative; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .curl-bottom-right:before {
pointer-events: none; position: absolute; content: ; height: 0; width: 0; bottom: 0; right: 0; background: white; /* IE9 */ background: linear-gradient(315deg, white 45%, #aaaaaa 50%, #cccccc 56%, white 80%); box-shadow: -1px -1px 1px rgba(0, 0, 0, 0.4); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: width, height; transition-property: width, height;
} .curl-bottom-right:hover:before, .curl-bottom-right:focus:before, .curl-bottom-right:active:before {
width: 25px; height: 25px;
}
/* Curl Bottom Left */ .curl-bottom-left {
display: inline-block; position: relative; -webkit-transform: translateZ(0); transform: translateZ(0); box-shadow: 0 0 1px rgba(0, 0, 0, 0);
} .curl-bottom-left:before {
pointer-events: none; position: absolute; content: ; height: 0; width: 0; bottom: 0; left: 0; background: white; /* IE9 */ background: linear-gradient(45deg, white 45%, #aaaaaa 50%, #cccccc 56%, white 80%); box-shadow: 1px -1px 1px rgba(0, 0, 0, 0.4); -webkit-transition-duration: 0.3s; transition-duration: 0.3s; -webkit-transition-property: width, height; transition-property: width, height;
} .curl-bottom-left:hover:before, .curl-bottom-left:focus:before, .curl-bottom-left:active:before {
width: 25px; height: 25px;
}