Spaces:
Running
Running
document.addEventListener('DOMContentLoaded', async function() { | |
await tsParticles.load("tsparticles", { | |
fullScreen: { | |
enable: false | |
}, | |
background: { | |
color: { | |
value: "transparent" | |
} | |
}, | |
fpsLimit: 60, | |
interactivity: { | |
events: { | |
onClick: { | |
enable: true, | |
mode: "push" | |
}, | |
onHover: { | |
enable: true, | |
mode: "grab" | |
}, | |
resize: true | |
}, | |
modes: { | |
push: { | |
quantity: 4 | |
}, | |
grab: { | |
distance: 140, | |
links: { | |
opacity: 1 | |
} | |
} | |
} | |
}, | |
particles: { | |
color: { | |
value: "#ffffff" | |
}, | |
links: { | |
color: "#ffffff", | |
distance: 150, | |
enable: true, | |
opacity: 0.5, | |
width: 1 | |
}, | |
collisions: { | |
enable: true | |
}, | |
move: { | |
direction: "none", | |
enable: true, | |
outModes: { | |
default: "bounce" | |
}, | |
random: false, | |
speed: 2, | |
straight: false | |
}, | |
number: { | |
density: { | |
enable: true, | |
area: 800 | |
}, | |
value: 80 | |
}, | |
opacity: { | |
value: 0.5 | |
}, | |
shape: { | |
type: "circle" | |
}, | |
size: { | |
value: { min: 1, max: 5 } | |
} | |
}, | |
detectRetina: true | |
}); | |
function toggleDarkMode() { | |
document.body.classList.toggle('dark-mode'); | |
updateParticleColors(); | |
} | |
function updateParticleColors() { | |
const isDarkMode = document.body.classList.contains('dark-mode'); | |
const color = isDarkMode ? "#4299e1" : "#ffffff"; | |
tsParticles.domItem(0).options.particles.color.value = color; | |
tsParticles.domItem(0).options.particles.links.color = color; | |
tsParticles.domItem(0).refresh(); | |
} | |
// Expose toggleDarkMode to global scope | |
window.toggleDarkMode = toggleDarkMode; | |
}); | |