Spaces:
Running
Running
No this is not what i wanted. please make the background one style, i want it to be small particles that becomes the shapes i asked you to make earlier.
Browse files- index.html +77 -90
index.html
CHANGED
|
@@ -9,11 +9,8 @@
|
|
| 9 |
<script src="https://unpkg.com/feather-icons"></script>
|
| 10 |
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
|
| 11 |
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
|
| 12 |
-
<script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.
|
| 13 |
-
|
| 14 |
-
<script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.cells.min.js"></script>
|
| 15 |
-
<script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.dots.min.js"></script>
|
| 16 |
-
<style>
|
| 17 |
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap');
|
| 18 |
body {
|
| 19 |
font-family: 'Space Grotesk', sans-serif;
|
|
@@ -207,94 +204,84 @@
|
|
| 207 |
asciiContainer.innerHTML = `<div class="ascii-art">${asciiPatterns[currentPattern]}</div>`;
|
| 208 |
currentPattern = (currentPattern + 1) % asciiPatterns.length;
|
| 209 |
}
|
| 210 |
-
// Initialize
|
| 211 |
-
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 217 |
|
| 218 |
-
|
| 219 |
-
|
| 220 |
-
|
| 221 |
-
|
| 222 |
-
|
| 223 |
-
|
| 224 |
-
|
| 225 |
-
|
| 226 |
-
|
| 227 |
-
scale: 1.00,
|
| 228 |
-
color: 0x3b82f6,
|
| 229 |
-
backgroundColor: 0x0f172a,
|
| 230 |
-
size: 1.00
|
| 231 |
-
});
|
| 232 |
-
break;
|
| 233 |
-
case 'waves':
|
| 234 |
-
window.vantaEffect = VANTA.WAVES({
|
| 235 |
-
el: "#vanta-background",
|
| 236 |
-
mouseControls: true,
|
| 237 |
-
touchControls: true,
|
| 238 |
-
gyroControls: false,
|
| 239 |
-
minHeight: 200.00,
|
| 240 |
-
minWidth: 200.00,
|
| 241 |
-
scale: 1.00,
|
| 242 |
-
color: 0x10b981,
|
| 243 |
-
shininess: 50.00,
|
| 244 |
-
waveHeight: 20.00,
|
| 245 |
-
waveSpeed: 0.50,
|
| 246 |
-
zoom: 0.75
|
| 247 |
-
});
|
| 248 |
-
break;
|
| 249 |
-
case 'dots':
|
| 250 |
-
window.vantaEffect = VANTA.DOTS({
|
| 251 |
-
el: "#vanta-background",
|
| 252 |
-
mouseControls: true,
|
| 253 |
-
touchControls: true,
|
| 254 |
-
touchControls: true,
|
| 255 |
-
gyroControls: false,
|
| 256 |
-
minHeight: 200.00,
|
| 257 |
-
minWidth: 200.00,
|
| 258 |
-
scale: 1.00,
|
| 259 |
-
color: 0xa855f7,
|
| 260 |
-
color2: 0xec4899,
|
| 261 |
-
size: 3.00,
|
| 262 |
-
spacing: 40.00
|
| 263 |
-
});
|
| 264 |
-
break;
|
| 265 |
-
case 'cells':
|
| 266 |
-
default:
|
| 267 |
-
window.vantaEffect = VANTA.CELLS({
|
| 268 |
-
el: "#vanta-background",
|
| 269 |
-
mouseControls: true,
|
| 270 |
-
touchControls: true,
|
| 271 |
-
gyroControls: false,
|
| 272 |
-
minHeight: 200.00,
|
| 273 |
-
minWidth: 200.00,
|
| 274 |
-
scale: 1.00,
|
| 275 |
-
color1: 0x1e293b,
|
| 276 |
-
color2: 0x475569,
|
| 277 |
-
size: 1.50,
|
| 278 |
-
speed: 1.20
|
| 279 |
-
});
|
| 280 |
-
break;
|
| 281 |
}
|
| 282 |
}
|
| 283 |
-
|
| 284 |
-
//
|
| 285 |
-
|
| 286 |
-
|
| 287 |
-
// Morph between different background effects
|
| 288 |
-
const effects = ['cells', 'globe', 'waves', 'dots'];
|
| 289 |
-
let effectIndex = 0;
|
| 290 |
-
|
| 291 |
-
function morphBackground() {
|
| 292 |
-
effectIndex = (effectIndex + 1) % effects.length;
|
| 293 |
-
initializeVantaEffect(effects[effectIndex]);
|
| 294 |
-
}
|
| 295 |
-
|
| 296 |
-
// Change background effect every 8 seconds
|
| 297 |
-
setInterval(morphBackground, 8000);
|
| 298 |
// Initialize countdown to January 1, 2026 at 12:00
|
| 299 |
const countdownDate = new Date('January 1, 2026 12:00:00');
|
| 300 |
function updateCountdown() {
|
|
|
|
| 9 |
<script src="https://unpkg.com/feather-icons"></script>
|
| 10 |
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
|
| 11 |
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js"></script>
|
| 12 |
+
<script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.dots.min.js"></script>
|
| 13 |
+
<style>
|
|
|
|
|
|
|
|
|
|
| 14 |
@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap');
|
| 15 |
body {
|
| 16 |
font-family: 'Space Grotesk', sans-serif;
|
|
|
|
| 204 |
asciiContainer.innerHTML = `<div class="ascii-art">${asciiPatterns[currentPattern]}</div>`;
|
| 205 |
currentPattern = (currentPattern + 1) % asciiPatterns.length;
|
| 206 |
}
|
| 207 |
+
// Initialize dots background with shape morphing
|
| 208 |
+
window.vantaEffect = VANTA.DOTS({
|
| 209 |
+
el: "#vanta-background",
|
| 210 |
+
mouseControls: true,
|
| 211 |
+
touchControls: true,
|
| 212 |
+
gyroControls: false,
|
| 213 |
+
minHeight: 200.00,
|
| 214 |
+
minWidth: 200.00,
|
| 215 |
+
scale: 1.00,
|
| 216 |
+
color: 0x3b82f6,
|
| 217 |
+
color2: 0xa855f7,
|
| 218 |
+
size: 2.00,
|
| 219 |
+
spacing: 40.00,
|
| 220 |
+
backgroundAlpha: 0
|
| 221 |
+
});
|
| 222 |
+
|
| 223 |
+
// Shape definitions for particles to form
|
| 224 |
+
const shapes = {
|
| 225 |
+
building: [
|
| 226 |
+
{ x: 0.3, y: 0.3 }, { x: 0.7, y: 0.3 }, { x: 0.7, y: 0.7 }, { x: 0.3, y: 0.7 },
|
| 227 |
+
{ x: 0.5, y: 0.7 }, { x: 0.5, y: 0.9 },
|
| 228 |
+
{ x: 0.3, y: 0.3 }, { x: 0.3, y: 0.7 },
|
| 229 |
+
{ x: 0.7, y: 0.3 }, { x: 0.7, y: 0.7 },
|
| 230 |
+
{ x: 0.4, y: 0.4 }, { x: 0.6, y: 0.4 }, { x: 0.6, y: 0.6 }, { x: 0.4, y: 0.6 }, { x: 0.4, y: 0.4 },
|
| 231 |
+
{ x: 0.4, y: 0.6 }, { x: 0.6, y: 0.6 }
|
| 232 |
+
],
|
| 233 |
+
helicopter: [
|
| 234 |
+
{ x: 0.5, y: 0.3 },
|
| 235 |
+
{ x: 0.4, y: 0.4 }, { x: 0.6, y: 0.4 },
|
| 236 |
+
{ x: 0.35, y: 0.5 }, { x: 0.65, y: 0.5 },
|
| 237 |
+
{ x: 0.4, y: 0.6 }, { x: 0.6, y: 0.6 },
|
| 238 |
+
{ x: 0.3, y: 0.7 }, { x: 0.7, y: 0.7 },
|
| 239 |
+
{ x: 0.45, y: 0.8 }, { x: 0.55, y: 0.8 }
|
| 240 |
+
],
|
| 241 |
+
cityscape: [
|
| 242 |
+
{ x: 0.1, y: 0.4 }, { x: 0.2, y: 0.3 }, { x: 0.3, y: 0.5 }, { x: 0.4, y: 0.4 }, { x: 0.5, y: 0.3 }, { x: 0.6, y: 0.4 }, { x: 0.7, y: 0.3 }, { x: 0.8, y: 0.4 }, { x: 0.9, y: 0.3 },
|
| 243 |
+
{ x: 0.1, y: 0.7 }, { x: 0.2, y: 0.6 }, { x: 0.3, y: 0.7 }, { x: 0.4, y: 0.6 }, { x: 0.5, y: 0.7 }, { x: 0.6, y: 0.6 }, { x: 0.7, y: 0.7 }, { x: 0.8, y: 0.6 }, { x: 0.9, y: 0.7 },
|
| 244 |
+
{ x: 0.15, y: 0.4 }, { x: 0.15, y: 0.7 },
|
| 245 |
+
{ x: 0.25, y: 0.3 }, { x: 0.25, y: 0.6 },
|
| 246 |
+
{ x: 0.35, y: 0.5 }, { x: 0.35, y: 0.7 },
|
| 247 |
+
{ x: 0.45, y: 0.3 }, { x: 0.45, y: 0.7 },
|
| 248 |
+
{ x: 0.55, y: 0.3 }, { x: 0.55, y: 0.7 },
|
| 249 |
+
{ x: 0.65, y: 0.3 }, { x: 0.65, y: 0.7 },
|
| 250 |
+
{ x: 0.75, y: 0.3 }, { x: 0.75, y: 0.7 },
|
| 251 |
+
{ x: 0.85, y: 0.3 }, { x: 0.85, y: 0.7 }
|
| 252 |
+
],
|
| 253 |
+
circuit: [
|
| 254 |
+
{ x: 0.2, y: 0.2 }, { x: 0.8, y: 0.2 }, { x: 0.8, y: 0.8 }, { x: 0.2, y: 0.8 }, { x: 0.2, y: 0.2 },
|
| 255 |
+
{ x: 0.4, y: 0.4 }, { x: 0.6, y: 4 }, { x: 0.6, y: 0.6 }, { x: 0.4, y: 0.6 }, { x: 0.4, y: 0.4 },
|
| 256 |
+
{ x: 0.5, y: 0.2 }, { x: 0.5, y: 0.8 },
|
| 257 |
+
{ x: 0.2, y: 0.5 }, { x: 0.8, y: 0.5 },
|
| 258 |
+
{ x: 0.3, y: 0.3 }, { x: 0.7, y: 0.3 }, { x: 0.7, y: 0.7 }, { x: 0.3, y: 0.7 },
|
| 259 |
+
{ x: 0.2, y: 0.2 }, { x: 0.8, y: 0.2 }, { x: 0.8, y: 0.8 }, { x: 0.2, y: 0.8 }
|
| 260 |
+
]
|
| 261 |
+
};
|
| 262 |
+
|
| 263 |
+
let currentShape = 'building';
|
| 264 |
+
let shapeIndex = 0;
|
| 265 |
+
const shapeNames = Object.keys(shapes);
|
| 266 |
+
|
| 267 |
+
function morphShape() {
|
| 268 |
+
currentShape = shapeNames[shapeIndex];
|
| 269 |
+
shapeIndex = (shapeIndex + 1) % shapeNames.length;
|
| 270 |
|
| 271 |
+
// Update the dots positions to form the new shape
|
| 272 |
+
if (window.vantaEffect && window.vantaEffect.setOptions) {
|
| 273 |
+
const targetPositions = shapes[currentShape];
|
| 274 |
+
window.vantaEffect.setOptions({
|
| 275 |
+
size: 2.5,
|
| 276 |
+
spacing: 35,
|
| 277 |
+
showLines: true,
|
| 278 |
+
points: targetPositions
|
| 279 |
+
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 280 |
}
|
| 281 |
}
|
| 282 |
+
|
| 283 |
+
// Change shape every 6 seconds
|
| 284 |
+
setInterval(morphShape, 6000);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 285 |
// Initialize countdown to January 1, 2026 at 12:00
|
| 286 |
const countdownDate = new Date('January 1, 2026 12:00:00');
|
| 287 |
function updateCountdown() {
|