Template:TextAnimations/styles.css
Appearance
/* 1. Base Keyframes */
@keyframes wave {
0%, 100% { top: 0; }
50% { top: -6px; }
}
@keyframes hue-cycle {
from { filter: hue-rotate(0deg); }
to { filter: hue-rotate(360deg); }
}
/* 2. Formatting & Container Styles */
/* 'inline' keeps the template inside sentences */
.text-animation-container {
display: inline !important;
white-space: nowrap;
padding: 2px 4px;
border-radius: 3px;
}
/* CRITICAL: The letters MUST be inline-block and relative for Wavy to work */
.text-animation-container span {
display: inline-block !important;
position: relative !important;
background: transparent !important;
}
/* Glow/Shadow: Targeted at both container and letters */
.force-glow, .force-glow span {
text-shadow: 0 0 5px currentColor, 0 0 10px currentColor !important;
}
.force-shadow, .force-shadow span {
text-shadow: 2px 2px 3px rgba(0, 0, 0, 0.5) !important;
}
.force-bold, .force-bold span {
font-weight: bold !important;
}
.force-italic, .force-italic span {
font-style: italic !important;
}
/* 3. Standard Animation Styles */
.wavy span {
animation: wave 1s ease-in-out infinite !important;
}
.rainbow span {
animation: hue-cycle 3s linear infinite !important;
}
.wavy.rainbow span {
animation: wave 1s ease-in-out infinite, hue-cycle 3s linear infinite !important;
}
/* 4. Full Override Styles (MediaWiki Reset Fix) */
@media (prefers-reduced-motion: reduce) {
html body .wavy span,
html body .rainbow span,
html body .wavy.rainbow span {
animation-iteration-count: infinite !important;
animation-play-state: running !important;
display: inline-block !important;
position: relative !important;
}
html body .wavy span {
animation-name: wave !important;
animation-duration: 1s !important;
}
html body .rainbow span {
animation-name: hue-cycle !important;
animation-duration: 3s !important;
}
html body .wavy.rainbow span {
animation-name: wave, hue-cycle !important;
animation-duration: 1s, 3s !important;
}
}