first commit
This commit is contained in:
commit
fdf7024bcd
19 changed files with 6837 additions and 0 deletions
284
styles/animations.css
Normal file
284
styles/animations.css
Normal file
|
@ -0,0 +1,284 @@
|
|||
/* 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 4s 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; }
|
100
styles/background.css
Normal file
100
styles/background.css
Normal file
|
@ -0,0 +1,100 @@
|
|||
/* === NEBULA BACKGROUND === */
|
||||
.slidev-layout {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
background: radial-gradient(circle at 30% 30%, #1b2735, #090a0f);
|
||||
}
|
||||
|
||||
.slidev-layout::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: -50%;
|
||||
left: -50%;
|
||||
width: 200%;
|
||||
height: 200%;
|
||||
background: conic-gradient(
|
||||
from 180deg,
|
||||
#800020,
|
||||
#0066cc,
|
||||
#b22222,
|
||||
#0f0f1a,
|
||||
#800020
|
||||
);
|
||||
animation: nebula-shift 60s linear infinite;
|
||||
opacity: 0.07;
|
||||
z-index: 0;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
@keyframes nebula-shift {
|
||||
0% { transform: rotate(0deg) scale(1.2); }
|
||||
100% { transform: rotate(360deg) scale(1.2); }
|
||||
}
|
||||
|
||||
/* === HUD CIRCLES === */
|
||||
.hud-element {
|
||||
position: absolute;
|
||||
border: 1px solid rgba(0, 255, 255, 0.08);
|
||||
border-radius: 50%;
|
||||
animation: pulse-ring 6s ease-in-out infinite;
|
||||
pointer-events: none;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.hud-element.circle-small {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
top: 20%;
|
||||
left: 10%;
|
||||
}
|
||||
|
||||
.hud-element.circle-big {
|
||||
width: 180px;
|
||||
height: 180px;
|
||||
top: 60%;
|
||||
left: 75%;
|
||||
animation-delay: 2s;
|
||||
}
|
||||
|
||||
@keyframes pulse-ring {
|
||||
0%, 100% { transform: scale(1); opacity: 0.06; }
|
||||
50% { transform: scale(1.2); opacity: 0.12; }
|
||||
}
|
||||
|
||||
/* === HUD SCANNING LINES === */
|
||||
.hud-lines::before,
|
||||
.hud-lines::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
height: 2px;
|
||||
width: 100vw;
|
||||
background: linear-gradient(
|
||||
to right,
|
||||
rgba(0, 102, 204, 0) 0%,
|
||||
rgba(0, 102, 204, 0.12) 50%,
|
||||
rgba(0, 102, 204, 0) 100%
|
||||
);
|
||||
animation: scanline 20s linear infinite;
|
||||
pointer-events: none;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.hud-lines::before {
|
||||
top: 25%;
|
||||
}
|
||||
|
||||
.hud-lines::after {
|
||||
top: 75%;
|
||||
animation-delay: 10s;
|
||||
}
|
||||
|
||||
@keyframes scanline {
|
||||
0% { transform: translateX(-100%); }
|
||||
100% { transform: translateX(100%); }
|
||||
}
|
||||
|
||||
/* === SAFEGUARDING MAIN CONTENT === */
|
||||
.slidev-layout > * {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
25
styles/base.css
Normal file
25
styles/base.css
Normal file
|
@ -0,0 +1,25 @@
|
|||
|
||||
:root {
|
||||
--primary-color: #800020;
|
||||
--secondary-color: #B22222;
|
||||
--accent-color: #A30000;
|
||||
--text-color: #f0f2f5;
|
||||
--background-dark: #0a0c14;
|
||||
--highlight: #0066CC;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Inter', sans-serif;
|
||||
background-color: var(--background-dark);
|
||||
color: var(--text-color);
|
||||
}
|
||||
|
||||
.slidev-layout {
|
||||
padding: 1.5rem;
|
||||
background: var(--background-dark);
|
||||
}
|
||||
|
||||
h1, h2 {
|
||||
color: var(--highlight);
|
||||
}
|
||||
|
23
styles/icons-bouncing.css
Normal file
23
styles/icons-bouncing.css
Normal file
|
@ -0,0 +1,23 @@
|
|||
.screensaver-icon {
|
||||
position: absolute;
|
||||
font-size: 3.8rem;
|
||||
opacity: 0.25;
|
||||
animation: floatIcon linear infinite;
|
||||
pointer-events: none;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.screensaver-icon.ai { color: #66ccff; animation-duration: 26s; top: 10%; left: 20%; }
|
||||
.screensaver-icon.ethics { color: #ff6666; animation-duration: 24s; top: 60%; left: 75%; }
|
||||
.screensaver-icon.safety { color: #99ff99; animation-duration: 28s; top: 30%; left: 60%; }
|
||||
.screensaver-icon.feedback { color: #ffcc66; animation-duration: 25s; top: 70%; left: 25%; }
|
||||
.screensaver-icon.model { color: #cc99ff; animation-duration: 23s; top: 45%; left: 45%; }
|
||||
|
||||
@keyframes floatIcon {
|
||||
0% { transform: translate(0, 0); }
|
||||
20% { transform: translate(120px, 100px); }
|
||||
40% { transform: translate(-80px, 140px); }
|
||||
60% { transform: translate(150px, -110px); }
|
||||
80% { transform: translate(-100px, -80px); }
|
||||
100% { transform: translate(0, 0); }
|
||||
}
|
6
styles/index.ts
Normal file
6
styles/index.ts
Normal file
|
@ -0,0 +1,6 @@
|
|||
import './animations.css';
|
||||
import './background.css';
|
||||
import './base.css';
|
||||
import './icons-bouncing.css';
|
||||
import './panels.css';
|
||||
|
44
styles/panels.css
Normal file
44
styles/panels.css
Normal file
|
@ -0,0 +1,44 @@
|
|||
.panel-info, .panel-success, .panel-warning, .panel-danger {
|
||||
padding: 1.2rem;
|
||||
border-left: 6px solid;
|
||||
margin-bottom: 1.5rem;
|
||||
border-radius: 6px;
|
||||
background-color: rgba(255, 255, 255, 0.03);
|
||||
box-shadow: 0 0 10px rgba(0,0,0,0.1);
|
||||
}
|
||||
|
||||
.panel-info {
|
||||
border-color: #3B82F6;
|
||||
}
|
||||
.panel-success {
|
||||
border-color: #10B981;
|
||||
}
|
||||
.panel-warning {
|
||||
border-color: #F59E0B;
|
||||
}
|
||||
.panel-danger {
|
||||
border-color: #EF4444;
|
||||
}
|
||||
|
||||
.styled-table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin: 1rem 0;
|
||||
font-size: 1rem;
|
||||
border-radius: 6px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 0 10px rgba(0,0,0,0.15);
|
||||
}
|
||||
.styled-table thead tr {
|
||||
background-color: #1f2937;
|
||||
color: #ffffff;
|
||||
text-align: left;
|
||||
}
|
||||
.styled-table th,
|
||||
.styled-table td {
|
||||
padding: 0.75rem 1rem;
|
||||
border-bottom: 1px solid #374151;
|
||||
}
|
||||
.styled-table tbody tr:hover {
|
||||
background-color: rgba(255, 255, 255, 0.05);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue