285 lines
7.6 KiB
CSS
285 lines
7.6 KiB
CSS
|
/* Basic animations */
|
||
|
@keyframes fadeIn {
|
||
|
0% { opacity: 0; }
|
||
|
100% { opacity: 1; }
|
||
|
}
|
||
|
|
||
|
@keyframes slideInRight {
|
||
|
0% { transform: translateX(-20px); opacity: 0; }
|
||
|
100% { transform: translateX(0); opacity: 1; }
|
||
|
}
|
||
|
|
||
|
@keyframes slideInBottom {
|
||
|
0% { transform: translateY(15px); opacity: 0; }
|
||
|
100% { transform: translateY(0); opacity: 1; }
|
||
|
}
|
||
|
|
||
|
@keyframes scaleIn {
|
||
|
0% { transform: scale(0.92); opacity: 0; }
|
||
|
100% { transform: scale(1); opacity: 1; }
|
||
|
}
|
||
|
|
||
|
@keyframes gentle-shimmer {
|
||
|
0% { background-position: 0% 50%; }
|
||
|
100% { background-position: 200% 50%; }
|
||
|
}
|
||
|
|
||
|
@keyframes subtle-pulse {
|
||
|
0% { transform: scale(1); opacity: 0.95; }
|
||
|
50% { transform: scale(1.01); opacity: 1; }
|
||
|
100% { transform: scale(1); opacity: 0.95; }
|
||
|
}
|
||
|
|
||
|
@keyframes borderPulse {
|
||
|
0% { border-color: rgba(99, 102, 241, 0.3); }
|
||
|
50% { border-color: rgba(99, 102, 241, 0.7); }
|
||
|
100% { border-color: rgba(99, 102, 241, 0.3); }
|
||
|
}
|
||
|
|
||
|
/* Slide transitions */
|
||
|
@keyframes slideOutLeft {
|
||
|
0% { transform: translateX(0); opacity: 1; }
|
||
|
100% { transform: translateX(-50px); opacity: 0; }
|
||
|
}
|
||
|
|
||
|
@keyframes slideOutRight {
|
||
|
0% { transform: translateX(0); opacity: 1; }
|
||
|
100% { transform: translateX(50px); opacity: 0; }
|
||
|
}
|
||
|
|
||
|
@keyframes slideInLeft {
|
||
|
0% { transform: translateX(50px); opacity: 0; }
|
||
|
100% { transform: translateX(0); opacity: 1; }
|
||
|
}
|
||
|
|
||
|
@keyframes zoomIn {
|
||
|
0% { transform: scale(0.85); opacity: 0; }
|
||
|
100% { transform: scale(1); opacity: 1; }
|
||
|
}
|
||
|
|
||
|
@keyframes zoomOut {
|
||
|
0% { transform: scale(1); opacity: 1; }
|
||
|
100% { transform: scale(0.85); opacity: 0; }
|
||
|
}
|
||
|
|
||
|
@keyframes rotateIn {
|
||
|
0% { transform: perspective(1000px) rotateY(10deg); opacity: 0; }
|
||
|
100% { transform: perspective(1000px) rotateY(0); opacity: 1; }
|
||
|
}
|
||
|
|
||
|
@keyframes fadeInScale {
|
||
|
0% { transform: scale(0.9); opacity: 0; }
|
||
|
100% { transform: scale(1); opacity: 1; }
|
||
|
}
|
||
|
|
||
|
@keyframes slideUpFade {
|
||
|
0% { transform: translateY(20px); opacity: 0; }
|
||
|
100% { transform: translateY(0); opacity: 1; }
|
||
|
}
|
||
|
|
||
|
/* Modern hover effects */
|
||
|
.card {
|
||
|
transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||
|
}
|
||
|
|
||
|
/* Update highlight word animation to avoid orange */
|
||
|
.highlight-word {
|
||
|
background: linear-gradient(90deg, var(--highlight), var(--primary-color));
|
||
|
background-clip: text;
|
||
|
-webkit-background-clip: text;
|
||
|
color: transparent;
|
||
|
background-size: 200% auto;
|
||
|
animation: gentle-shimmer s linear infinite;
|
||
|
font-weight: 600;
|
||
|
}
|
||
|
|
||
|
/* Title animations for all slides */
|
||
|
.slidev-layout h1 {
|
||
|
animation: fadeIn 0.8s ease-out forwards, slideInBottom 0.8s ease-out forwards;
|
||
|
}
|
||
|
|
||
|
/* List item animations */
|
||
|
.slidev-layout ul li, .slidev-layout ol li {
|
||
|
opacity: 0;
|
||
|
animation: slideInRight 0.5s ease-out forwards;
|
||
|
}
|
||
|
|
||
|
/* Stagger the animation delay for list items */
|
||
|
.slidev-layout ul li:nth-child(1), .slidev-layout ol li:nth-child(1) { animation-delay: 0.2s; }
|
||
|
.slidev-layout ul li:nth-child(2), .slidev-layout ol li:nth-child(2) { animation-delay: 0.35s; }
|
||
|
.slidev-layout ul li:nth-child(3), .slidev-layout ol li:nth-child(3) { animation-delay: 0.5s; }
|
||
|
.slidev-layout ul li:nth-child(4), .slidev-layout ol li:nth-child(4) { animation-delay: 0.65s; }
|
||
|
.slidev-layout ul li:nth-child(5), .slidev-layout ol li:nth-child(5) { animation-delay: 0.8s; }
|
||
|
.slidev-layout ul li:nth-child(n+6), .slidev-layout ol li:nth-child(n+6) { animation-delay: 0.95s; }
|
||
|
|
||
|
/* Table animation - fixing table appearance */
|
||
|
.slidev-layout table {
|
||
|
animation: fadeIn 0.8s ease-out forwards;
|
||
|
}
|
||
|
|
||
|
.slidev-layout table th {
|
||
|
opacity: 0;
|
||
|
animation: fadeIn 0.7s ease-out forwards;
|
||
|
animation-delay: 0.3s;
|
||
|
}
|
||
|
|
||
|
.slidev-layout table td {
|
||
|
opacity: 0;
|
||
|
animation: fadeIn 0.7s ease-out forwards;
|
||
|
}
|
||
|
|
||
|
/* Staggered rows with shorter delays */
|
||
|
.slidev-layout table tr:nth-child(1) td { animation-delay: 0.4s; }
|
||
|
.slidev-layout table tr:nth-child(2) td { animation-delay: 0.5s; }
|
||
|
.slidev-layout table tr:nth-child(3) td { animation-delay: 0.6s; }
|
||
|
.slidev-layout table tr:nth-child(4) td { animation-delay: 0.7s; }
|
||
|
.slidev-layout table tr:nth-child(5) td { animation-delay: 0.8s; }
|
||
|
.slidev-layout table tr:nth-child(n+6) td { animation-delay: 0.9s; }
|
||
|
|
||
|
/* Code block animations */
|
||
|
.slidev-layout pre {
|
||
|
opacity: 1;
|
||
|
animation: none;
|
||
|
}
|
||
|
|
||
|
/* Blockquote animations for key insights */
|
||
|
.slidev-layout blockquote {
|
||
|
opacity: 0;
|
||
|
animation: fadeIn 1s ease-out forwards, slideInBottom 1s ease-out forwards;
|
||
|
animation-delay: 1s;
|
||
|
}
|
||
|
|
||
|
/* Special intro slide animations */
|
||
|
.slidev-layout.intro h1 {
|
||
|
animation: fadeIn 1.5s ease-out forwards, subtle-pulse 6s ease-in-out infinite 1.5s;
|
||
|
}
|
||
|
|
||
|
/* Section headers */
|
||
|
.slidev-layout h2 {
|
||
|
opacity: 0;
|
||
|
animation: fadeIn 0.8s ease-out forwards, slideInBottom 0.8s ease-out forwards;
|
||
|
animation-delay: 0.2s;
|
||
|
}
|
||
|
|
||
|
/* Add typing effect for code comment lines */
|
||
|
.slidev-layout pre .line-comment {
|
||
|
overflow: hidden;
|
||
|
white-space: nowrap;
|
||
|
animation: typing 1s steps(40, end) forwards;
|
||
|
animation-delay: 1.5s;
|
||
|
}
|
||
|
|
||
|
/* Add hover effects for interactive elements */
|
||
|
.slidev-layout table tr:hover td {
|
||
|
background-color: rgba(8, 38, 82, 0.2);
|
||
|
transition: background-color 0.3s ease;
|
||
|
}
|
||
|
|
||
|
.slidev-layout pre:hover {
|
||
|
animation: borderGlow 2s infinite;
|
||
|
}
|
||
|
|
||
|
/* Card animations */
|
||
|
.card {
|
||
|
animation: fadeIn 0.5s ease-out forwards, scaleIn 0.5s ease-out forwards;
|
||
|
}
|
||
|
|
||
|
/* Stagger card animations */
|
||
|
.two-column .card:nth-child(1) { animation-delay: 0.3s; }
|
||
|
.two-column .card:nth-child(2) { animation-delay: 0.5s; }
|
||
|
|
||
|
.grid-3 .card:nth-child(1) { animation-delay: 0.3s; }
|
||
|
.grid-3 .card:nth-child(2) { animation-delay: 0.4s; }
|
||
|
.grid-3 .card:nth-child(3) { animation-delay: 0.5s; }
|
||
|
.grid-3 .card:nth-child(4) { animation-delay: 0.6s; }
|
||
|
|
||
|
/* Add special animations for key insight blocks */
|
||
|
.key-insight {
|
||
|
position: relative;
|
||
|
overflow: hidden;
|
||
|
animation: fadeIn 1s ease-out forwards, slideInBottom 1s ease-out forwards;
|
||
|
animation-delay: 0.8s;
|
||
|
}
|
||
|
|
||
|
/* Better list animations */
|
||
|
.better-list li {
|
||
|
transition: all 0.3s ease;
|
||
|
}
|
||
|
|
||
|
.better-list li:hover {
|
||
|
transform: translateX(5px);
|
||
|
background: rgba(19, 21, 33, 0.95);
|
||
|
border-left-width: 5px;
|
||
|
}
|
||
|
|
||
|
.animate-pulse {
|
||
|
animation: subtle-pulse 6s ease-in-out infinite;
|
||
|
}
|
||
|
|
||
|
/* Apply slide transitions */
|
||
|
.slidev-vclick-prior {
|
||
|
transition: all 0.5s ease;
|
||
|
}
|
||
|
|
||
|
.slidev-vclick-target {
|
||
|
animation: fadeInScale 0.6s ease forwards;
|
||
|
}
|
||
|
|
||
|
/* Enhanced container animations */
|
||
|
.card {
|
||
|
animation: fadeInScale 0.5s ease-out forwards;
|
||
|
transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
|
||
|
}
|
||
|
|
||
|
/* Modern text animations */
|
||
|
.animated-text {
|
||
|
animation: slideUpFade 0.7s ease-out forwards;
|
||
|
opacity: 0;
|
||
|
}
|
||
|
|
||
|
.delay-1 { animation-delay: 0.2s; }
|
||
|
.delay-2 { animation-delay: 0.4s; }
|
||
|
.delay-3 { animation-delay: 0.6s; }
|
||
|
.delay-4 { animation-delay: 0.8s; }
|
||
|
.delay-5 { animation-delay: 1s; }
|
||
|
|
||
|
/* Container entrance animations */
|
||
|
.container-fade-in {
|
||
|
animation: fadeIn 1s ease forwards;
|
||
|
opacity: 0;
|
||
|
}
|
||
|
|
||
|
.container-slide-up {
|
||
|
animation: slideUpFade 0.8s ease-out forwards;
|
||
|
opacity: 0;
|
||
|
}
|
||
|
|
||
|
.container-zoom-in {
|
||
|
animation: zoomIn 0.8s ease-out forwards;
|
||
|
opacity: 0;
|
||
|
}
|
||
|
|
||
|
.container-rotate-in {
|
||
|
animation: rotateIn 0.9s ease-out forwards;
|
||
|
opacity: 0;
|
||
|
}
|
||
|
|
||
|
/* Staggered container content */
|
||
|
.stagger-container > *:nth-child(1) { animation-delay: 0.1s; }
|
||
|
.stagger-container > *:nth-child(2) { animation-delay: 0.3s; }
|
||
|
.stagger-container > *:nth-child(3) { animation-delay: 0.5s; }
|
||
|
.stagger-container > *:nth-child(4) { animation-delay: 0.7s; }
|
||
|
.stagger-container > *:nth-child(5) { animation-delay: 0.9s; }
|
||
|
|
||
|
/* Enhanced list animations */
|
||
|
.enhanced-list li {
|
||
|
animation: slideInRight 0.5s ease-out forwards;
|
||
|
opacity: 0;
|
||
|
}
|
||
|
|
||
|
.enhanced-list li:nth-child(1) { animation-delay: 0.2s; }
|
||
|
.enhanced-list li:nth-child(2) { animation-delay: 0.35s; }
|
||
|
.enhanced-list li:nth-child(3) { animation-delay: 0.5s; }
|
||
|
.enhanced-list li:nth-child(4) { animation-delay: 0.65s; }
|
||
|
.enhanced-list li:nth-child(5) { animation-delay: 0.8s; }
|