diff --git a/content/collections/pages/home.md b/content/collections/pages/home.md index 1b891df..e2824fe 100644 --- a/content/collections/pages/home.md +++ b/content/collections/pages/home.md @@ -5,7 +5,51 @@ title: Home template: home author: 5a7338bf-56d2-42b5-8ad0-7459a1fd8152 updated_by: cf207a21-df92-4f9c-b7c7-897476d8f464 -updated_at: 1768582791 +updated_at: 1768920692 +incentives: + - + id: mki632jb + title: 'La passion' + photo: photos/281778626_4931888353605870_7813049969954003479_n.jpg + type: new_set + enabled: true + description: "Un événement ouvert à tous, préparé avec soin par des passionnés de l'arcade et leurs partenaires." + - + id: mki663w4 + title: 'Jouez !' + description: "Plus de 150 bornes d'arcade, flippers et consoles jouables. Asseyez-vous, appuyez sur Start et jouez." + photo: photos/281793708_4931882706939768_4324019732770432906_n.jpg + type: new_set + enabled: true +faqs: + - + id: mki6e5k9 + question: 'Comment venir en voiture ?' + reponse: 'La Halle des Expositions est accessible en voiture, avec un immense parking gratuit.' + type: new_set + enabled: true + - + id: mki6evuc + question: 'Comment covoiturer ?' + reponse: 'Trouvez des membres de la communauté prêts a covoiturer sur les section dédiée de notre Discord ou de notre Forum' + type: new_set + enabled: true + - + id: mkmpp638 + question: "C'est quoi les stuffs ?" + reponse: 'Yes, plein de stuffs prévus, tkt.' + type: new_set + enabled: true +photos: + - photos/281778626_4931888353605870_7813049969954003479_n.jpg + - photos/281793708_4931882706939768_4324019732770432906_n.jpg + - photos/284832953_4931927650268607_8739260868128483435_n.jpg + - photos/285062150_4931910786936960_5968892299195866434_n.jpg + - photos/285075253_4931885803606125_1155924220656654592_n.jpg + - photos/285087203_4931892853605420_3487044591746673023_n.jpg + - photos/285087963_4931900290271343_5781674078948662898_n.jpg + - photos/285129975_4931884353606270_9099815639564787952_n.jpg + - photos/285133824_4931922866935752_1400404880920508743_n.jpg content: - type: paragraph diff --git a/content/globals/hfs.yaml b/content/globals/hfs.yaml index 27a7ae5..f89f051 100644 --- a/content/globals/hfs.yaml +++ b/content/globals/hfs.yaml @@ -1,3 +1,7 @@ -title: hfs +title: HFS data: - logo: logo_black.svg + logo: logo_black_no_logo_v2.svg + date_start: '2026-05-29' + date_end: '2026-05-31' + place: 'Halle des Expositions, Evreux' + lien_billetterie: 'https://www.billetweb.fr/hfs-summer-2026' diff --git a/public/assets/.meta/logo2.svg.yaml b/public/assets/.meta/logo2.svg.yaml new file mode 100644 index 0000000..3dd73a7 --- /dev/null +++ b/public/assets/.meta/logo2.svg.yaml @@ -0,0 +1,7 @@ +data: { } +size: 1078 +last_modified: 1768916584 +width: '1697' +height: '1870' +mime_type: image/svg+xml +duration: null diff --git a/public/assets/.meta/logo_black_no_logo_v2.svg.yaml b/public/assets/.meta/logo_black_no_logo_v2.svg.yaml new file mode 100644 index 0000000..6d902b6 --- /dev/null +++ b/public/assets/.meta/logo_black_no_logo_v2.svg.yaml @@ -0,0 +1,7 @@ +data: { } +size: 44375 +last_modified: 1768916437 +width: '1388.712891' +height: '475.344849' +mime_type: image/svg+xml +duration: null diff --git a/public/assets/js/main.js b/public/assets/js/main.js new file mode 100644 index 0000000..3777a43 --- /dev/null +++ b/public/assets/js/main.js @@ -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(); + +}); diff --git a/public/assets/logo2.svg b/public/assets/logo2.svg new file mode 100644 index 0000000..491c256 --- /dev/null +++ b/public/assets/logo2.svg @@ -0,0 +1,11 @@ + + diff --git a/public/assets/logo2_black.svg b/public/assets/logo2_black.svg new file mode 100644 index 0000000..80c258d --- /dev/null +++ b/public/assets/logo2_black.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/assets/logo_black_no_logo_v2.svg b/public/assets/logo_black_no_logo_v2.svg new file mode 100644 index 0000000..a48ddb8 --- /dev/null +++ b/public/assets/logo_black_no_logo_v2.svg @@ -0,0 +1,4 @@ + + diff --git a/public/assets/pattern.svg b/public/assets/pattern.svg new file mode 100644 index 0000000..3cda998 --- /dev/null +++ b/public/assets/pattern.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/public/assets/photos/.gitkeep b/public/assets/photos/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/public/assets/photos/.meta/281778626_4931888353605870_7813049969954003479_n.jpg.yaml b/public/assets/photos/.meta/281778626_4931888353605870_7813049969954003479_n.jpg.yaml new file mode 100644 index 0000000..662ed85 --- /dev/null +++ b/public/assets/photos/.meta/281778626_4931888353605870_7813049969954003479_n.jpg.yaml @@ -0,0 +1,7 @@ +data: { } +size: 260582 +last_modified: 1768903789 +width: 2048 +height: 1365 +mime_type: image/jpeg +duration: null diff --git a/public/assets/photos/.meta/281793708_4931882706939768_4324019732770432906_n.jpg.yaml b/public/assets/photos/.meta/281793708_4931882706939768_4324019732770432906_n.jpg.yaml new file mode 100644 index 0000000..6d7b583 --- /dev/null +++ b/public/assets/photos/.meta/281793708_4931882706939768_4324019732770432906_n.jpg.yaml @@ -0,0 +1,7 @@ +data: { } +size: 216710 +last_modified: 1768903790 +width: 2048 +height: 1365 +mime_type: image/jpeg +duration: null diff --git a/public/assets/photos/.meta/284832953_4931927650268607_8739260868128483435_n.jpg.yaml b/public/assets/photos/.meta/284832953_4931927650268607_8739260868128483435_n.jpg.yaml new file mode 100644 index 0000000..bd04b89 --- /dev/null +++ b/public/assets/photos/.meta/284832953_4931927650268607_8739260868128483435_n.jpg.yaml @@ -0,0 +1,7 @@ +data: { } +size: 264086 +last_modified: 1768903791 +width: 2048 +height: 1365 +mime_type: image/jpeg +duration: null diff --git a/public/assets/photos/.meta/285062150_4931910786936960_5968892299195866434_n.jpg.yaml b/public/assets/photos/.meta/285062150_4931910786936960_5968892299195866434_n.jpg.yaml new file mode 100644 index 0000000..b0a395c --- /dev/null +++ b/public/assets/photos/.meta/285062150_4931910786936960_5968892299195866434_n.jpg.yaml @@ -0,0 +1,7 @@ +data: { } +size: 212186 +last_modified: 1768903792 +width: 2048 +height: 1365 +mime_type: image/jpeg +duration: null diff --git a/public/assets/photos/.meta/285075253_4931885803606125_1155924220656654592_n.jpg.yaml b/public/assets/photos/.meta/285075253_4931885803606125_1155924220656654592_n.jpg.yaml new file mode 100644 index 0000000..38597ab --- /dev/null +++ b/public/assets/photos/.meta/285075253_4931885803606125_1155924220656654592_n.jpg.yaml @@ -0,0 +1,7 @@ +data: { } +size: 200136 +last_modified: 1768903792 +width: 2048 +height: 1365 +mime_type: image/jpeg +duration: null diff --git a/public/assets/photos/.meta/285087203_4931892853605420_3487044591746673023_n.jpg.yaml b/public/assets/photos/.meta/285087203_4931892853605420_3487044591746673023_n.jpg.yaml new file mode 100644 index 0000000..12cc0db --- /dev/null +++ b/public/assets/photos/.meta/285087203_4931892853605420_3487044591746673023_n.jpg.yaml @@ -0,0 +1,7 @@ +data: { } +size: 93981 +last_modified: 1768903793 +width: 2048 +height: 1365 +mime_type: image/jpeg +duration: null diff --git a/public/assets/photos/.meta/285087963_4931900290271343_5781674078948662898_n.jpg.yaml b/public/assets/photos/.meta/285087963_4931900290271343_5781674078948662898_n.jpg.yaml new file mode 100644 index 0000000..c7cac59 --- /dev/null +++ b/public/assets/photos/.meta/285087963_4931900290271343_5781674078948662898_n.jpg.yaml @@ -0,0 +1,7 @@ +data: { } +size: 170545 +last_modified: 1768903794 +width: 2048 +height: 1365 +mime_type: image/jpeg +duration: null diff --git a/public/assets/photos/.meta/285129975_4931884353606270_9099815639564787952_n.jpg.yaml b/public/assets/photos/.meta/285129975_4931884353606270_9099815639564787952_n.jpg.yaml new file mode 100644 index 0000000..9c612f9 --- /dev/null +++ b/public/assets/photos/.meta/285129975_4931884353606270_9099815639564787952_n.jpg.yaml @@ -0,0 +1,7 @@ +data: { } +size: 269447 +last_modified: 1768903795 +width: 2048 +height: 1365 +mime_type: image/jpeg +duration: null diff --git a/public/assets/photos/.meta/285133824_4931922866935752_1400404880920508743_n.jpg.yaml b/public/assets/photos/.meta/285133824_4931922866935752_1400404880920508743_n.jpg.yaml new file mode 100644 index 0000000..44bccb1 --- /dev/null +++ b/public/assets/photos/.meta/285133824_4931922866935752_1400404880920508743_n.jpg.yaml @@ -0,0 +1,7 @@ +data: { } +size: 399965 +last_modified: 1768903795 +width: 2048 +height: 1365 +mime_type: image/jpeg +duration: null diff --git a/public/assets/photos/281778626_4931888353605870_7813049969954003479_n.jpg b/public/assets/photos/281778626_4931888353605870_7813049969954003479_n.jpg new file mode 100644 index 0000000..f14947a Binary files /dev/null and b/public/assets/photos/281778626_4931888353605870_7813049969954003479_n.jpg differ diff --git a/public/assets/photos/281793708_4931882706939768_4324019732770432906_n.jpg b/public/assets/photos/281793708_4931882706939768_4324019732770432906_n.jpg new file mode 100644 index 0000000..7d10675 Binary files /dev/null and b/public/assets/photos/281793708_4931882706939768_4324019732770432906_n.jpg differ diff --git a/public/assets/photos/284832953_4931927650268607_8739260868128483435_n.jpg b/public/assets/photos/284832953_4931927650268607_8739260868128483435_n.jpg new file mode 100644 index 0000000..7568105 Binary files /dev/null and b/public/assets/photos/284832953_4931927650268607_8739260868128483435_n.jpg differ diff --git a/public/assets/photos/285062150_4931910786936960_5968892299195866434_n.jpg b/public/assets/photos/285062150_4931910786936960_5968892299195866434_n.jpg new file mode 100644 index 0000000..00349bf Binary files /dev/null and b/public/assets/photos/285062150_4931910786936960_5968892299195866434_n.jpg differ diff --git a/public/assets/photos/285075253_4931885803606125_1155924220656654592_n.jpg b/public/assets/photos/285075253_4931885803606125_1155924220656654592_n.jpg new file mode 100644 index 0000000..823503d Binary files /dev/null and b/public/assets/photos/285075253_4931885803606125_1155924220656654592_n.jpg differ diff --git a/public/assets/photos/285087203_4931892853605420_3487044591746673023_n.jpg b/public/assets/photos/285087203_4931892853605420_3487044591746673023_n.jpg new file mode 100644 index 0000000..8d4b353 Binary files /dev/null and b/public/assets/photos/285087203_4931892853605420_3487044591746673023_n.jpg differ diff --git a/public/assets/photos/285087963_4931900290271343_5781674078948662898_n.jpg b/public/assets/photos/285087963_4931900290271343_5781674078948662898_n.jpg new file mode 100644 index 0000000..367a66f Binary files /dev/null and b/public/assets/photos/285087963_4931900290271343_5781674078948662898_n.jpg differ diff --git a/public/assets/photos/285129975_4931884353606270_9099815639564787952_n.jpg b/public/assets/photos/285129975_4931884353606270_9099815639564787952_n.jpg new file mode 100644 index 0000000..00908d1 Binary files /dev/null and b/public/assets/photos/285129975_4931884353606270_9099815639564787952_n.jpg differ diff --git a/public/assets/photos/285133824_4931922866935752_1400404880920508743_n.jpg b/public/assets/photos/285133824_4931922866935752_1400404880920508743_n.jpg new file mode 100644 index 0000000..4668d2c Binary files /dev/null and b/public/assets/photos/285133824_4931922866935752_1400404880920508743_n.jpg differ diff --git a/public/assets/video/reel.mp4 b/public/assets/video/reel.mp4 new file mode 100644 index 0000000..7316b5b Binary files /dev/null and b/public/assets/video/reel.mp4 differ diff --git a/public/css/site.css b/public/css/site.css index c177af7..18ba9df 100644 --- a/public/css/site.css +++ b/public/css/site.css @@ -1,14 +1,140 @@ @import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap'); -/*Bulma variables override*/ +/*Bulma variables override and hacks*/ :root{ --bulma-primary-h: 50deg; --bulma-primary-l: 50%; + --bulma-scheme-h: 0; + --bulma-scheme-s: 0%; + --bulma-scheme-l: 6%; + --bulma-body-line-height: 1; + --bulma-black-h: 0; + --bulma-black-s: 0%; + --bulma-black-l: 6%; } +.has-text-weight-bold { + font-weight: 600 !important; +} +.has-text-weight-bolder { + font-weight: 1000 !important; +} +html{ + scroll-behavior: smooth; + scrollbar-color: var(--bulma-background) var(--bulma-primary); +} +body{ + --cursor-x:0; + --cursor-y:0; +} +#nav{ + --bulma-navbar-item-img-max-height: 2.5rem; +} +#hero{ + justify-content:center; +} +#hero .hero-body{ + flex-direction: column;flex-grow:0; +} +/* -----------------------------------------------*/ /*Custom classes*/ -video{ +#nav{ + background: transparent; + mix-blend-mode: difference; +} + +#hero::before{ + background:url('/assets/pattern.svg'); + content:''; + position:absolute; + top:-100px; + left:-100px; + width:calc(100% + 200px); + height:calc(100% + 200px); + opacity:0.04; +} + +#reel{ width:100%; + height:100vh; + position: relative; + background: none; +} +video{ + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + height:100vh; + width:100%; + object-fit: cover; + z-index:-20; +} +.squircle{ + border-radius: 50%; + corner-shape: squircle; + aspect-ratio: 1; +} +#gallery{ + position:relative; +} +.photo{ + background: var(--bulma-white); + padding:1rem; + cursor:pointer; +} +.photo.full{ + position:absolute; + top:0; + height:100vh; + padding:2rem; +} +/*#tournaments*/ +.tournament-block{ + display:grid; + place-items: center; + transition: transform 0.3s ease-out; +} +.tournament-block img{ + transition: transform 0.3s ease-out; +} +.tournament-block:hover img{ + transform: scale(1.2); +} +.tournament-block:hover{ + transform: scale(0.9); +} + +/*Twist animation*/ +.twist{ + /* 3D transform pivot on Y axis*/ + /*transition: transform ease-out;*/ + transform-style: preserve-3d; + transform-origin: center center -100px; + transform: translateZ(-500px) rotateY(calc(20deg * var(--cursor-x))) rotateX(calc(-10deg * var(--cursor-y))); + /*perspective: 1000px;*/ + /*perspective-origin: center;*/ +} +.twist.middle{ + transform: translateZ(0px) rotateY(calc(20deg * var(--cursor-x))) rotateX(calc(-10deg * var(--cursor-y))); +} +.twist-fore{ + transform: translateZ(-100px); +} +/*.twist::after{*/ +/* content: '';*/ +/* position: absolute;*/ +/* top: 50%;*/ +/* left: 50%;*/ +/* background: red;*/ +/* height:20px;*/ +/* width:20px;*/ +/* pointer-events: none;*/ +/* transform: translateZ(200px);*/ +/*}*/ +.twist-fore{ + transform: translateZ(200px); } /*View transition experiments*/ diff --git a/resources/blueprints/collections/pages/page.yaml b/resources/blueprints/collections/pages/page.yaml index 6688293..2071471 100644 --- a/resources/blueprints/collections/pages/page.yaml +++ b/resources/blueprints/collections/pages/page.yaml @@ -4,6 +4,8 @@ tabs: display: Main sections: - + display: Hero + instructions: 'Logo et texte accueil' fields: - handle: title @@ -12,18 +14,78 @@ tabs: required: true validate: - required - - - handle: content - field: - remove_empty_nodes: false - type: bard - display: content - handle: template field: type: template display: Template localizable: true + - + display: 'Main Video' + instructions: "Video loop d'introduction" + fields: + - + handle: video + field: + type: video + display: video + - + display: 'Main text' + instructions: "Gros texte d'accueil" + fields: + - + handle: content + field: + remove_empty_nodes: false + type: bard + display: content + - + display: Incentives + instructions: "Petits blocs de features de l'event" + fields: + - + handle: incentives + field: + type: replicator + display: incentives + sets: + new_set_group: + display: 'New Set Group' + sets: + new_set: + display: 'New Set' + fields: + - + import: event_incentives + - + display: FAQ + fields: + - + handle: faqs + field: + type: replicator + display: FAQs + sets: + new_set_group: + display: 'New Set Group' + sets: + new_set: + display: 'New Set' + fields: + - + import: faq + - + display: Gallery + instructions: 'Les images cools des précédents summers' + fields: + - + handle: photos + field: + mode: grid + container: assets + type: assets + display: Photos + folder: photos sidebar: display: Sidebar sections: diff --git a/resources/blueprints/globals/hfs.yaml b/resources/blueprints/globals/hfs.yaml index 7f82bbf..83e47a5 100644 --- a/resources/blueprints/globals/hfs.yaml +++ b/resources/blueprints/globals/hfs.yaml @@ -3,6 +3,7 @@ tabs: display: Main sections: - + display: Brand fields: - handle: logo @@ -11,3 +12,29 @@ tabs: container: assets type: assets display: Logo + - + display: Summer + fields: + - + handle: date_start + field: + type: date + display: 'Date Start' + - + handle: date_end + field: + type: date + display: 'Date End' + - + handle: place + field: + type: text + display: Place + - + display: BIlletterie + fields: + - + handle: lien_billetterie + field: + type: link + display: 'Lien billetterie' diff --git a/resources/fieldsets/event_incentives.yaml b/resources/fieldsets/event_incentives.yaml new file mode 100644 index 0000000..5d61475 --- /dev/null +++ b/resources/fieldsets/event_incentives.yaml @@ -0,0 +1,25 @@ +title: 'Event incentives' +fields: + - + handle: title + field: + type: text + display: Title + instructions: "Feature de l'event. Ex: Tournois internationaux !" + width: 50 + - + handle: description + field: + type: textarea + display: description + instructions: "Dites en plus sur la feature. Ex: Un événement ouvert à tous, préparé avec soin par des passionnés de l'arcade et leurs partenaires." + width: 50 + - + handle: photo + field: + max_files: 1 + min_files: 1 + container: assets + type: assets + display: photo + folder: photos diff --git a/resources/fieldsets/faq.yaml b/resources/fieldsets/faq.yaml new file mode 100644 index 0000000..812a872 --- /dev/null +++ b/resources/fieldsets/faq.yaml @@ -0,0 +1,14 @@ +title: FAQ +fields: + - + handle: question + field: + type: text + display: Question + instructions: 'Genre : comment on vient en train ?' + - + handle: reponse + field: + type: markdown + display: Reponse + instructions: 'Réponse a la question' diff --git a/resources/views/_incentiveblock.antlers.html b/resources/views/_incentiveblock.antlers.html new file mode 100644 index 0000000..0a88002 --- /dev/null +++ b/resources/views/_incentiveblock.antlers.html @@ -0,0 +1,5 @@ +
{{ description }}
++ {{ hfs:date_start }} - {{ hfs:date_end }} +
+{{ hfs:place }}
{{ reponse }}
+