Compare commits
2 commits
0a346040a2
...
44912c1d2f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
44912c1d2f | ||
|
|
4eb495c021 |
4 changed files with 57 additions and 46 deletions
|
|
@ -55,6 +55,7 @@ columns:
|
||||||
- strike
|
- strike
|
||||||
- clear
|
- clear
|
||||||
- link
|
- link
|
||||||
|
maxlength: 200
|
||||||
playLink:
|
playLink:
|
||||||
label: Lien(s) pour jouer
|
label: Lien(s) pour jouer
|
||||||
help: Laissez vide pour afficher "à venir / coming soon"
|
help: Laissez vide pour afficher "à venir / coming soon"
|
||||||
|
|
|
||||||
|
|
@ -26,9 +26,11 @@
|
||||||
navigation.toggleMenu()
|
navigation.toggleMenu()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const scrollableSlides = new Set(['about', 'blog'])
|
||||||
|
|
||||||
onMount(() => {
|
onMount(() => {
|
||||||
function onScroll(e) {
|
function onScroll(e) {
|
||||||
if (e.target?.classList?.contains('page-scrollable')) {
|
if (e.target?.classList?.contains('page-scrollable') && scrollableSlides.has(slides.active?.id)) {
|
||||||
navigation.setScrolled(e.target.scrollTop > 100)
|
navigation.setScrolled(e.target.scrollTop > 100)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -37,44 +39,46 @@
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<nav class="navbar" class:navbar--open={isMenuOpen} class:navbar--scrolled={isScrolled && !isMenuOpen}>
|
<header>
|
||||||
<a href="/" class="navbar-logo">
|
<nav class="navbar" class:navbar--open={isMenuOpen} class:navbar--scrolled={isScrolled && !isMenuOpen}>
|
||||||
<img src="/assets/img/GIF_world_game_planete.gif" alt="World Game" class="wg-logo" />
|
<a href="/" class="navbar-logo">
|
||||||
</a>
|
<img src="/assets/img/GIF_world_game_planete.gif" alt="World Game" class="wg-logo" />
|
||||||
|
</a>
|
||||||
|
|
||||||
<ul class="navbar-list">
|
<ul class="navbar-list">
|
||||||
{#each menuItems as slide}
|
{#each menuItems as slide}
|
||||||
<li>
|
<li>
|
||||||
<a
|
<a
|
||||||
href={slide.path}
|
href={slide.path}
|
||||||
class="navbar-item"
|
class="navbar-item"
|
||||||
class:active={activeId === slide.id}
|
class:active={activeId === slide.id}
|
||||||
>
|
>
|
||||||
{getTitle(slide)}
|
{getTitle(slide)}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{/each}
|
{/each}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<button
|
<button
|
||||||
class="navbar-toggle"
|
class="navbar-toggle"
|
||||||
onclick={toggleMenu}
|
onclick={toggleMenu}
|
||||||
aria-label={isMenuOpen ? t('close_menu') : t('open_menu')}
|
aria-label={isMenuOpen ? t('close_menu') : t('open_menu')}
|
||||||
aria-expanded={isMenuOpen}
|
aria-expanded={isMenuOpen}
|
||||||
aria-controls="main-menu"
|
aria-controls="main-menu"
|
||||||
>
|
>
|
||||||
<svg width="50" height="50" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
<svg width="50" height="50" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<circle cx="7" cy="7" r="2" fill="white" class="dot dot-tl" />
|
<circle cx="7" cy="7" r="2" fill="white" class="dot dot-tl" />
|
||||||
<circle cx="17" cy="7" r="2" fill="white" class="dot dot-tr" />
|
<circle cx="17" cy="7" r="2" fill="white" class="dot dot-tr" />
|
||||||
<circle cx="7" cy="17" r="2" fill="white" class="dot dot-bl" />
|
<circle cx="7" cy="17" r="2" fill="white" class="dot dot-bl" />
|
||||||
<circle cx="17" cy="17" r="2" fill="white" class="dot dot-br" />
|
<circle cx="17" cy="17" r="2" fill="white" class="dot dot-br" />
|
||||||
<line x1="9" y1="9" x2="15" y2="15" stroke="white" stroke-width="2.5" stroke-linecap="round" class="cross-line" />
|
<line x1="9" y1="9" x2="15" y2="15" stroke="white" stroke-width="2.5" stroke-linecap="round" class="cross-line" />
|
||||||
<line x1="15" y1="9" x2="9" y2="15" stroke="white" stroke-width="2.5" stroke-linecap="round" class="cross-line" />
|
<line x1="15" y1="9" x2="9" y2="15" stroke="white" stroke-width="2.5" stroke-linecap="round" class="cross-line" />
|
||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<Menu />
|
<Menu />
|
||||||
|
</header>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.navbar {
|
.navbar {
|
||||||
|
|
|
||||||
|
|
@ -438,11 +438,21 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.play-featured {
|
.play-featured {
|
||||||
grid-area: 3/2 / span 12 / span 18;
|
grid-area: 6/4/span 12/span 18;
|
||||||
|
justify-content: flex-start;
|
||||||
|
padding: 0 10px;
|
||||||
|
gap: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.play-description {
|
||||||
|
margin-top: .8rem;
|
||||||
|
font-size: var(--font-size-paragraph-mobile);
|
||||||
|
line-height: 1.6;
|
||||||
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
.play-carousel {
|
.play-carousel {
|
||||||
grid-area: 16/2 / span 3 / span 18;
|
grid-area: 14/4 / span 3 / span 13;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
<script>
|
<script>
|
||||||
import { onMount } from 'svelte'
|
import { onMount } from 'svelte'
|
||||||
import { slides } from '@state/slides.svelte'
|
import { slides } from '@state/slides.svelte'
|
||||||
import { navigation } from '@state/navigation.svelte'
|
|
||||||
import { createScrollNav } from '@composables/useScrollNav.svelte.js'
|
import { createScrollNav } from '@composables/useScrollNav.svelte.js'
|
||||||
import GalleryAnimation from '@components/ui/GalleryAnimation.svelte'
|
import GalleryAnimation from '@components/ui/GalleryAnimation.svelte'
|
||||||
import ResponsivePicture from '@components/ui/ResponsivePicture.svelte'
|
import ResponsivePicture from '@components/ui/ResponsivePicture.svelte'
|
||||||
|
|
@ -18,10 +17,6 @@
|
||||||
const backgroundImage = $derived(data?.backgroundImage ?? null)
|
const backgroundImage = $derived(data?.backgroundImage ?? null)
|
||||||
const currentProject = $derived(projects[currentIndex] ?? null)
|
const currentProject = $derived(projects[currentIndex] ?? null)
|
||||||
|
|
||||||
$effect(() => {
|
|
||||||
if (isActive) navigation.setScrolled(currentIndex > 0)
|
|
||||||
})
|
|
||||||
|
|
||||||
// Capture du hash synchrone avant que tout effect puisse le modifier
|
// Capture du hash synchrone avant que tout effect puisse le modifier
|
||||||
const initialHash = window.location.hash.slice(1)
|
const initialHash = window.location.hash.slice(1)
|
||||||
|
|
||||||
|
|
@ -241,10 +236,11 @@
|
||||||
color: var(--color-primary);
|
color: var(--color-primary);
|
||||||
}
|
}
|
||||||
|
|
||||||
.portfolio-description {
|
.portfolio-description :global(p) {
|
||||||
font-size: var(--font-size-subtitle);
|
font-size: var(--font-size-paragraph-mobile);
|
||||||
line-height: 1.5;
|
line-height: 1.4;
|
||||||
opacity: 0.8;
|
opacity: 0.8;
|
||||||
|
letter-spacing: -2%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.portfolio-keywords {
|
.portfolio-keywords {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue