Stirling-PDF/frontend/src/styles/rainbow.module.css
2025-06-09 18:38:06 +01:00

203 lines
6.4 KiB
CSS

/* Rainbow Mode Styles - Easter Egg! */
@keyframes rainbowBackground {
0% { background-position: 0% 50%; }
50% { background-position: 100% 50%; }
100% { background-position: 0% 50%; }
}
@keyframes rainbowBorder {
0% { border-color: #ff0000; box-shadow: 0 0 15px #ff0000; }
14% { border-color: #ff8800; box-shadow: 0 0 15px #ff8800; }
28% { border-color: #ffff00; box-shadow: 0 0 15px #ffff00; }
42% { border-color: #88ff00; box-shadow: 0 0 15px #88ff00; }
57% { border-color: #00ff88; box-shadow: 0 0 15px #00ff88; }
71% { border-color: #0088ff; box-shadow: 0 0 15px #0088ff; }
85% { border-color: #8800ff; box-shadow: 0 0 15px #8800ff; }
100% { border-color: #ff0000; box-shadow: 0 0 15px #ff0000; }
}
@keyframes rainbowText {
0% { color: #ff0000; text-shadow: 0 0 10px #ff0000; }
14% { color: #ff8800; text-shadow: 0 0 10px #ff8800; }
28% { color: #ffff00; text-shadow: 0 0 10px #ffff00; }
42% { color: #88ff00; text-shadow: 0 0 10px #88ff00; }
57% { color: #00ff88; text-shadow: 0 0 10px #00ff88; }
71% { color: #0088ff; text-shadow: 0 0 10px #0088ff; }
85% { color: #8800ff; text-shadow: 0 0 10px #8800ff; }
100% { color: #ff0000; text-shadow: 0 0 10px #ff0000; }
}
@keyframes rainbowPulse {
0%, 100% { transform: scale(1); }
50% { transform: scale(1.05); }
}
/* Main rainbow theme class */
.rainbowMode {
background: linear-gradient(
-45deg,
#ff0000, #ff8800, #ffff00, #88ff00, #00ff88, #00ffff, #0088ff, #8800ff, #ff0088, #ff0000
) !important;
background-size: 400% 400% !important;
animation: rainbowBackground 3s ease infinite !important;
color: white !important;
overflow-x: hidden;
}
/* Rainbow components */
.rainbowCard {
background: linear-gradient(
45deg,
#ff0000, #ff8800, #ffff00, #88ff00, #00ff88, #00ffff, #0088ff, #8800ff, #ff0088
) !important;
background-size: 400% 400% !important;
animation: rainbowBackground 4s ease infinite, rainbowBorder 2s linear infinite !important;
color: white !important;
border: 2px solid !important;
border-radius: 15px !important;
box-shadow: 0 0 20px rgba(255, 255, 255, 0.3) !important;
}
.rainbowButton {
background: linear-gradient(
45deg,
#ff0000, #ff8800, #ffff00, #88ff00, #00ff88, #00ffff, #0088ff, #8800ff, #ff0088
) !important;
background-size: 300% 300% !important;
animation: rainbowBackground 2s ease infinite, rainbowBorder 1s linear infinite !important;
border: 2px solid !important;
color: white !important;
border-radius: 8px !important;
transition: all 0.3s ease !important;
font-weight: bold !important;
}
.rainbowButton:hover {
transform: scale(1.05) !important;
animation: rainbowBackground 1s ease infinite, rainbowBorder 0.5s linear infinite, rainbowPulse 0.5s ease infinite !important;
box-shadow: 0 0 25px rgba(255, 255, 255, 0.6) !important;
}
.rainbowInput {
background: linear-gradient(
90deg,
#ff0000, #ff8800, #ffff00, #88ff00, #00ff88, #00ffff, #0088ff, #8800ff, #ff0088
) !important;
background-size: 300% 300% !important;
animation: rainbowBackground 2.5s ease infinite, rainbowBorder 1.5s linear infinite !important;
border: 2px solid !important;
color: white !important;
border-radius: 8px !important;
}
.rainbowInput::placeholder {
color: rgba(255, 255, 255, 0.8) !important;
}
.rainbowText {
animation: rainbowText 3s linear infinite !important;
font-weight: bold !important;
text-shadow: 0 0 10px currentColor !important;
}
.rainbowSegmentedControl {
background: linear-gradient(
45deg,
#ff0000, #ff8800, #ffff00, #88ff00, #00ff88, #00ffff, #0088ff, #8800ff, #ff0088
) !important;
background-size: 400% 400% !important;
animation: rainbowBackground 3s ease infinite, rainbowBorder 2s linear infinite !important;
border: 2px solid !important;
border-radius: 12px !important;
padding: 4px !important;
}
.rainbowPaper {
background: linear-gradient(
90deg,
#00ffff, #0088ff, #8800ff, #ff0088
) !important;
background-size: 100% 100% !important;
animation: rainbowBackground 3.5s ease infinite, rainbowBorder 2s linear infinite !important;
border: 2px solid !important;
color: white !important;
border-radius: 12px !important;
}
/* Easter egg notification */
.rainbowNotification {
position: fixed !important;
top: 20px !important;
right: 20px !important;
background: linear-gradient(45deg,#ffff00, #88ff00, #00ff88, #00ffff) !important;
background-size: 300% 300% !important;
animation: rainbowBackground 1s ease infinite, rainbowBorder 0.5s linear infinite !important;
color: white !important;
padding: 15px 20px !important;
border-radius: 25px !important;
font-weight: bold !important;
font-size: 16px !important;
z-index: 10000 !important;
border: 2px solid white !important;
box-shadow: 0 0 20px rgba(255, 255, 255, 0.8) !important;
user-select: none !important;
pointer-events: none !important;
}
/* Specific component overrides */
.rainbowMode [data-mantine-color-scheme] {
background: linear-gradient(
-45deg,
#ff0000, #ff8800, #ffff00, #88ff00, #00ff88, #00ffff, #0088ff, #8800ff, #ff0088, #ff0000
) !important;
background-size: 400% 400% !important;
animation: rainbowBackground 3s ease infinite !important;
}
/* Make all buttons rainbow in rainbow mode */
.rainbowMode button {
background: linear-gradient(
45deg,
#ffff00, #88ff00, #00ff88, #00ffff
) !important;
background-size: 100% 100% !important;
animation: rainbowBackground 2s ease infinite !important;
border: 2px solid !important;
animation: rainbowBackground 2s ease infinite, rainbowBorder 1.5s linear infinite !important;
color: white !important;
font-weight: bold !important;
}
/* Make all inputs rainbow in rainbow mode */
.rainbowMode input,
.rainbowMode select,
.rainbowMode textarea {
background: linear-gradient(
90deg,
#ffff00, #88ff00, #00ff88, #00ffff
) !important;
background-size: 100% 100% !important;
animation: rainbowBackground 2.5s ease infinite !important;
border: 2px solid !important;
animation: rainbowBackground 2.5s ease infinite, rainbowBorder 1.5s linear infinite !important;
color: white !important;
}
/* Rainbow text class */
.rainbowText {
animation: rainbowText 3s linear infinite !important;
font-weight: bold !important;
text-shadow: 0 0 10px currentColor !important;
}
/* Make all text rainbow */
.rainbowMode h1,
.rainbowMode h2,
.rainbowMode h3,
.rainbowMode h4,
.rainbowMode h5,
.rainbowMode h6 {
animation: rainbowText 3s linear infinite !important;
font-weight: bold !important;
}