ok
This commit is contained in:
193
css/animations.css
Normal file
193
css/animations.css
Normal file
@@ -0,0 +1,193 @@
|
||||
/* Animation Styles for Homepage Components */
|
||||
|
||||
/* Base animation classes */
|
||||
.animate-fade-in {
|
||||
opacity: 0;
|
||||
transform: translateY(30px);
|
||||
transition: opacity 0.8s ease-out, transform 0.8s ease-out;
|
||||
}
|
||||
|
||||
.animate-fade-in.animate-visible {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
/* Slide in from left */
|
||||
.animate-slide-left {
|
||||
opacity: 0;
|
||||
transform: translateX(-50px);
|
||||
transition: opacity 0.8s ease-out, transform 0.8s ease-out;
|
||||
}
|
||||
|
||||
.animate-slide-left.animate-visible {
|
||||
opacity: 1;
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
/* Slide in from right */
|
||||
.animate-slide-right {
|
||||
opacity: 0;
|
||||
transform: translateX(50px);
|
||||
transition: opacity 0.8s ease-out, transform 0.8s ease-out;
|
||||
}
|
||||
|
||||
.animate-slide-right.animate-visible {
|
||||
opacity: 1;
|
||||
transform: translateX(0);
|
||||
}
|
||||
|
||||
/* Scale up animation */
|
||||
.animate-scale-up {
|
||||
opacity: 0;
|
||||
transform: scale(0.9);
|
||||
transition: opacity 0.8s ease-out, transform 0.8s ease-out;
|
||||
}
|
||||
|
||||
.animate-scale-up.animate-visible {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
/* Staggered animations for multiple elements */
|
||||
.animate-stagger-1 {
|
||||
transition-delay: 0.1s;
|
||||
}
|
||||
|
||||
.animate-stagger-2 {
|
||||
transition-delay: 0.2s;
|
||||
}
|
||||
|
||||
.animate-stagger-3 {
|
||||
transition-delay: 0.3s;
|
||||
}
|
||||
|
||||
.animate-stagger-4 {
|
||||
transition-delay: 0.4s;
|
||||
}
|
||||
|
||||
.animate-stagger-5 {
|
||||
transition-delay: 0.5s;
|
||||
}
|
||||
|
||||
/* Hero section specific animations */
|
||||
.hero-title {
|
||||
opacity: 0;
|
||||
transform: translateY(40px);
|
||||
transition: opacity 1s ease-out, transform 1s ease-out;
|
||||
}
|
||||
|
||||
.hero-title.animate-visible {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.hero-subtitle {
|
||||
opacity: 0;
|
||||
transform: translateY(30px);
|
||||
transition: opacity 1s ease-out 0.3s, transform 1s ease-out 0.3s;
|
||||
}
|
||||
|
||||
.hero-subtitle.animate-visible {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.hero-button {
|
||||
opacity: 0;
|
||||
transform: translateY(20px);
|
||||
transition: opacity 0.8s ease-out 0.6s, transform 0.8s ease-out 0.6s;
|
||||
}
|
||||
|
||||
.hero-button.animate-visible {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
/* Image animations */
|
||||
.animate-image {
|
||||
opacity: 0;
|
||||
transform: scale(1.1);
|
||||
transition: opacity 1s ease-out, transform 1s ease-out;
|
||||
}
|
||||
|
||||
.animate-image.animate-visible {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
/* Text content animations */
|
||||
.animate-text-content h1,
|
||||
.animate-text-content h2,
|
||||
.animate-text-content h3,
|
||||
.animate-text-content h4 {
|
||||
opacity: 0;
|
||||
transform: translateY(20px);
|
||||
transition: opacity 0.8s ease-out, transform 0.8s ease-out;
|
||||
}
|
||||
|
||||
.animate-text-content.animate-visible h1,
|
||||
.animate-text-content.animate-visible h2,
|
||||
.animate-text-content.animate-visible h3,
|
||||
.animate-text-content.animate-visible h4 {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.animate-text-content p {
|
||||
opacity: 0;
|
||||
transform: translateY(15px);
|
||||
transition: opacity 0.8s ease-out 0.2s, transform 0.8s ease-out 0.2s;
|
||||
}
|
||||
|
||||
.animate-text-content.animate-visible p {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
.animate-text-content button,
|
||||
.animate-text-content a[href] {
|
||||
opacity: 0;
|
||||
transform: translateY(10px);
|
||||
transition: opacity 0.8s ease-out 0.4s, transform 0.8s ease-out 0.4s;
|
||||
}
|
||||
|
||||
.animate-text-content.animate-visible button,
|
||||
.animate-text-content.animate-visible a[href] {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
/* Reduced motion for accessibility */
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.animate-fade-in,
|
||||
.animate-slide-left,
|
||||
.animate-slide-right,
|
||||
.animate-scale-up,
|
||||
.hero-title,
|
||||
.hero-subtitle,
|
||||
.hero-button,
|
||||
.animate-image,
|
||||
.animate-text-content h1,
|
||||
.animate-text-content h2,
|
||||
.animate-text-content h3,
|
||||
.animate-text-content h4,
|
||||
.animate-text-content p,
|
||||
.animate-text-content button,
|
||||
.animate-text-content a[href] {
|
||||
transition: none;
|
||||
opacity: 1;
|
||||
transform: none;
|
||||
}
|
||||
}
|
||||
|
||||
/* Loading animation for initial page load */
|
||||
.page-loading .animate-on-load {
|
||||
opacity: 0;
|
||||
transform: translateY(20px);
|
||||
}
|
||||
|
||||
.page-loaded .animate-on-load {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
transition: opacity 0.6s ease-out, transform 0.6s ease-out;
|
||||
}
|
Reference in New Issue
Block a user