angular-flip-clock
Version:
Port of FlipClock.js to Angular without any dependencies
348 lines (296 loc) • 6.9 kB
CSS
/* Main */
.dy-flip-clock {
font: normal 11px 'Helvetica Neue', Helvetica, sans-serif;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
text-align: center;
position: relative;
width: 100%;
margin: 1em;
}
.dy-flip-clock * {
box-sizing: border-box;
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.dy-flip-clock:before,
.dy-flip-clock:after {
content: ' '; /* 1 */
display: table; /* 2 */
}
.dy-flip-clock:after {
clear: both;
}
/* Skeleton */
.dy-flip-clock-number {
position: relative;
list-style: none;
float: left;
margin: 5px;
width: 60px;
height: 90px;
font-size: 80px;
font-weight: bold;
line-height: 87px;
border-radius: 6px;
background: #000;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.7);
}
.dy-flip-clock-number-digit {
z-index: 1;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
line-height: 87px;
text-decoration: none ;
}
.dy-flip-clock-number-digit:first-child {
z-index: 2;
}
.dy-flip-clock-card {
display: block;
height: 100%;
-webkit-perspective: 200px;
perspective: 200px;
margin: 0 ;
overflow: visible ;
cursor: default ;
}
.dy-flip-clock-card-up,
.dy-flip-clock-card-down {
z-index: 1;
position: absolute;
left: 0;
width: 100%;
height: 50%;
font-size: 80px;
overflow: hidden;
outline: 1px solid transparent;
}
.dy-flip-clock-card-shadow {
position: absolute;
width: 100%;
height: 100%;
z-index: 2;
}
.dy-flip-clock-card-up {
-webkit-transform-origin: 50% 100%;
transform-origin: 50% 100%;
top: 0;
}
.dy-flip-clock-card-up:after {
content: '';
position: absolute;
top: 44px;
left: 0;
z-index: 5;
width: 100%;
height: 3px;
background-color: #000;
background-color: rgba(0, 0, 0, 0.4);
}
.dy-flip-clock-card-down {
-webkit-transform-origin: 50% 0;
transform-origin: 50% 0;
bottom: 0;
border-bottom-left-radius: 6px;
border-bottom-right-radius: 6px;
}
.dy-flip-clock-card-value {
position: absolute;
left: 0;
z-index: 1;
width: 100%;
height: 200%;
color: #ccc;
text-shadow: 0 1px 2px #000;
text-align: center;
background-color: #333;
border-radius: 6px;
font-size: 70px;
}
.dy-flip-clock-card-value-up {
top: 0;
}
.dy-flip-clock-card-value-down {
bottom: 0;
}
/* PLAY */
.dy-flip-clock-number-animated .dy-flip-clock-number-digit-before {
z-index: 3;
}
.dy-flip-clock-number-animated .dy-flip-clock-number-digit-active {
-webkit-animation: dyFlipClockDigitZIndex 0.5s 0.5s linear both;
animation: dyFlipClockDigitZIndex 0.5s 0.5s linear both;
z-index: 5;
}
.dy-flip-clock-divider {
float: left;
display: inline-block;
position: relative;
width: 20px;
height: 100px;
}
.dy-flip-clock-divider-hidden {
width: 0;
}
.dy-flip-clock-label {
position: absolute;
top: -1.5em;
right: -86px;
color: black;
text-shadow: none;
}
.dy-flip-clock-dot {
display: block;
background: #323434;
width: 10px;
height: 10px;
position: absolute;
border-radius: 50%;
box-shadow: 0 0 5px rgba(0, 0, 0, 0.5);
left: 5px;
}
.dy-flip-clock-dot-top {
top: 30px;
}
.dy-flip-clock-dot-bottom {
bottom: 30px;
}
@-webkit-keyframes dyFlipClockDigitZIndex {
0% {
z-index: 2;
}
20% {
z-index: 4;
}
100% {
z-index: 4;
}
}
@keyframes dyFlipClockDigitZIndex {
0% {
z-index: 2;
}
20% {
z-index: 4;
}
100% {
z-index: 4;
}
}
.dy-flip-clock-number-animated .dy-flip-clock-number-digit-active .dy-flip-clock-card-down {
z-index: 2;
-webkit-animation: dyFlipClockTurnDown 0.5s 0.5s linear both;
animation: dyFlipClockTurnDown 0.5s 0.5s linear both;
}
@-webkit-keyframes dyFlipClockTurnDown {
0% {
-webkit-transform: rotateX(90deg);
transform: rotateX(90deg);
}
100% {
-webkit-transform: rotateX(0deg);
transform: rotateX(0deg);
}
}
@keyframes dyFlipClockTurnDown {
0% {
-webkit-transform: rotateX(90deg);
transform: rotateX(90deg);
}
100% {
-webkit-transform: rotateX(0deg);
transform: rotateX(0deg);
}
}
.dy-flip-clock-number-animated .dy-flip-clock-number-digit-before .dy-flip-clock-card-up {
z-index: 2;
-webkit-animation: dyFlipClockTurnUp 0.5s linear both;
animation: dyFlipClockTurnUp 0.5s linear both;
}
@-webkit-keyframes dyFlipClockTurnUp {
0% {
-webkit-transform: rotateX(0deg);
transform: rotateX(0deg);
}
100% {
-webkit-transform: rotateX(-90deg);
transform: rotateX(-90deg);
}
}
@keyframes dyFlipClockTurnUp {
0% {
-webkit-transform: rotateX(0deg);
transform: rotateX(0deg);
}
100% {
-webkit-transform: rotateX(-90deg);
transform: rotateX(-90deg);
}
}
.dy-flip-clock-number-digit-active {
z-index: 3;
}
/* SHADOW */
.dy-flip-clock-number-animated .dy-flip-clock-number-digit-before .dy-flip-clock-card-up .dy-flip-clock-card-shadow {
background: linear, top, rgba(0, 0, 0, 0.1) 0%, black 100%;
background: linear, to bottom, rgba(0, 0, 0, 0.1) 0%, black 100%;
-webkit-animation: dyFlipClockShowShadow 0.5s linear both;
animation: dyFlipClockShowShadow 0.5s linear both;
}
.dy-flip-clock-number-animated .dy-flip-clock-number-digit-active .dy-flip-clock-card-up .dy-flip-clock-card-shadow {
background: linear, top, rgba(0, 0, 0, 0.1) 0%, black 100%;
background: linear, to bottom, rgba(0, 0, 0, 0.1) 0%, black 100%;
-webkit-animation: dyFlipClockHideShadow 0.5s 0.3s linear both;
animation: dyFlipClockHideShadow 0.5s 0.3s linear both;
}
/*DOWN*/
.dy-flip-clock-number-animated .dy-flip-clock-number-digit-before .dy-flip-clock-card-down .dy-flip-clock-card-shadow {
background: linear, top, black 0%, rgba(0, 0, 0, 0.1) 100%;
background: linear, to bottom, black 0%, rgba(0, 0, 0, 0.1) 100%;
-webkit-animation: dyFlipClockShowShadow 0.5s linear both;
animation: dyFlipClockShowShadow 0.5s linear both;
}
.dy-flip-clock-number-animated .dy-flip-clock-number-digit-active .dy-flip-clock-card-down .dy-flip-clock-card-shadow {
background: linear, top, black 0%, rgba(0, 0, 0, 0.1) 100%;
background: linear, to bottom, black 0%, rgba(0, 0, 0, 0.1) 100%;
-webkit-animation: dyFlipClockHideShadow 0.5s 0.2s linear both;
animation: dyFlipClockHideShadow 0.5s 0.2s linear both;
}
@-webkit-keyframes dyFlipClockShowShadow {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@keyframes dyFlipClockShowShadow {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
@-webkit-keyframes dyFlipClockHideShadow {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}
@keyframes dyFlipClockHideShadow {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}