diff --git a/src/components/astro/ColCentre.astro b/src/components/astro/ColCentre.astro index 0158e07..1f1f25b 100644 --- a/src/components/astro/ColCentre.astro +++ b/src/components/astro/ColCentre.astro @@ -6,9 +6,9 @@ import ChatbotV2 from '../vue/ChatbotV2.vue'; import IframeCarteAEP from './IframeCarteAEP.astro'; import ScrollArticles from './ScrollArticles.astro'; --- -
+
-
+
+ + +
@@ -66,6 +76,39 @@ import ScrollArticles from './ScrollArticles.astro';
diff --git a/src/components/vue/SwipeContainer.vue b/src/components/vue/SwipeContainer.vue index 49b08f8..f0419c2 100644 --- a/src/components/vue/SwipeContainer.vue +++ b/src/components/vue/SwipeContainer.vue @@ -22,12 +22,17 @@ const resetFade = () => { }, 3000); }; +const emitPositionChange = (pos: number) => { + document.dispatchEvent(new CustomEvent('swipe-position-change', { detail: { pos } })); +}; + onMounted(() => { if (!emblaApi.value) return; emblaApi.value.on('select', () => { if (!emblaApi.value) return; selectedIndex.value = emblaApi.value.selectedScrollSnap(); sessionStorage.setItem('pc-position', String(selectedIndex.value)); + emitPositionChange(selectedIndex.value); resetFade(); }); const saved = sessionStorage.getItem('pc-position'); @@ -35,6 +40,13 @@ onMounted(() => { const idx = Number(saved); if (!Number.isNaN(idx)) emblaApi.value.scrollTo(idx, false); } + // Ecoute les clics de la MobileTabBar + document.addEventListener('mobile-tab-scroll', (e: Event) => { + const detail = (e as CustomEvent<{ pos: number }>).detail; + if (detail && typeof detail.pos === 'number') { + emblaApi.value?.scrollTo(detail.pos); + } + }); resetFade(); }); diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro index bde0144..213d45c 100644 --- a/src/layouts/BaseLayout.astro +++ b/src/layouts/BaseLayout.astro @@ -9,7 +9,7 @@ interface Props { const { title = 'trans-former.fr', - description = 'Page-cerveau : journal, mindmap AEP, Insta', + description = "Architecture d'ecologie politique - journal, carte conceptuelle, manifeste", } = Astro.props; --- diff --git a/src/pages/index.astro b/src/pages/index.astro index 71a5031..6e3ca82 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -7,10 +7,12 @@ import ColCentre from '../components/astro/ColCentre.astro'; import ColInsta from '../components/astro/ColInsta.astro'; import SwipeContainer from '../components/vue/SwipeContainer.vue'; import HamburgerMenu from '../components/astro/HamburgerMenu.astro'; +import MobileTabBar from '../components/astro/MobileTabBar.astro'; import PopupOnboarding from '../components/astro/PopupOnboarding.astro'; --- + @@ -20,8 +22,8 @@ import PopupOnboarding from '../components/astro/PopupOnboarding.astro';
- -
+ +
diff --git a/src/styles/global.css b/src/styles/global.css index f1d8c73..60b87f6 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -1 +1,23 @@ @import "tailwindcss"; + +/* Typographie monospace - labels editoriaux (V1.1-G.1) */ +.font-mono-editorial, +.hashtag-label, +.nature-badge, +.carte-o-label { + font-family: 'Courier New', Courier, monospace; +} + +/* Corps de texte pages statiques (V1.1-G.2) */ +.prose-page { + font-size: 1.0625rem; + line-height: 1.75; + color: #374151; + max-width: 65ch; +} +.prose-page h1, .prose-page h2, .prose-page h3 { + color: #111827; + font-weight: 600; + line-height: 1.3; +} +