diff --git a/src/app/globals.css b/src/app/globals.css index ccd84e1..37f2bac 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -46,6 +46,31 @@ } } +@keyframes fade-in { + from { + opacity: 0; + transform: translateY(10px); + } + + to { + opacity: 1; + transform: translateY(0); + } +} + +@utility animate-fade-in { + animation: fade-in 0.4s ease-out forwards; +} + @utility animate-float { animation: float 6s ease-in-out infinite; +} + +@utility scrollbar-hide { + -ms-overflow-style: none; + scrollbar-width: none; + + &::-webkit-scrollbar { + display: none; + } } \ No newline at end of file diff --git a/src/app/page.tsx b/src/app/page.tsx index 537f466..340e5a6 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,6 +1,6 @@ 'use client'; -import React, { useState } from 'react'; +import React, { useState, useEffect } from 'react'; import { resolveImage } from '@/data/stitch-images'; export default function Home() { @@ -12,6 +12,85 @@ export default function Home() { }); const [status, setStatus] = useState<'idle' | 'loading' | 'success' | 'error'>('idle'); + const [activeModule, setActiveModule] = useState(0); + const [isMenuOpen, setIsMenuOpen] = useState(false); + + // Lock body scroll when mobile menu is open + useEffect(() => { + if (isMenuOpen) { + document.body.style.overflow = 'hidden'; + } else { + document.body.style.overflow = 'auto'; + } + return () => { document.body.style.overflow = 'auto'; }; + }, [isMenuOpen]); + + const modules = [ + { + id: 'map', + title: 'Cartes & Plans', + icon: 'map', + theme: 'rose', + description: 'Une cartographie interactive ultra-précise pour guider vos visiteurs. Géolocalisation en temps réel, points d’intérêt cliquables et navigation fluide.', + value: 'Améliorez l’orientation et augmentez la satisfaction visiteur.' + }, + { + id: 'quiz', + title: 'Jeux & Quiz', + icon: 'sports_esports', + theme: 'rose', + description: 'Transformez la visite en aventure ludique. Chasses au trésor, quiz de connaissances et parcours gamifiés pour capter l’attention des plus jeunes.', + value: 'Augmentez l’engagement des familles et des scolaires.' + }, + { + id: 'video', + title: 'Audio & Vidéo', + icon: 'videocam', + theme: 'rose', + description: 'Diffusez vos contenus multimédias HD sans latence. Audio-guides immersifs, vidéos documentaires et témoignages d’experts accessibles en un clic.', + value: 'Enrichissez l\'expérience culturelle par le multimédia.' + }, + { + id: 'article', + title: 'Articles & PDF', + icon: 'article', + theme: 'rose', + description: 'Offrez une lecture confortable de vos contenus de fond. Fiches descriptives, brochures PDF et catalogues d’exposition numérisés.', + value: 'Digitalisez vos supports papier sans perte de qualité.' + }, + { + id: 'agenda', + title: 'Agenda & Événements', + icon: 'calendar_month', + theme: 'rose', + description: 'Gérez dynamiquement votre programmation. Expositions temporaires, conférences ou ateliers : vos visiteurs ne ratent plus rien.', + value: 'Optimisez la fréquentation de vos activités annexes.' + }, + { + id: 'offline', + title: 'Accès Hors Ligne', + icon: 'download_for_offline', + theme: 'rose', + description: 'Éliminez les zones blanches. Permettez le téléchargement automatique des parcours pour une consultation fluide même sans connexion 4G/Wifi.', + value: 'Garantissez un service continu partout sur votre site.' + }, + { + id: 'web', + title: 'Contenu Web & Social', + icon: 'public', + theme: 'rose', + description: 'Intégrez le meilleur du web. Formulaires d’enquête, réseaux sociaux ou liens vers votre billetterie : ouvrez votre app sur le monde.', + value: 'Connectez votre écosystème digital en un seul lieu.' + }, + { + id: 'stats', + title: 'Statistiques & Data', + icon: 'monitoring', + theme: 'rose', + description: 'Analysez le comportement de vos visiteurs. Points d’intérêt populaires, temps de lecture et engagement : pilotez par la donnée.', + value: 'Prenez des décisions éclairées basées sur l’usage réel.' + } + ]; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); @@ -52,16 +131,16 @@ export default function Home() { {/* Top Navigation */}
- + MyInfoMate Logo - MyInfoMate + MyInfoMate -
+
+ {/* Mobile Menu Backdrop */} +
setIsMenuOpen(false)} + /> + + {/* Mobile Menu Sidebar */} +
+
+ {/* Close Button Header */} +
+ +
+ + +
+
+
{/* Hero Section */}
@@ -113,11 +267,11 @@ export default function Home() { */}
-
- {/* UI Mockup Group */} -
+
+ {/* UI Mockup Group - Improved for Mobile */} +
{/* Interactive Map Tablet Preview */} -
+
Modern Interactive Map InterfaceParcours des Sculptures

- {/* Agenda Mobile Preview */} -
+ + {/* Agenda Mobile Preview - Hidden or repositioned on very small screens */} +
-
-

Agenda

+
+

Agenda

-
+
Mockup 1
-
-
+
+ {/* Tours Mobile Preview */} -
+
-
-

Visites

+
+

Visites

-
+
-
+
Mockup 2
-
-
+
+
-
-
- Mockup 3 -
-
-
-
+
@@ -220,71 +369,163 @@ export default function Home() {
- {/* Interactive Modules Section (Feature target) */} -
+ {/* Deployment Modes Section */} +
-

Fonctionnalités & Modules

-

Des modules pour toutes vos envies

+

Modes de déploiement

+

Une plateforme, plusieurs solutions

- Personnalisez l'expérience de vos visiteurs en combinant une large gamme de modules interactifs, gérables en quelques clics via notre interface. + Choisissez le mode de diffusion le plus adapté à votre lieu et à vos visiteurs. MyInfoMate s'adapte à tous les terminaux.

-
- {/* Module 1: Cartes */} -
-
- map +
+ {/* Mode 1: Mobile BYOD */} +
+
+ smartphone
-

Cartes & Plans

-

Géolocalisation précise et plans interactifs pour guider vos visiteurs dans vos enceintes et parcs.

+

Application Mobile (BYOD)

+

Les visiteurs utilisent leur propre smartphone pour accéder à vos parcours en toute liberté.

- {/* Module 2: Jeux & Quiz */} -
-
- sports_esports + {/* Mode 2: Kiosk Tablet */} +
+
+ tablet_android
-

Jeux & Quiz

-

Rendez la culture ludique avec des quiz interactifs et des parcours gamifiés pour les plus jeunes.

+

Mode Kiosk (Tablette)

+

Solution robuste pré-installée sur vos flottes de tablettes pour une expérience guidée et contrôlée.

- {/* Module 3: Audio/Vidéo */} -
-
- videocam + {/* Mode 3: Web App */} +
+
+ language
-

Audio & Vidéo

-

Diffusez vos contenus multimédias HD directement sur les terminaux de vos visiteurs.

+

Application Web

+

Accessible instantanément depuis n'importe quel navigateur moderne, sans installation préalable.

- {/* Module 4: Articles/PDF */} -
-
- article + {/* Mode 4: Future VR/AR */} +
+
+ Bientôt
-

Articles & PDF

-

Fiches descriptives détaillées, brochures PDF et guides de visite numériques.

+
+ view_in_ar +
+

Innovation VR & AR

+

Préparez-vous pour le futur avec des expériences immersives sur Meta Quest et lunettes connectées.

- {/* Module 5: Agenda */} -
-
- calendar_month +
+
+
+ + {/* Interactive Modules Section (Module Explorer) */} +
+
+
+

Fonctionnalités & Modules

+

Explorateur de modules

+

+ Plongez au cœur des possibilités offertes par MyInfoMate. Découvrez comment chaque module transforme l'expérience de vos visiteurs. +

+
+ +
+ {/* Sidebar (Tabs) */} +
+ {/* Mobile scroll hints */} +
+
+ +
+ {modules.map((module, index) => ( + + ))}
-

Agenda & Événements

-

Gérez et affichez dynamiquement vos expositions temporaires et activités programmées.

- {/* Module 6: Web */} -
-
- public + + {/* Main Display (Active Module) */} +
+
+ {/* Content */} +
+
+ {modules[activeModule].icon} + {modules[activeModule].title} +
+

+ {modules[activeModule].title} +

+

+ {modules[activeModule].description} +

+
+

+ verified + Valeur ajoutée : {modules[activeModule].value} +

+
+
+ + {/* Mockup Showcase */} +
+
+ {/* Notch */} +
+ + {/* Content Area (Simulated Screen) */} +
+ {/* Simulation of App UI */} +
+
+
+ {modules[activeModule].icon} +
+ {modules[activeModule].title} +
+
+
+ {modules[activeModule].icon} +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-

Contenu Web

-

Intégrez des flux externes, réseaux sociaux ou formulaires pour une interaction maximale.

{/* White Label / Value Proposition */} -
+
@@ -352,7 +593,7 @@ export default function Home() {
{/* Target Audience */} -
+

Une solution pensée pour vous

@@ -385,7 +626,7 @@ export default function Home() {
{/* Final CTA */} -
+