diff --git a/site/config/config.php b/site/config/config.php index c556463..cbb056b 100644 --- a/site/config/config.php +++ b/site/config/config.php @@ -1,14 +1,113 @@ true, - 'languages' => true, + // Debug mode (désactiver en production) + 'debug' => true, + // Panel configuration 'panel' => [ - 'css' => 'assets/css/custom-panel.css', + 'css' => 'assets/css/custom-panel.css', 'theme' => 'dark', - 'menu' => require __DIR__ . '/menu.php', + // Menu personnalisé du panel + 'menu' => [ + 'site' => [ + 'label' => 'Données partagées', + 'icon' => 'cog', + 'current' => function (string $current): bool { + $path = Kirby\Cms\App::instance()->path(); + return Str::contains($path, '/site'); + } + ], + '-', // Séparateur + 'home' => [ + 'label' => 'Accueil', + 'icon' => 'home', + 'link' => 'pages/home', + 'current' => function (string $current): bool { + $path = Kirby\Cms\App::instance()->path(); + return Str::contains($path, 'pages/home'); + } + ], + 'expertise' => [ + 'label' => 'Expertise', + 'icon' => 'wand', + 'link' => 'pages/expertise', + 'current' => function (string $current): bool { + $path = Kirby\Cms\App::instance()->path(); + return Str::contains($path, 'pages/expertise'); + } + ], + 'portfolio' => [ + 'label' => 'Portfolio', + 'icon' => 'images', + 'link' => 'pages/portfolio', + 'current' => function (string $current): bool { + $path = Kirby\Cms\App::instance()->path(); + return Str::contains($path, 'pages/portfolio'); + } + ], + 'jouer' => [ + 'label' => 'Jouer', + 'icon' => 'play', + 'link' => 'pages/jouer', + 'current' => function (string $current): bool { + $path = Kirby\Cms\App::instance()->path(); + return Str::contains($path, 'pages/jouer'); + } + ], + 'a-propos' => [ + 'label' => 'À propos', + 'icon' => 'users', + 'link' => 'pages/a-propos', + 'current' => function (string $current): bool { + $path = Kirby\Cms\App::instance()->path(); + return Str::contains($path, 'pages/a-propos'); + } + ], + 'blog' => [ + 'label' => 'Blog', + 'icon' => 'text', + 'link' => 'pages/blog', + 'current' => function (string $current): bool { + $path = Kirby\Cms\App::instance()->path(); + return Str::contains($path, 'pages/blog'); + } + ], + '-', // Séparateur + 'users', + 'system' + ] ], - 'thumbs' => require __DIR__ . '/thumbs.php', -]; + // Langues + 'languages' => true, + + // Thumbs + 'thumbs' => [ + 'quality' => 80, + 'srcsets' => [ + 'default' => [ + '300w' => ['width' => 300], + '600w' => ['width' => 600], + '900w' => ['width' => 900], + '1200w' => ['width' => 1200], + ], + // Galerie portfolio — desktop ~15vw, mobile ~33vw (3 colonnes) + // Widths couvrent 1x et 2x retina pour les deux breakpoints + 'gallery' => [ + '200w' => ['width' => 200], + '300w' => ['width' => 300], + '400w' => ['width' => 400], + '600w' => ['width' => 600], + '800w' => ['width' => 800], + ], + 'gallery-webp' => [ + '200w' => ['width' => 200, 'format' => 'webp'], + '300w' => ['width' => 300, 'format' => 'webp'], + '400w' => ['width' => 400, 'format' => 'webp'], + '600w' => ['width' => 600, 'format' => 'webp'], + '800w' => ['width' => 800, 'format' => 'webp'], + ], + ], + ], +]; \ No newline at end of file diff --git a/site/config/menu.php b/site/config/menu.php deleted file mode 100644 index ab988d0..0000000 --- a/site/config/menu.php +++ /dev/null @@ -1,36 +0,0 @@ - $label, - 'icon' => $icon, - 'link' => $link, - 'current' => function () use ($link): bool { - return Str::contains(Kirby\Cms\App::instance()->path(), $link); - }, - ]; -} - -return [ - 'site' => [ - 'label' => 'Données partagées', - 'icon' => 'cog', - 'current' => function (): bool { - return Str::contains(Kirby\Cms\App::instance()->path(), '/site'); - }, - ], - '-', - 'home' => menuItem('home', 'Accueil', 'home', 'pages/home'), - 'expertise' => menuItem('expertise', 'Expertise','wand', 'pages/expertise'), - 'portfolio' => menuItem('portfolio', 'Portfolio','images', 'pages/portfolio'), - 'jouer' => menuItem('jouer', 'Jouer', 'play', 'pages/jouer'), - 'a-propos' => menuItem('a-propos', 'À propos', 'users', 'pages/a-propos'), - 'blog' => menuItem('blog', 'Blog', 'text', 'pages/blog'), - '-', - 'users', - 'system', -]; diff --git a/site/config/thumbs.php b/site/config/thumbs.php deleted file mode 100644 index 8d0c22a..0000000 --- a/site/config/thumbs.php +++ /dev/null @@ -1,54 +0,0 @@ - largeur_px]. - * Applique le multiplicateur et optionnellement un format (ex: 'webp'). - */ -function srcsetPreset(array $widths, float $mult, ?string $format = null): array -{ - $preset = []; - foreach ($widths as $label => $px) { - $entry = ['width' => (int) round($px * $mult)]; - if ($format !== null) { - $entry['format'] = $format; - } - $preset[$label] = $entry; - } - return $preset; -} - -/** - * Génère une paire de presets (original + webp) depuis un tableau de widths. - * Retourne ['name' => [...], 'name-webp' => [...]]. - */ -function srcsetPair(string $name, array $widths, float $mult): array -{ - return [ - $name => srcsetPreset($widths, $mult), - $name . '-webp' => srcsetPreset($widths, $mult, 'webp'), - ]; -} - -// Multiplicateur global (ex: 1.5 pour avoir de la marge sur les écrans Retina) -$m = 1.5; - -// Définition des widths par usage (une seule fois) -$widths = [ - 'default' => ['300w' => 300, '600w' => 600, '900w' => 900, '1200w' => 1200], - // Galerie portfolio — desktop ~15vw, mobile ~33vw (3 colonnes) - 'gallery' => ['200w' => 200, '300w' => 300, '400w' => 400, '600w' => 600, '800w' => 800], - // Mockup portfolio — desktop ~25vw, mobile ~90vw - 'mockup' => ['350w' => 350, '480w' => 480, '700w' => 700, '960w' => 960], - // Vignettes jeux — active: clamp(170px, 18.41vw, 355px) - 'thumbnail' => ['170w' => 170, '255w' => 255, '355w' => 355, '510w' => 510, '710w' => 710], -]; - -return [ - 'quality' => 80, - 'srcsets' => array_merge( - ['default' => srcsetPreset($widths['default'], $m)], - srcsetPair('gallery', $widths['gallery'], $m), - srcsetPair('mockup', $widths['mockup'], $m), - srcsetPair('thumbnail', $widths['thumbnail'], $m), - ), -]; diff --git a/site/templates/play.json.php b/site/templates/play.json.php index 3cf86ec..feeb766 100644 --- a/site/templates/play.json.php +++ b/site/templates/play.json.php @@ -8,8 +8,6 @@ $specificData = [ 'lettering' => $game->lettering()->toFile()?->url(), 'description' => $game->description()->value(), 'thumbnail' => $game->thumbnail()->toFile()?->url(), - 'thumbnailSrcset' => $game->thumbnail()->toFile()?->srcset('thumbnail'), - 'thumbnailWebp' => $game->thumbnail()->toFile()?->srcset('thumbnail-webp'), 'backgroundColor' => $game->backgroundColor()->value() ?: null, 'preview' => $game->preview()->toFile()?->url(), 'playLink' => $game->playLink()->value() ?: null, diff --git a/site/templates/portfolio.json.php b/site/templates/portfolio.json.php index 825bfd4..e2fc5f7 100644 --- a/site/templates/portfolio.json.php +++ b/site/templates/portfolio.json.php @@ -15,8 +15,6 @@ $specificData = [ 'webp' => $f->srcset('gallery-webp'), ])->values(), 'mockup' => $project->mockup()->toFile()?->url(), - 'mockupSrcset' => $project->mockup()->toFile()?->srcset('mockup'), - 'mockupWebp' => $project->mockup()->toFile()?->srcset('mockup-webp'), 'galleryBackgroundColor' => $project->galleryBackgroundColor()->value(), 'keywords' => $project->keywords()->toStructure()->map(fn($i) => [ 'label' => $i->label()->value(), diff --git a/src/components/ui/ResponsivePicture.svelte b/src/components/ui/ResponsivePicture.svelte deleted file mode 100644 index 74f6b04..0000000 --- a/src/components/ui/ResponsivePicture.svelte +++ /dev/null @@ -1,28 +0,0 @@ - - - - {#if webp} - - {/if} - - diff --git a/src/views/Play.svelte b/src/views/Play.svelte index 8c25c97..3700179 100644 --- a/src/views/Play.svelte +++ b/src/views/Play.svelte @@ -1,7 +1,6 @@