Feat: footer sémantique dans Blog, About et Article
All checks were successful
Deploy / Deploy to Production (push) Successful in 19s
All checks were successful
Deploy / Deploy to Production (push) Successful in 19s
Refonte complète du Footer (sémantique propre, données dynamiques depuis le store site, bouton subscribe avec l'animation .button partagée). Intégré dans About, Blog et Article. Scroll-to-top au départ de About et Blog. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
eef95f10d6
commit
0233a6a4a4
4 changed files with 335 additions and 44 deletions
|
|
@ -1,15 +1,24 @@
|
|||
<script>
|
||||
import { fade } from 'svelte/transition'
|
||||
import { slides } from '@state/slides.svelte'
|
||||
import Footer from '@components/layout/Footer.svelte'
|
||||
|
||||
let { data } = $props()
|
||||
|
||||
const intro = $derived(data?.intro || {})
|
||||
const mission = $derived(data?.mission || {})
|
||||
const intro = $derived(data?.intro || {})
|
||||
const mission = $derived(data?.mission || {})
|
||||
const manifesto = $derived(data?.manifesto || {})
|
||||
const team = $derived(data?.team || {})
|
||||
const team = $derived(data?.team || {})
|
||||
const isActive = $derived(slides.active?.id === 'about')
|
||||
|
||||
let sectionEl = $state(null)
|
||||
|
||||
$effect(() => {
|
||||
if (!isActive) sectionEl?.scrollTo(0, 0)
|
||||
})
|
||||
</script>
|
||||
|
||||
<div class="about" transition:fade>
|
||||
<div class="about page-scrollable" bind:this={sectionEl} transition:fade>
|
||||
<section class="about__intro">
|
||||
<h1>{intro.title || data?.title}</h1>
|
||||
{#if intro.text}
|
||||
|
|
@ -61,6 +70,8 @@
|
|||
</div>
|
||||
</section>
|
||||
{/if}
|
||||
|
||||
<Footer />
|
||||
</div>
|
||||
|
||||
<style>
|
||||
|
|
@ -165,6 +176,10 @@
|
|||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.about :global(.site-footer) {
|
||||
margin-left: -2rem;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
.about {
|
||||
padding: 6rem 1rem 3rem;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,8 @@
|
|||
* Vue article — sous-composant de Blog.svelte.
|
||||
* Reçoit les données article via props, pas via le slide system.
|
||||
*/
|
||||
import Footer from '@components/layout/Footer.svelte'
|
||||
|
||||
let { data, onBack } = $props()
|
||||
|
||||
let copySuccess = $state(false)
|
||||
|
|
@ -111,6 +113,8 @@
|
|||
|
||||
</article>
|
||||
|
||||
<Footer />
|
||||
|
||||
<style>
|
||||
.article {
|
||||
grid-area: 6 / 1 / span 10 / span 20;
|
||||
|
|
|
|||
|
|
@ -307,6 +307,10 @@
|
|||
opacity: 0.6;
|
||||
}
|
||||
|
||||
.blog :global(.site-footer) {
|
||||
margin-left: -50px;
|
||||
}
|
||||
|
||||
/* --- Mobile --- */
|
||||
@media (max-width: 700px) {
|
||||
.blog-header {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue