80 lines
1.9 KiB
CSS
80 lines
1.9 KiB
CSS
|
|
/* Animated Text Component - Reusable across pages */
|
||
|
|
|
||
|
|
/* Base animated title */
|
||
|
|
.animated-title {
|
||
|
|
background: linear-gradient(135deg, #00d4ff, #1e40af, #00ffb3, #00d4ff);
|
||
|
|
background-size: 200% 200%;
|
||
|
|
-webkit-background-clip: text;
|
||
|
|
-webkit-text-fill-color: transparent;
|
||
|
|
background-clip: text;
|
||
|
|
animation: gradient-shift 4s ease infinite;
|
||
|
|
filter: drop-shadow(0 0 30px rgba(0, 212, 255, 0.5));
|
||
|
|
-webkit-text-stroke: 0.4px rgba(0, 212, 255, 0.2);
|
||
|
|
position: relative;
|
||
|
|
}
|
||
|
|
|
||
|
|
/* Animated underline */
|
||
|
|
.animated-title::after {
|
||
|
|
content: "";
|
||
|
|
position: absolute;
|
||
|
|
bottom: 8px;
|
||
|
|
left: 0;
|
||
|
|
width: 95%;
|
||
|
|
height: 3px;
|
||
|
|
background: rgba(0, 212, 255, 0.6);
|
||
|
|
border-radius: 1.5px;
|
||
|
|
filter: drop-shadow(0 0 6px rgba(0, 212, 255, 0.3));
|
||
|
|
transform-origin: left center;
|
||
|
|
animation: progressBar 4s ease-out infinite;
|
||
|
|
}
|
||
|
|
|
||
|
|
/* Terminal-style text */
|
||
|
|
.terminal-text {
|
||
|
|
font-family: "JetBrains Mono", monospace;
|
||
|
|
color: #10b981;
|
||
|
|
position: relative;
|
||
|
|
background: rgba(16, 185, 129, 0.1);
|
||
|
|
padding: 0.25rem 0.5rem;
|
||
|
|
border-radius: 0.25rem;
|
||
|
|
border-left: 2px solid #10b981;
|
||
|
|
}
|
||
|
|
|
||
|
|
/* Glowing text effect */
|
||
|
|
.glow-text {
|
||
|
|
text-shadow: 0 0 20px currentColor;
|
||
|
|
filter: brightness(1.2);
|
||
|
|
}
|
||
|
|
|
||
|
|
/* Typewriter effect */
|
||
|
|
.typewriter {
|
||
|
|
overflow: hidden;
|
||
|
|
border-right: 2px solid #00d4ff;
|
||
|
|
white-space: nowrap;
|
||
|
|
animation:
|
||
|
|
typing 3.5s steps(40, end),
|
||
|
|
blink-caret 0.75s step-end infinite;
|
||
|
|
}
|
||
|
|
|
||
|
|
/* Animations */
|
||
|
|
@keyframes gradient-shift {
|
||
|
|
0%, 100% { background-position: 0% 50%; }
|
||
|
|
50% { background-position: 100% 50%; }
|
||
|
|
}
|
||
|
|
|
||
|
|
@keyframes progressBar {
|
||
|
|
0% { transform: scaleX(0); }
|
||
|
|
25% { transform: scaleX(0.3); }
|
||
|
|
50% { transform: scaleX(0.6); }
|
||
|
|
75% { transform: scaleX(0.9); }
|
||
|
|
100% { transform: scaleX(1); }
|
||
|
|
}
|
||
|
|
|
||
|
|
@keyframes typing {
|
||
|
|
from { width: 0; }
|
||
|
|
to { width: 100%; }
|
||
|
|
}
|
||
|
|
|
||
|
|
@keyframes blink-caret {
|
||
|
|
from, to { border-color: transparent; }
|
||
|
|
50% { border-color: #00d4ff; }
|
||
|
|
}
|