Migration vers architecture Svelte + Kirby inspirée de design-to-pack

- Mise en place de Svelte 4 avec Vite pour le frontend (SPA)
- Simplification des templates PHP (header/footer minimalistes)
- Création de templates JSON pour API (home, about, expertise, portfolio, jouer, game, blog, article, project)
- Ajout d'un controller de site pour définir genericData globalement
- Structure des stores Svelte (page, navigation, locale, site)
- Router avec navaid pour navigation SPA et interception des liens
- Composants layout (Header, Footer, Cursor) et vues de base
- Build Vite vers assets/dist/ (index.js/css)
- Header PHP détecte assets/dist pour basculer dev/prod

Architecture fonctionnelle de base établie, à améliorer et compléter.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
isUnknown 2026-02-06 16:30:15 +01:00
parent c4456d587c
commit cbe89acb21
53 changed files with 3348 additions and 772 deletions

View file

@ -1,81 +1,2 @@
<?php snippet('header') ?>
<main class="about">
<!-- Intro Section -->
<section class="about__intro">
<h1 class="about__title"><?= $page->intro_title() ?></h1>
<?php if ($page->intro_text()->isNotEmpty()): ?>
<p class="about__subtitle"><?= $page->intro_text() ?></p>
<?php endif ?>
</section>
<!-- Mission Section -->
<?php if ($page->mission_text()->isNotEmpty()): ?>
<section class="about__mission">
<h2 class="about__section-title"><?= $page->mission_title() ?></h2>
<div class="about__section-content">
<?= $page->mission_text()->toBlocks() ?>
</div>
</section>
<?php endif ?>
<!-- Manifesto Section -->
<?php if ($page->manifesto_text()->isNotEmpty()): ?>
<section class="about__manifesto">
<h2 class="about__section-title"><?= $page->manifesto_title() ?></h2>
<div class="about__section-content">
<?= $page->manifesto_text()->toBlocks() ?>
</div>
</section>
<?php endif ?>
<!-- Team Section -->
<?php if ($page->team_members()->isNotEmpty()): ?>
<section class="about__team">
<h2 class="about__section-title"><?= $page->team_title() ?></h2>
<div class="about__team-grid">
<?php foreach ($page->team_members()->toStructure() as $member): ?>
<article class="team-card">
<?php if ($photo = $member->photo()->toFile()): ?>
<div class="team-card__photo">
<img src="<?= $photo->url() ?>" alt="<?= $member->name() ?>">
</div>
<?php endif ?>
<div class="team-card__info">
<h3 class="team-card__name"><?= $member->name() ?></h3>
<p class="team-card__role"><?= $member->role() ?></p>
<?php if ($member->bio()->isNotEmpty()): ?>
<p class="team-card__bio"><?= $member->bio() ?></p>
<?php endif ?>
<div class="team-card__social">
<?php if ($member->linkedin()->isNotEmpty()): ?>
<a href="<?= $member->linkedin() ?>" target="_blank" class="team-card__social-link">
LinkedIn
</a>
<?php endif ?>
<?php if ($member->twitter()->isNotEmpty()): ?>
<a href="<?= $member->twitter() ?>" target="_blank" class="team-card__social-link">
Twitter
</a>
<?php endif ?>
</div>
</div>
</article>
<?php endforeach ?>
</div>
<nav class="about__team-nav">
<button class="about__team-prev">&larr; Précédent</button>
<button class="about__team-next">Suivant &rarr;</button>
</nav>
</section>
<?php endif ?>
</main>
<?php snippet('footer') ?>