gym-website / animations.css
ChineseAI21's picture
Upload animations.css with huggingface_hub
4316bbe verified
Raw
History Blame Contribute Delete
10.5 kB
```css
/* ========================================
GYM FITNESS - COMPLETE ANIMATIONS LIBRARY
Dark Theme with Premium Accents
======================================== */
/* CSS Custom Properties for Dark Theme */
:root {
/* Dark Theme Colors */
--primary-dark: #0a0a0a;
--secondary-dark: #1a1a1a;
--accent-dark: #2a2a2a;
/* Premium Accents */
--gold: #ffd700;
--electric-blue: #00bfff;
--neon-green: #39ff14;
--platinum: #e5e4e2;
--crimson: #dc143c;
/* Animation Timings */
--timing-fast: 0.2s;
--timing-normal: 0.5s;
--timing-slow: 1s;
--timing-extra-slow: 2s;
/* Easing Functions */
--ease-smooth: cubic-bezier(0.25, 0.8, 0.25, 1);
--ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
--ease-elastic: cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
/* ========================================
FADE ANIMATIONS
======================================== */
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes fadeInDown {
from {
opacity: 0;
transform: translateY(-30px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes fadeInLeft {
from {
opacity: 0;
transform: translateX(-30px);
}
to {
opacity: 1;
transform: translateX(0);
}
}
@keyframes fadeInRight {
from {
opacity: 0;
transform: translateX(30px);
}
to {
opacity: 1;
transform: translateX(0);
}
}
/* ========================================
SCALE & BOUNCE ANIMATIONS
======================================== */
@keyframes scaleIn {
from {
opacity: 0;
transform: scale(0);
}
to {
opacity: 1;
transform: scale(1);
}
}
@keyframes scaleOut {
from {
opacity: 1;
transform: scale(1);
}
to {
opacity: 0;
transform: scale(0);
}
}
@keyframes pulse {
0%, 100% {
transform: scale(1);
}
50% {
transform: scale(1.05);
}
}
@keyframes heartbeat {
0%, 50%, 100% {
transform: scale(1);
}
5%, 15% {
transform: scale(1.2);
}
25%, 35% {
transform: scale(1.1);
}
}
@keyframes bounce {
0%, 20%, 53%, 80%, 100% {
animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
transform: translateY(0);
}
40%, 43% {
animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
transform: translateY(-30px);
}
70% {
animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
transform: translateY(-15px);
}
90% {
transform: translateY(-4px);
}
}
/* ========================================
ROTATION & MOVEMENT ANIMATIONS
======================================== */
@keyframes spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
@keyframes wobble {
0% {
transform: translateX(0%);
}
15% {
transform: translateX(-25px) rotate(-5deg);
}
30% {
transform: translateX(20px) rotate(3deg);
}
45% {
transform: translateX(-15px) rotate(-3deg);
}
60% {
transform: translateX(10px) rotate(2deg);
}
75% {
transform: translateX(-5px) rotate(-1deg);
}
100% {
transform: translateX(0%);
}
}
@keyframes shake {
0%, 100% {
transform: translateX(0);
}
10%, 30%, 50%, 70%, 90% {
transform: translateX(-10px);
}
20%, 40%, 60%, 80% {
transform: translateX(10px);
}
}
@keyframes rubberBand {
from {
transform: scale3d(1, 1, 1);
}
30% {
transform: scale3d(1.25, 0.75, 1);
}
40% {
transform: scale3d(0.75, 1.25, 1);
}
50% {
transform: scale3d(1.15, 0.85, 1);
}
65% {
transform: scale3d(0.95, 1.05, 1);
}
75% {
transform: scale3d(1.05, 0.95, 1);
}
to {
transform: scale3d(1, 1, 1);
}
}
/* ========================================
SLIDE ANIMATIONS
======================================== */
@keyframes slideInLeft {
from {
transform: translateX(-100%);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
@keyframes slideInRight {
from {
transform: translateX(100%);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
@keyframes slideInUp {
from {
transform: translateY(100%);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
/* ========================================
PREMIUM EFFECT ANIMATIONS
======================================== */
@keyframes glow {
0%, 100% {
box-shadow:
0 0 5px var(--gold),
0 0 10px var(--gold),
0 0 15px var(--gold),
0 0 20px var(--gold);
}
50% {
box-shadow:
0 0 10px var(--gold),
0 0 20px var(--gold),
0 0 30px var(--gold),
0 0 40px var(--gold);
}
}
@keyframes gradientShift {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}
@keyframes shimmer {
0% {
background-position: -200px 0;
}
100% {
background-position: calc(200px + 100%) 0;
}
}
@keyframes float {
0%, 100% {
transform: translateY(0px);
}
50% {
transform: translateY(-20px);
}
}
@keyframes typewriter {
from {
width: 0;
}
to {
width: 100%;
}
}
@keyframes cursorBlink {
0%, 50% {
opacity: 1;
}
51%, 100% {
opacity: 0;
}
}
@keyframes neonFlicker {
0%, 18%, 22%, 25%, 53%, 57%, 100% {
text-shadow:
0 0 4px #fff,
0 0 11px #fff,
0 0 19px #fff,
0 0 40px var(--electric-blue),
0 0 80px var(--electric-blue),
0 0 90px var(--electric-blue),
0 0 100px var(--electric-blue),
0 0 150px var(--electric-blue);
}
20%, 24%, 55% {
text-shadow: none;
}
}
@keyframes morphBlob {
0%, 100% {
border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
}
50% {
border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%;
}
}
@keyframes particleFloat {
0% {
opacity: 0;
transform: translateY(100vh) scale(0);
}
10% {
opacity: 1;
}
90% {
opacity: 1;
}
100% {
opacity: 0;
transform: translateY(-100vh) scale(1);
}
}
@keyframes progressFill {
from {
width: 0%;
}
to {
width: 100%;
}
}
@keyframes counterUp {
from {
transform: translateY(20px);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
/* ========================================
UTILITY CLASSES
======================================== */
/* Basic Animation Classes */
.animate-fadeIn { animation: fadeIn var(--timing-normal) var(--ease-smooth); }
.animate-fadeInUp { animation: fadeInUp var(--timing-normal) var(--ease-smooth); }
.animate-fadeInDown { animation: fadeInDown var(--timing-normal) var(--ease-smooth); }
.animate-fadeInLeft { animation: fadeInLeft var(--timing-normal) var(--ease-smooth); }
.animate-fadeInRight { animation: fadeInRight var(--timing-normal) var(--ease-smooth); }
.animate-scaleIn { animation: scaleIn var(--timing-normal) var(--ease-bounce); }
.animate-scaleOut { animation: scaleOut var(--timing-normal) var(--ease-smooth); }
.animate-pulse { animation: pulse var(--timing-extra-slow) ease-in-out infinite; }
.animate-heartbeat { animation: heartbeat var(--timing-slow) ease-in-out infinite; }
.animate-bounce { animation: bounce var(--timing-slow) infinite; }
.animate-spin { animation: spin var(--timing-slow) linear infinite; }
.animate-wobble { animation: wobble var(--timing-slow) ease-in-out; }
.animate-shake { animation: shake 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97); }
.animate-rubberBand { animation: rubberBand var(--timing-slow) var(--ease-elastic); }
.animate-slideInLeft { animation: slideInLeft var(--timing-normal) var(--ease-smooth); }
.animate-slideInRight { animation: slideInRight var(--timing-normal) var(--ease-smooth); }
.animate-slideInUp { animation: slideInUp var(--timing-normal) var(--ease-smooth); }
.animate-glow { animation: glow var(--timing-extra-slow) ease-in-out infinite alternate; }
.animate-shimmer { animation: shimmer 1.6s linear infinite; }
.animate-float { animation: float 3s ease-in-out infinite; }
.animate-neonFlicker { animation: neonFlicker 1.5s infinite alternate; }
.animate-morphBlob { animation: morphBlob 3s ease-in-out infinite; }
.animate-particleFloat { animation: particleFloat 8s linear infinite; }
.animate-progressFill { animation: progressFill 2s var(--ease-smooth) forwards; }
/* ========================================
DELAY UTILITIES
======================================== */
.delay-100 { animation-delay: 0.1s; }
.delay-200 { animation-delay: 0.2s; }
.delay-300 { animation-delay: 0.3s; }
.delay-400 { animation-delay: 0.4s; }
.delay-500 { animation-delay: 0.5s; }
.delay-600 { animation-delay: 0.6s; }
.delay-700 { animation-delay: 0.7s; }
.delay-800 { animation-delay: 0.8s; }
.delay-900 { animation-delay: 0.9s; }
.delay-1000 { animation-delay: 1s; }
/* ========================================
DURATION UTILITIES
======================================== */
.duration-fast { animation-duration: var(--timing-fast); }
.duration-normal { animation-duration: var(--timing-normal); }
.duration-slow { animation-duration: var(--timing-slow); }
.duration-extra-slow { animation-duration: var(--timing-extra-slow); }
/* ========================================
HOVER ANIMATION CLASSES
======================================== */
.hover-lift {
transition: transform var(--timing-fast) var(--ease-smooth);
}
.hover-lift:hover {
transform: translateY(-8px);
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5);
}
.hover-scale {
transition: transform var(--timing-fast) var(--ease-smooth);
}
.hover-scale:hover {
transform: scale(1.05);
}
.hover-glow {
transition: box-shadow var(--timing-fast) ease-in-out;
}
.hover-glow:hover {
box-shadow:
0 0 10px var(--gold),
0 0 20px var(--gold),
0 0 30px var(--gold);
}
.hover-pulse:hover {
animation: pulse 0.5s ease-in-out;
}
.hover-shake:hover {
animation: shake 0.5s ease-in-out;
}
.hover-wobble:hover {
animation: wobble 0.8s ease-in-out;
}
.hover-neon {
transition: all var(--timing-fast) ease-in-out;
color: var(--platinum);
}
.hover-neon:hover {
color: var(--electric-blue);
text-shadow:
0 0 5px var(--electric-blue),
0 0 10px var(--electric-blue),
0 0 15px var(--electric-blue),
0 0 20px var(--electric-blue);
}
/* ========