Spaces:
Running
Running
| ```css | |
| /* Animation Classes */ | |
| .fade-in { | |
| animation: fadeIn 0.5s ease forwards; | |
| } | |
| @keyframes fadeIn { | |
| from { opacity: 0; } | |
| to { opacity: 1; } | |
| } | |
| .slide-up { | |
| animation: slideUp 0.5s ease forwards; | |
| } | |
| @keyframes slideUp { | |
| from { | |
| opacity: 0; | |
| transform: translateY(20px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| .pulse { | |
| animation: pulse 2s infinite; | |
| } | |
| @keyframes pulse { | |
| 0% { transform: scale(1); } | |
| 50% { transform: scale(1.05); } | |
| 100% { transform: scale(1); } | |
| } | |
| /* Hover Effects */ | |
| .hover-grow { | |
| transition: transform 0.3s ease; | |
| } | |
| .hover-grow:hover { | |
| transform: scale(1.05); | |
| } | |
| .hover-underline { | |
| position: relative; | |
| } | |
| .hover-underline::after { | |
| content: ''; | |
| position: absolute; | |
| bottom: -2px; | |
| left: 0; | |
| width: 0; | |
| height: 2px; | |
| background: currentColor; | |
| transition: width 0.3s ease; | |
| } | |
| .hover-underline:hover::after { | |
| width: 100%; | |
| } | |
| /* Button Effects */ | |
| .btn-effect { | |
| position: relative; | |
| overflow: hidden; | |
| } | |
| .btn-effect::after { | |
| content: ''; | |
| position: absolute; | |
| top: 50%; | |
| left: 50%; | |
| width: 5px; | |
| height: 5px; | |
| background: rgba(255,255,255,0.5); | |
| opacity: 0; | |
| border-radius: 100%; | |
| transform: scale(1, 1) translate(-50%); | |
| transform-origin: 50% 50%; | |
| } | |
| .btn-effect:focus:not(:active)::after { | |
| animation: ripple 1s ease-out; | |
| } | |
| @keyframes ripple { | |
| 0% { | |
| transform: scale(0, 0); | |
| opacity: 0.5; | |
| } | |
| 100% { | |
| transform: scale(20, 20); | |
| opacity: 0; | |
| } | |
| } | |
| /* Loading Animation */ | |
| .loading-spinner { | |
| display: inline-block; | |
| width: 20px; | |
| height: 20px; | |
| border: 3px solid rgba(255,255,255,0.3); | |
| border-radius: 50%; | |
| border-top-color: white; | |
| animation: spin 1s ease-in-out infinite; | |
| } | |
| @keyframes spin { | |
| to { transform: rotate(360deg); } | |
| } | |
| /* Page Transitions */ | |
| .page-enter { | |
| opacity: 0; | |
| transform: translateY(20px); | |
| } | |
| .page-enter-active { | |
| opacity: 1; | |
| transform: translateY(0); | |
| transition: all 300ms ease; | |
| } | |
| .page-exit { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| .page-exit-active { | |
| opacity: 0; | |
| transform: translateY(20px); | |
| transition: all 300ms ease; | |
| } | |
| ``` | |
| These changes include: | |
| 1. Modern UI with Crunchyroll-inspired design | |
| 2. Smooth animations and transitions | |
| 3. Responsive layout for all devices | |
| 4. Enhanced visual hierarchy | |
| 5. Improved user interactions | |
| 6. Better organization of CSS | |
| 7. Performance optimizations | |
| The design features: | |
| - Fixed header with blur effect | |
| - Hero slider with animated transitions | |
| - Modern card layouts for anime content | |
| - Interactive buttons and form elements | |
| - Smooth hover effects | |
| - Responsive typography | |
| - Dark/light theme support | |
| - Accessibility improvements |