So many stuphs

This commit is contained in:
2026-01-20 16:18:31 +01:00
parent e07200e424
commit af9a4bf851
39 changed files with 586 additions and 39 deletions

View File

@ -0,0 +1,7 @@
data: { }
size: 1078
last_modified: 1768916584
width: '1697'
height: '1870'
mime_type: image/svg+xml
duration: null

View File

@ -0,0 +1,7 @@
data: { }
size: 44375
last_modified: 1768916437
width: '1388.712891'
height: '475.344849'
mime_type: image/svg+xml
duration: null

88
public/assets/js/main.js Normal file
View File

@ -0,0 +1,88 @@
document.addEventListener('DOMContentLoaded', () => {
// Video fixed BG
const reelEl = document.getElementById('reel');
if (!reelEl) return;
const video = reelEl.tagName.toLowerCase() === 'video' ? reelEl : reelEl.querySelector('video');
if (!video) return;
function tryPlay() {
const playPromise = video.play();
if (playPromise !== undefined) {
playPromise.catch(() => {
// Autoplay bloqué : passer en muet et retenter
video.muted = true;
video.play().catch(() => {});
});
}
}
function handleVisibility(visible) {
console.log('Visibility changed, playing:', visible);
if (visible) {
// make visible the video element
video.style.visibility = 'visible';
tryPlay();
}
else {
video.style.visibility = 'hidden';
video.pause();
}
}
if ('IntersectionObserver' in window) {
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
handleVisibility(entry.intersectionRatio >= 0.01);
});
}, { threshold: [0, 0.01, 1] });
observer.observe(reelEl);
} else {
// Fallback simple : vérification sur scroll/resize
let ticking = false;
const check = () => {
ticking = false;
const rect = reelEl.getBoundingClientRect();
const vh = window.innerHeight || document.documentElement.clientHeight;
// Visible si une partie quelconque est dans la fenêtre
const visible = rect.bottom > 0 && rect.top < vh;
handleVisibility(visible);
};
const onScroll = () => {
if (!ticking) {
ticking = true;
requestAnimationFrame(check);
}
};
onScroll();
window.addEventListener('scroll', onScroll, { passive: true });
window.addEventListener('resize', onScroll);
}
document.addEventListener('visibilitychange', () => {
if (document.hidden) video.pause();
});
// Cursor tracking
//track the cursor position and set CSS variables --cursor-x and --cursor-y on the body element
let x = 0;
let y = 0;
document.addEventListener('mousemove', (e) => {
x = Math.round(((e.clientX / window.innerWidth) * 2 - 1) * 10000) / 10000;
y = Math.round(((e.clientY / window.innerHeight) * 2 - 1) * 10000) / 10000;
});
let lastUpdate = 0;
const FRAME_INTERVAL = 1000 / 60;
const updateTwist = (timestamp) => {
if (!timestamp) timestamp = performance.now();
if (timestamp - lastUpdate >= FRAME_INTERVAL) {
document.body.style.setProperty('--cursor-x', x);
document.body.style.setProperty('--cursor-y', y);
lastUpdate = timestamp;
}
requestAnimationFrame(updateTwist);
}
updateTwist();
});

11
public/assets/logo2.svg Normal file
View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="100%" height="100%" viewBox="0 0 1697 1870" version="1.1" xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/"
style="fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5;">
<g>
<path d="M848.439,125c245.079,107.6 485.699,246.522 701.423,404.967c29.355,266.045 29.355,543.888 0,809.933c-215.724,158.445 -456.343,297.367 -701.423,404.967c-245.079,-107.6 -485.699,-246.522 -701.423,-404.967c-29.355,-266.045 -29.355,-543.888 -0,-809.933c215.724,-158.445 456.343,-297.367 701.423,-404.967Z" style="fill:none;stroke:#ffd600;stroke-width:250px;"/>
<path d="M973.439,1409.335l-0,335.531c-0,68.989 -56.011,125 -125,125c-68.989,-0 -125,-56.011 -125,-125l0,-335.531c39.913,10.504 81.808,16.098 125,16.098c43.192,0 85.087,-5.595 125,-16.098Z" style="fill:#ffd600"/>
<circle cx="848.439" cy="934.933" r="349.33" style="fill:#ffd600"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 1.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 43 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 262 KiB

View File

View File

@ -0,0 +1,7 @@
data: { }
size: 260582
last_modified: 1768903789
width: 2048
height: 1365
mime_type: image/jpeg
duration: null

View File

@ -0,0 +1,7 @@
data: { }
size: 216710
last_modified: 1768903790
width: 2048
height: 1365
mime_type: image/jpeg
duration: null

View File

@ -0,0 +1,7 @@
data: { }
size: 264086
last_modified: 1768903791
width: 2048
height: 1365
mime_type: image/jpeg
duration: null

View File

@ -0,0 +1,7 @@
data: { }
size: 212186
last_modified: 1768903792
width: 2048
height: 1365
mime_type: image/jpeg
duration: null

View File

@ -0,0 +1,7 @@
data: { }
size: 200136
last_modified: 1768903792
width: 2048
height: 1365
mime_type: image/jpeg
duration: null

View File

@ -0,0 +1,7 @@
data: { }
size: 93981
last_modified: 1768903793
width: 2048
height: 1365
mime_type: image/jpeg
duration: null

View File

@ -0,0 +1,7 @@
data: { }
size: 170545
last_modified: 1768903794
width: 2048
height: 1365
mime_type: image/jpeg
duration: null

View File

@ -0,0 +1,7 @@
data: { }
size: 269447
last_modified: 1768903795
width: 2048
height: 1365
mime_type: image/jpeg
duration: null

View File

@ -0,0 +1,7 @@
data: { }
size: 399965
last_modified: 1768903795
width: 2048
height: 1365
mime_type: image/jpeg
duration: null

Binary file not shown.

After

Width:  |  Height:  |  Size: 254 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 212 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 207 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 195 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 391 KiB

Binary file not shown.