From 082a17d09bfe1c23c518355f0c86ab049358600c Mon Sep 17 00:00:00 2001 From: Yvv Date: Tue, 3 Mar 2026 04:08:47 +0100 Subject: [PATCH] =?UTF-8?q?Fix=20accueil=20:=20hero=20fade=20doux,=20ic?= =?UTF-8?q?=C3=B4nes=20safelist,=20blocs=20cliquables,=20menu,=20dark=20fo?= =?UTF-8?q?rt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Hero : réécriture composable timeout pur (plus de Transition callbacks) Animation fade opacity 1s très douce, lisible - Icônes : safelist UnoCSS dans nuxt.config.ts (résout pastilles vides) - Menu : mis à jour site.yml (Numérique/Économique/Citoyenne/Événement) - Blocs : card entière cliquable, zone actions séparée (border-top) - Économie du don : lié à /modele-eco (page chapitres préservée) - Tarifs de l'eau : bouton SejeteralO (localhost:3009 / collectivites.librodrome.org) - Dark theme fort : bg 220 12% 15%, surface 19%, surface-light 24% - Config SejeteralO + Glibredecision dans app.config.ts Co-Authored-By: Claude Opus 4.6 --- app/app.config.ts | 9 +- app/assets/css/main.css | 6 +- app/components/home/AxisBlock.vue | 138 +++++++++++++------------ app/components/home/TypewriterText.vue | 88 ++++++---------- app/composables/useTypewriter.ts | 83 +++++++-------- app/pages/gestation/[slug].vue | 11 ++ nuxt.config.ts | 14 +++ site/pages/home.yml | 1 + site/site.yml | 16 ++- 9 files changed, 184 insertions(+), 182 deletions(-) diff --git a/app/app.config.ts b/app/app.config.ts index 287443a..77b52a4 100644 --- a/app/app.config.ts +++ b/app/app.config.ts @@ -6,12 +6,6 @@ export default defineAppConfig({ }, header: { height: '4rem', - nav: [ - { label: 'Numérique', to: '/#numerique' }, - { label: 'Économique', to: '/#economique' }, - { label: 'Citoyenne', to: '/#citoyenne' }, - { label: 'Événement', to: '/evenement' }, - ], }, footer: { credits: '© 2026 Le Librodrome — Productions collectives', @@ -29,4 +23,7 @@ export default defineAppConfig({ libredecision: { url: import.meta.dev ? 'http://localhost:3002' : 'https://decision.laplank.org', }, + sejeteral0: { + url: import.meta.dev ? 'http://localhost:3009' : 'https://collectivites.librodrome.org', + }, }) diff --git a/app/assets/css/main.css b/app/assets/css/main.css index 595b7f9..a5e5974 100644 --- a/app/assets/css/main.css +++ b/app/assets/css/main.css @@ -5,9 +5,9 @@ :root { --color-primary: 18 80% 45%; --color-accent: 32 85% 50%; - --color-bg: 20 10% 10%; - --color-surface: 20 10% 14%; - --color-surface-light: 20 8% 20%; + --color-bg: 220 12% 15%; + --color-surface: 220 10% 19%; + --color-surface-light: 220 8% 24%; --color-text: 0 0% 100%; --color-text-muted: 0 0% 65%; diff --git a/app/components/home/AxisBlock.vue b/app/components/home/AxisBlock.vue index b3deee7..c878792 100644 --- a/app/components/home/AxisBlock.vue +++ b/app/components/home/AxisBlock.vue @@ -3,7 +3,7 @@
-
+

{{ title }}

@@ -16,57 +16,39 @@ class="axis-item card-surface" :class="{ 'axis-item--gestation': item.gestation }" > - -
-
-
- -

- {{ item.label }} - -
- En gestation - -

- -

{{ item.description }}

- - -
- -
- + + + +
+
- - - Découvrir -
@@ -88,6 +70,7 @@ interface AxisItem { gestation?: boolean icon?: string actions?: AxisAction[] + presentation?: { title: string; text: string } } defineProps<{ @@ -108,6 +91,22 @@ function handleAction(id: string) { else if (id === 'open-pdf') emit('open-pdf') else if (id === 'launch-gratewizard') emit('launch-gratewizard') } + +function iconClass(name: string) { + return `i-lucide-${name}` +} + +function itemTag(item: AxisItem) { + if (item.href) return 'a' + if (item.to) return resolveComponent('NuxtLink') + return 'div' +} + +function itemAttrs(item: AxisItem) { + if (item.href) return { href: item.href, target: '_blank', rel: 'noopener noreferrer' } + if (item.to) return { to: item.to } + return {} +} diff --git a/app/components/home/TypewriterText.vue b/app/components/home/TypewriterText.vue index bcb2496..1be2c19 100644 --- a/app/components/home/TypewriterText.vue +++ b/app/components/home/TypewriterText.vue @@ -1,36 +1,25 @@