Add seasonal themes for Birthday, Olympia, Space, Sports, and Underwater: implement CSS and JavaScript for visual effects and configurations

This commit is contained in:
CodeDevMLH
2026-02-24 23:40:21 +01:00
parent be4313d776
commit 861f431e50
10 changed files with 1118 additions and 0 deletions

View File

@@ -0,0 +1,88 @@
.underwater-container {
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
pointer-events: none;
z-index: 9999;
overflow: hidden;
contain: strict;
}
.underwater-bg {
position: absolute;
top: 0; left: 0; width: 100vw; height: 100vh;
background: linear-gradient(180deg, rgba(0, 105, 148, 0.1) 0%, rgba(0, 48, 143, 0.4) 100%);
pointer-events: none;
z-index: 10;
}
.underwater-symbol {
position: absolute;
animation-timing-function: linear;
animation-iteration-count: infinite;
font-size: 3rem;
opacity: 0.9;
z-index: 20;
}
.underwater-symbol img {
width: 6vh;
height: auto;
max-width: 60px;
object-fit: contain;
}
.underwater-seaweed {
position: absolute;
bottom: -1vh;
font-size: 4rem;
transform-origin: bottom center;
animation: underwater-sway 4s ease-in-out infinite alternate;
z-index: 30;
opacity: 0.8;
}
.underwater-seaweed img {
height: 12vh;
width: auto;
object-fit: contain;
max-height: 120px;
}
.underwater-bubble {
position: absolute;
bottom: -5vh;
border-radius: 50%;
border: 1px solid rgba(255, 255, 255, 0.4);
background: radial-gradient(circle at 30% 30%, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0.1));
box-shadow: inset 0 0 5px rgba(255, 255, 255, 0.5);
animation: underwater-bubble-rise linear infinite;
z-index: 40;
}
@keyframes underwater-swim-right {
0% { transform: translateX(0) translateY(0) scaleX(-1); }
50% { transform: translateX(65vw) translateY(-5vh) scaleX(-1); }
100% { transform: translateX(130vw) translateY(0) scaleX(-1); }
}
@keyframes underwater-swim-left {
0% { transform: translateX(0) translateY(0); }
50% { transform: translateX(-65vw) translateY(5vh); }
100% { transform: translateX(-130vw) translateY(0); }
}
@keyframes underwater-sway {
0% { transform: rotate(-10deg); }
100% { transform: rotate(10deg); }
}
@keyframes underwater-bubble-rise {
0% { transform: translateY(0) translateX(0); opacity: 0; }
10% { opacity: 0.7; }
50% { transform: translateY(-55vh) translateX(-20px); }
90% { opacity: 0; }
100% { transform: translateY(-110vh) translateX(10px); opacity: 0; }
}