From f034244f65c78f9e15bf1497672f6b759c3a1344 Mon Sep 17 00:00:00 2001 From: Saptarshi-Maji Date: Tue, 16 Dec 2025 15:18:38 +0000 Subject: [PATCH] enhance StartScreen styles with improved animations and layout --- src/pages/StartScreen.css | 124 ++++++++++++++++++++++++++++++++------ 1 file changed, 105 insertions(+), 19 deletions(-) diff --git a/src/pages/StartScreen.css b/src/pages/StartScreen.css index 36b4d50..1fbbf93 100644 --- a/src/pages/StartScreen.css +++ b/src/pages/StartScreen.css @@ -4,50 +4,136 @@ align-items: center; justify-content: center; height: 100vh; - background: linear-gradient(135deg, #282c34, #3a3f47); + background: linear-gradient(45deg, #0f0f23, #1a1a2e, #16213e, #0f0f23); + background-size: 400% 400%; + animation: gradientShift 15s ease infinite; color: #fff; - font-family: Arial, sans-serif; + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; padding: 1rem; box-sizing: border-box; + position: relative; + overflow: hidden; +} + +.container::before { + content: ''; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: radial-gradient(circle at 20% 80%, rgba(120, 119, 198, 0.3) 0%, transparent 50%), + radial-gradient(circle at 80% 20%, rgba(255, 119, 198, 0.3) 0%, transparent 50%), + radial-gradient(circle at 40% 40%, rgba(120, 255, 198, 0.3) 0%, transparent 50%); + animation: float 20s ease-in-out infinite; + pointer-events: none; +} + +@keyframes gradientShift { + 0% { background-position: 0% 50%; } + 50% { background-position: 100% 50%; } + 100% { background-position: 0% 50%; } +} + +@keyframes float { + 0%, 100% { transform: translateY(0px) rotate(0deg); } + 33% { transform: translateY(-20px) rotate(120deg); } + 66% { transform: translateY(10px) rotate(240deg); } } .title { - font-size: 3.5rem; + font-size: 4rem; margin-bottom: 1rem; - text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); + text-shadow: 0 0 20px rgba(255, 255, 255, 0.5), 0 0 40px rgba(255, 255, 255, 0.3); + animation: glow 2s ease-in-out infinite alternate; + position: relative; + z-index: 1; +} + +@keyframes glow { + from { text-shadow: 0 0 20px rgba(255, 255, 255, 0.5), 0 0 40px rgba(255, 255, 255, 0.3); } + to { text-shadow: 0 0 30px rgba(255, 255, 255, 0.7), 0 0 60px rgba(255, 255, 255, 0.5); } } .subtitle { - font-size: 1.75rem; - margin-bottom: 2.5rem; - color: #dcdcdc; + font-size: 1.5rem; + margin-bottom: 3rem; + color: #e0e0e0; + opacity: 0; + animation: fadeInUp 1s ease-out 0.5s forwards; + position: relative; + z-index: 1; +} + +@keyframes fadeInUp { + from { + opacity: 0; + transform: translateY(30px); + } + to { + opacity: 1; + transform: translateY(0); + } } .buttonContainer { display: flex; - gap: 1.5rem; + gap: 2rem; + position: relative; + z-index: 1; } .button { - padding: 0.75rem 2rem; - font-size: 1.1rem; + padding: 1rem 2.5rem; + font-size: 1.2rem; font-weight: bold; color: #fff; - background-color: #007bff; + background: linear-gradient(45deg, #667eea, #764ba2); border: none; - border-radius: 8px; + border-radius: 50px; cursor: pointer; - transition: all 0.3s ease; - box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2); + transition: all 0.4s ease; + box-shadow: 0 8px 15px rgba(0, 0, 0, 0.3); + position: relative; + overflow: hidden; + animation: slideIn 0.8s ease-out forwards; + opacity: 0; + transform: translateY(50px); +} + +.button:nth-child(1) { animation-delay: 1s; } +.button:nth-child(2) { animation-delay: 1.2s; } +.button:nth-child(3) { animation-delay: 1.4s; } + +@keyframes slideIn { + to { + opacity: 1; + transform: translateY(0); + } +} + +.button::before { + content: ''; + position: absolute; + top: 0; + left: -100%; + width: 100%; + height: 100%; + background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); + transition: left 0.5s; +} + +.button:hover::before { + left: 100%; } .button:hover { - background-color: #0056b3; - transform: translateY(-2px); - box-shadow: 0 6px 8px rgba(0, 0, 0, 0.3); + background: linear-gradient(45deg, #764ba2, #667eea); + transform: translateY(-5px) scale(1.05); + box-shadow: 0 12px 20px rgba(0, 0, 0, 0.4); } .button:active { - transform: translateY(0); - box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2); + transform: translateY(-2px) scale(1.02); + box-shadow: 0 6px 10px rgba(0, 0, 0, 0.3); }