AvanzaCast/packages/landing-page/src/styles/techwind-animations.css

258 lines
4.8 KiB
CSS

/* Techwind Migrated Styles - Animations & Helpers */
/* Selection */
::selection {
@apply bg-indigo-600/90 text-white;
}
/* Typography defaults */
p {
@apply leading-relaxed;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
@apply leading-normal;
}
/* Mover animation */
.mover {
animation: mover 1.5s infinite alternate;
}
@keyframes mover {
0% {
transform: translateY(0);
}
100% {
transform: translateY(10px);
}
}
/* Modal flip animation - espejo */
@keyframes modalFlipIn {
0% {
transform: perspective(1000px) rotateY(90deg) scale(0.5);
opacity: 0;
}
50% {
transform: perspective(1000px) rotateY(-10deg) scale(1.05);
opacity: 0.8;
}
100% {
transform: perspective(1000px) rotateY(0deg) scale(1);
opacity: 1;
}
}
@keyframes modalFlipOut {
0% {
transform: perspective(1000px) rotateY(0deg) scale(1);
opacity: 1;
}
100% {
transform: perspective(1000px) rotateY(90deg) scale(0.5);
opacity: 0;
}
}
/* Efecto de brillo tipo espejo */
@keyframes mirrorShine {
0% {
background-position: -200% center;
}
100% {
background-position: 200% center;
}
}
.mirror-shine::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: linear-gradient(
90deg,
transparent 0%,
rgba(255, 255, 255, 0.1) 45%,
rgba(255, 255, 255, 0.3) 50%,
rgba(255, 255, 255, 0.1) 55%,
transparent 100%
);
background-size: 200% 100%;
animation: mirrorShine 1.5s ease-in-out;
pointer-events: none;
border-radius: inherit;
}
/* Smooth scrollbar hide */
.scrollbar-hide {
-ms-overflow-style: none;
scrollbar-width: none;
}
.scrollbar-hide::-webkit-scrollbar {
display: none;
}
/* Carousel smooth scroll */
.carousel-smooth {
scroll-behavior: smooth;
-webkit-overflow-scrolling: touch;
}
/* Background animated circles (hero effects) */
@keyframes animate {
0% {
transform: translateY(0) rotate(0deg);
opacity: 1;
border-radius: 10px;
}
100% {
transform: translateY(-1000px) rotate(720deg);
opacity: 0;
}
}
.background-effect .circles li {
@apply absolute block -bottom-[150px] bg-indigo-600/30;
animation: animate 25s linear infinite;
}
.background-effect .circles li:nth-child(1) {
@apply size-12 start-1/4;
animation-delay: 0s;
}
.background-effect .circles li:nth-child(2) {
@apply size-12 start-[10%];
animation-delay: 2s;
animation-duration: 12s;
}
.background-effect .circles li:nth-child(3) {
@apply size-12 start-[70%];
animation-delay: 4s;
}
.background-effect .circles li:nth-child(4) {
@apply size-12 start-[40%];
animation-delay: 0s;
animation-duration: 18s;
}
.background-effect .circles li:nth-child(5) {
@apply size-12 start-[65%];
animation-delay: 0s;
}
.background-effect .circles li:nth-child(6) {
@apply size-12 start-3/4;
animation-delay: 3s;
}
.background-effect .circles li:nth-child(7) {
@apply size-12 start-[35%];
animation-delay: 7s;
}
.background-effect .circles li:nth-child(8) {
@apply size-12 start-1/2;
animation-delay: 15s;
animation-duration: 45s;
}
.background-effect .circles li:nth-child(9) {
@apply size-12 start-[20%];
animation-delay: 2s;
animation-duration: 35s;
}
.background-effect .circles li:nth-child(10) {
@apply size-12 start-[85%];
animation-delay: 0s;
animation-duration: 11s;
}
/* Kenburn effect for images */
.image-wrap {
animation: 100s ppb_kenburns linear infinite alternate;
}
@keyframes ppb_kenburns {
0% {
transform: scale(1.3) translate(-10%, 10%);
}
25% {
transform: scale(1) translate(0, 0);
}
50% {
transform: scale(1.3) translate(10%, 10%);
}
75% {
transform: scale(1) translate(0, 0);
}
100% {
transform: scale(1.3) translate(-10%, 10%);
}
}
/* Preloader spinner */
@keyframes sk-bounce {
0%, 100% {
transform: scale(0.0);
}
50% {
transform: scale(1.0);
}
}
.spinner .double-bounce1,
.spinner .double-bounce2 {
@apply w-full h-full rounded-full bg-indigo-600/60 absolute top-0 start-0;
animation: sk-bounce 2.0s infinite ease-in-out;
}
.spinner .double-bounce2 {
animation-delay: -1.0s;
}
/* Dark mode toggle switch */
.label .ball {
transition: transform 0.2s linear;
@apply translate-x-0;
}
.checkbox:checked + .label .ball {
@apply translate-x-6;
}
/* Testimonial navigation dots (pagination) */
.tns-nav {
@apply text-center mt-3;
}
.tns-nav button {
@apply rounded-[3px] bg-indigo-600/30 duration-500 border-0 m-1 p-[5px];
}
.tns-nav button.tns-nav-active {
@apply bg-indigo-600 rotate-[45deg];
}
/* Smooth infinite scroll slider */
@keyframes scroll {
0% {
transform: translateX(0);
}
100% {
transform: translateX(calc(-360px * 6));
}
}
.slider .slide-track {
animation: scroll 120s linear infinite;
width: calc(360px * 20);
}