.flip-clock { @apply text-center; perspective: 600px; } .flip-clock__piece { @apply relative inline-flex justify-center mx-1; } .flip-clock__slot { @apply absolute block bottom-0 z-50; transform: translateY(55%); text-shadow: 0 0 1.5rem theme('colors.black'); } .flip-card { @apply block relative font-alt; padding-bottom: 0.85em; /* Additional outline around clock */ &:after { @apply absolute; content: ""; position: absolute; width: 90%; height: 108%; top: -4%; left: 5%; z-index: -1; } } .flip-card__top, .flip-card__bottom, .flip-card__back-bottom, .flip-card__back:before, .flip-card__back:after, .flip-card__top-4digits, .flip-card__bottom-4digits, .flip-card__back-bottom-4digits, .flip-card__back-4digits:before, .flip-card__back-4digits:after { @apply block text-white bg-black; height: 0.85em; padding: 0.35em 0.1em 0.4em; backface-visibility: hidden; -webkit-backface-visibility: hidden; transform-style: preserve-3d; } .flip-card:after, .flip-card__top, .flip-card__bottom, .flip-card__back:before, .flip-card__back:after, .flip-card__back-bottom, .flip-card__bottom-4digits, .flip-card__back-bottom-4digits { @apply border border-grey-300; } .flip-card__top, .flip-card__back:before, .flip-card__back:after { @apply border-b-0; } .flip-card__top, .flip-card__bottom, .flip-card__back-bottom, .flip-card__back:before, .flip-card__back:after { width: 1.9em; } .flip-card__top-4digits, .flip-card__bottom-4digits, .flip-card__back-bottom-4digits, .flip-card__back-4digits:before, .flip-card__back-4digits:after { width: 2.4em; } .flip-card__bottom, .flip-card__back-bottom, .flip-card__bottom-4digits, .flip-card__back-bottom-4digits { @apply absolute left-0 pointer-events-none; left: 0; pointer-events: none; overflow: hidden; z-index: 2; } .flip-card__back-bottom, .flip-card__back-bottom-4digits { z-index: 1; } .flip-card__bottom:after, .flip-card__back-bottom:after, .flip-card__bottom-4digits:after, .flip-card__back-bottom-4digits:after { @apply block; margin-top: -0.85em; } .flip-card__back:before, .flip-card__bottom:after, .flip-card__back-bottom:after, .flip-card__back-4digits:before, .flip-card__bottom-4digits:after, .flip-card__back-bottom-4digits:after { content: attr(data-value); } .flip-card__back, .flip-card__back-4digits { @apply absolute top-0 h-full left-0 pointer-events-none; } .flip-card__back:before, .flip-card__back-4digits:before { @apply relative overflow-hidden; z-index: -1; } .flip .flip-card__back:before, .flip .flip-card__back-4digits:before { z-index: 1; animation: flipTop 0.3s cubic-bezier(0.37, 0.01, 0.94, 0.35); animation-fill-mode: both; transform-origin: center bottom; } .flip .flip-card__bottom, .flip .flip-card__bottom-4digits { transform-origin: center top; animation-fill-mode: both; animation: flipBottom 0.6s cubic-bezier(0.15, 0.45, 0.28, 1); } @keyframes flipTop { 0% { transform: rotateX(0deg); z-index: 2; } 0%, 99% { opacity: 1; } 100% { transform: rotateX(-90deg); opacity: 0; } } @keyframes flipBottom { 0%, 50% { z-index: -1; transform: rotateX(90deg); opacity: 0; } 51% { opacity: 1; } 100% { opacity: 1; transform: rotateX(0deg); z-index: 5; } }