Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9b3e3f4ba1 | |||
| 1d81682183 | |||
| 516032e31f | |||
| 29904cc551 | |||
| 9029d726ab | |||
| e1c27f7df6 | |||
| bd5c1c520a | |||
| f5d43b118a | |||
| fef3aefc85 | |||
| f8fc5cc1ab | |||
| d6093c0591 | |||
| 0cc922be41 |
45
src/app/chat/page.tsx
Normal file
45
src/app/chat/page.tsx
Normal file
@@ -0,0 +1,45 @@
|
||||
"use client";
|
||||
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||
|
||||
export default function ChatPage() {
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="text-stagger"
|
||||
defaultTextAnimation="entrance-slide"
|
||||
borderRadius="rounded"
|
||||
contentWidth="medium"
|
||||
sizing="medium"
|
||||
background="circleGradient"
|
||||
cardStyle="glass-elevated"
|
||||
primaryButtonStyle="gradient"
|
||||
secondaryButtonStyle="glass"
|
||||
headingFontWeight="normal"
|
||||
>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleFullscreen
|
||||
navItems={[
|
||||
{ name: "Accueil", id: "/" },
|
||||
{ name: "Chat", id: "/chat" },
|
||||
]}
|
||||
brandName="MathIA Chat"
|
||||
/>
|
||||
</div>
|
||||
<main className="container mx-auto p-8 pt-32 min-h-screen flex flex-col md:flex-row gap-8">
|
||||
<div className="flex-1 border border-neutral-800 rounded-xl p-6 bg-neutral-900">
|
||||
<h2 className="text-2xl font-bold mb-4">3D Math Teacher</h2>
|
||||
<div className="h-96 w-full flex items-center justify-center border border-neutral-700 rounded bg-black/50">
|
||||
<p className="text-neutral-500">[3D Avatar Component: Teaching Active]</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex-[2] border border-neutral-800 rounded-xl p-6 bg-white">
|
||||
<h2 className="text-2xl font-bold mb-4 text-black">Whiteboard</h2>
|
||||
<div className="h-96 w-full border border-neutral-300 rounded bg-white shadow-inner">
|
||||
<p className="p-4 text-neutral-400">[Real-time Whiteboard Canvas]</p>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
242
src/app/page.tsx
242
src/app/page.tsx
@@ -10,8 +10,19 @@ import HeroLogoBillboardSplit from '@/components/sections/hero/HeroLogoBillboard
|
||||
import MediaAbout from '@/components/sections/about/MediaAbout';
|
||||
import NavbarStyleFullscreen from '@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen';
|
||||
import { Lightbulb, Monitor, PenTool, ShieldCheck, Zap } from "lucide-react";
|
||||
import CardStack from '@/components/cardStack/CardStack';
|
||||
import { useState } from 'react';
|
||||
|
||||
export default function LandingPage() {
|
||||
const [grokApiKey, setGrokApiKey] = useState("");
|
||||
|
||||
const handleContactSubmit = (data: Record<string, string>) => {
|
||||
if (data.apiKey) {
|
||||
setGrokApiKey(data.apiKey);
|
||||
console.log("API Key secured in memory");
|
||||
}
|
||||
};
|
||||
|
||||
return (
|
||||
<ThemeProvider
|
||||
defaultButtonVariant="icon-arrow"
|
||||
@@ -19,137 +30,124 @@ export default function LandingPage() {
|
||||
borderRadius="soft"
|
||||
contentWidth="small"
|
||||
sizing="mediumLargeSizeMediumTitles"
|
||||
background="blurBottom"
|
||||
cardStyle="layered-gradient"
|
||||
primaryButtonStyle="gradient"
|
||||
background="noise"
|
||||
cardStyle="outline"
|
||||
primaryButtonStyle="flat"
|
||||
secondaryButtonStyle="solid"
|
||||
headingFontWeight="medium"
|
||||
headingFontWeight="semibold"
|
||||
>
|
||||
<ReactLenis root>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleFullscreen
|
||||
navItems={[
|
||||
{
|
||||
name: "Accueil", id: "hero"},
|
||||
{
|
||||
name: "Fonctionnalités", id: "features"},
|
||||
{
|
||||
name: "FAQ", id: "faq"},
|
||||
{
|
||||
name: "Contact", id: "contact"},
|
||||
]}
|
||||
brandName="MathIA Grok"
|
||||
/>
|
||||
</div>
|
||||
<div id="nav" data-section="nav">
|
||||
<NavbarStyleFullscreen
|
||||
navItems={[
|
||||
{ name: "Accueil", id: "hero" },
|
||||
{ name: "Chat", id: "chat" },
|
||||
{ name: "Fonctionnalités", id: "features" },
|
||||
{ name: "FAQ", id: "faq" },
|
||||
{ name: "Contact", id: "contact" },
|
||||
]}
|
||||
brandName="MathIA Grok"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroLogoBillboardSplit
|
||||
background={{
|
||||
variant: "canvas-reveal"}}
|
||||
logoText="MathIA x Grok"
|
||||
description="Expliquez vos problèmes mathématiques à une IA qui dessine en temps réel sur votre tableau blanc numérique. Une expérience naturelle et immersive propulsée par Grok AI."
|
||||
buttons={[
|
||||
{
|
||||
text: "Commencer maintenant", href: "#contact"},
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
layoutOrder="default"
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3BiavO3dCn02likxwS7upWoCIlU/a-highly-sophisticated-digital-classroom-1775133772930-0a6d301f.png"
|
||||
mediaAnimation="blur-reveal"
|
||||
/>
|
||||
</div>
|
||||
<div id="hero" data-section="hero">
|
||||
<HeroLogoBillboardSplit
|
||||
background={{ variant: "plain" }}
|
||||
logoText="MathIA x Grok"
|
||||
description="Une interface de chat avancée combinant le raisonnement de Grok avec un espace de travail visuel. Posez vos questions, recevez des explications illustrées instantanément."
|
||||
buttons={[
|
||||
{ text: "Essayer la démo", href: "#contact" },
|
||||
]}
|
||||
buttonAnimation="slide-up"
|
||||
layoutOrder="default"
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3BiavO3dCn02likxwS7upWoCIlU/a-highly-sophisticated-digital-classroom-1775133772930-0a6d301f.png"
|
||||
mediaAnimation="blur-reveal"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="about" data-section="about">
|
||||
<MediaAbout
|
||||
useInvertedBackground={false}
|
||||
title="Comprendre les Maths par le Visuel"
|
||||
description="Contrairement aux plateformes classiques, notre IA ne se contente pas d'écrire. Elle réfléchit, trace des graphes, et explique chaque étape avec des dessins naturels et intuitifs sur le tableau blanc. Intégration transparente de votre clé API Grok pour une intelligence sans limites."
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3BiavO3dCn02likxwS7upWoCIlU/an-ai-powered-math-teacher-character-int-1775133776116-85c101a8.png"
|
||||
imageAlt="AI math tutor interface"
|
||||
/>
|
||||
</div>
|
||||
<div id="chat" data-section="chat">
|
||||
<CardStack
|
||||
title="Grok Chat Interface"
|
||||
description={grokApiKey ? "Connecté à Grok AI - Prêt à enseigner les mathématiques." : "Veuillez configurer votre clé API dans la section contact pour activer le tuteur IA."}
|
||||
textboxLayout="split"
|
||||
animationType="blur-reveal"
|
||||
ariaLabel="Chat interface"
|
||||
className="bg-black text-white"
|
||||
>
|
||||
<div className="flex flex-col gap-4 p-8 border border-neutral-800 rounded-lg">
|
||||
<div className="text-sm text-neutral-400">{grokApiKey ? "Grok: Système en ligne. Quelle équation souhaitez-vous résoudre ?" : "Grok: En attente de clé API..."}</div>
|
||||
<div className="h-px w-full bg-neutral-800 my-2" />
|
||||
<div className="text-white font-medium">User: Explique-moi le calcul intégral.</div>
|
||||
</div>
|
||||
</CardStack>
|
||||
</div>
|
||||
|
||||
<div id="features" data-section="features">
|
||||
<FeatureBorderGlow
|
||||
textboxLayout="split"
|
||||
useInvertedBackground={false}
|
||||
animationType="slide-up"
|
||||
features={[
|
||||
{
|
||||
icon: Lightbulb,
|
||||
title: "Raisonnement Grok AI", description: "Accès direct à la puissance de raisonnement de Grok via votre clé API personnelle."},
|
||||
{
|
||||
icon: PenTool,
|
||||
title: "Dessin Naturel", description: "Un rendu fluide des explications pour une compréhension visuelle parfaite des concepts."},
|
||||
{
|
||||
icon: Monitor,
|
||||
title: "Tableau Blanc IA", description: "Une interface immersive où l'IA trace les solutions comme un vrai professeur."},
|
||||
{
|
||||
icon: Zap,
|
||||
title: "Réponses instantanées", description: "Obtenez des explications complexes simplifiées en une fraction de seconde."},
|
||||
{
|
||||
icon: ShieldCheck,
|
||||
title: "Intégration Sécurisée", description: "Vos données et votre clé API restent privées et locales à votre session."},
|
||||
]}
|
||||
title="Pourquoi MathIA?"
|
||||
description="La technologie de pointe au service de votre pédagogie."
|
||||
/>
|
||||
</div>
|
||||
<div id="about" data-section="about">
|
||||
<MediaAbout
|
||||
useInvertedBackground={false}
|
||||
title="Réflexion augmentée"
|
||||
description="MathIA utilise les capacités de raisonnement de Grok pour analyser des problèmes complexes et générer des solutions étape par étape sur un tableau blanc numérique, créant une expérience de chat interactive et visuelle."
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3BiavO3dCn02likxwS7upWoCIlU/an-ai-powered-math-teacher-character-int-1775133776116-85c101a8.png"
|
||||
imageAlt="Interface de chat et tableau blanc"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="faq" data-section="faq">
|
||||
<FaqSplitMedia
|
||||
textboxLayout="split"
|
||||
useInvertedBackground={false}
|
||||
faqs={[
|
||||
{
|
||||
id: "1", title: "Comment intégrer ma clé API Grok ?", content: "Il vous suffit d'insérer votre clé API dans les paramètres de votre tableau de bord MathIA, et notre moteur de rendu se connectera instantanément."},
|
||||
{
|
||||
id: "2", title: "Le dessin est-il vraiment naturel ?", content: "Oui, notre algorithme de tracé simule la pression et la vitesse d'une main humaine, offrant un rendu ultra-naturel sur le tableau blanc."},
|
||||
{
|
||||
id: "3", title: "Quels types de maths sont supportés ?", content: "De l'algèbre de base aux calculs avancés, notre système s'adapte à tous les niveaux grâce à l'intelligence de Grok."},
|
||||
{
|
||||
id: "4", title: "Est-ce compatible sur tablette ?", content: "MathIA est entièrement optimisé pour les tablettes avec stylet pour une expérience de dessin fluide."},
|
||||
{
|
||||
id: "5", title: "Puis-je exporter mes notes ?", content: "Oui, chaque session sur le tableau blanc peut être exportée au format PDF ou image haute résolution."},
|
||||
]}
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3BiavO3dCn02likxwS7upWoCIlU/clean-interface-showing-interactive-math-1775133774387-5fe1858a.png"
|
||||
title="Questions Fréquentes"
|
||||
description="Tout ce que vous devez savoir sur MathIA."
|
||||
faqsAnimation="slide-up"
|
||||
mediaAnimation="slide-up"
|
||||
/>
|
||||
</div>
|
||||
<div id="features" data-section="features">
|
||||
<FeatureBorderGlow
|
||||
textboxLayout="split"
|
||||
useInvertedBackground={false}
|
||||
animationType="slide-up"
|
||||
features={[
|
||||
{ icon: Lightbulb, title: "Chat Grok IA", description: "Interaction naturelle avec un modèle de langage performant." },
|
||||
{ icon: PenTool, title: "Visualisation", description: "Conversion automatique des concepts mathématiques en schémas." },
|
||||
{ icon: Monitor, title: "Interface épurée", description: "Design noir et blanc minimaliste pour se concentrer sur l'essentiel." },
|
||||
{ icon: Zap, title: "Réponses rapides", description: "Latence ultra-faible pour un apprentissage fluide." },
|
||||
{ icon: ShieldCheck, title: "Confidentialité", description: "Gestion sécurisée de vos clés API en local." },
|
||||
]}
|
||||
title="La puissance du visuel"
|
||||
description="Une interface pensée pour la clarté et l'efficacité."
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactSplitForm
|
||||
useInvertedBackground={false}
|
||||
title="Configurez votre accès"
|
||||
description="Entrez vos informations pour activer votre espace MathIA et configurer votre connexion API."
|
||||
inputs={[
|
||||
{
|
||||
name: "name", type: "text", placeholder: "Nom complet", required: true,
|
||||
},
|
||||
{
|
||||
name: "email", type: "email", placeholder: "Adresse e-mail", required: true,
|
||||
},
|
||||
{
|
||||
name: "apiKey", type: "password", placeholder: "Votre clé API Grok AI", required: true,
|
||||
},
|
||||
]}
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3BiavO3dCn02likxwS7upWoCIlU/futuristic-digital-aesthetic-background--1775133773550-69c25a60.png"
|
||||
mediaAnimation="blur-reveal"
|
||||
/>
|
||||
</div>
|
||||
<div id="faq" data-section="faq">
|
||||
<FaqSplitMedia
|
||||
textboxLayout="split"
|
||||
useInvertedBackground={false}
|
||||
faqs={[
|
||||
{ id: "1", title: "Qu'est-ce que MathIA ?", content: "C'est une plateforme qui associe Grok AI à un canevas numérique interactif." },
|
||||
{ id: "2", title: "Besoin d'une clé API ?", content: "Oui, vous utilisez votre propre clé pour une confidentialité totale." },
|
||||
]}
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3BiavO3dCn02likxwS7upWoCIlU/clean-interface-showing-interactive-math-1775133774387-5fe1858a.png"
|
||||
title="Questions Fréquentes"
|
||||
description="Plus d'informations sur MathIA."
|
||||
faqsAnimation="slide-up"
|
||||
mediaAnimation="slide-up"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterLogoReveal
|
||||
logoText="MathIA"
|
||||
leftLink={{
|
||||
text: "Politique de confidentialité", href: "#"}}
|
||||
rightLink={{
|
||||
text: "Contactez-nous", href: "#contact"}}
|
||||
/>
|
||||
</div>
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactSplitForm
|
||||
useInvertedBackground={false}
|
||||
title="Accès au système"
|
||||
description="Configurez votre environnement."
|
||||
inputs={[
|
||||
{ name: "name", type: "text", placeholder: "Nom", required: true },
|
||||
{ name: "email", type: "email", placeholder: "Email", required: true },
|
||||
{ name: "apiKey", type: "password", placeholder: "Clé API Grok", required: true },
|
||||
]}
|
||||
onSubmit={handleContactSubmit}
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3BiavO3dCn02likxwS7upWoCIlU/futuristic-digital-aesthetic-background--1775133773550-69c25a60.png"
|
||||
mediaAnimation="blur-reveal"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="footer" data-section="footer">
|
||||
<FooterLogoReveal
|
||||
logoText="MathIA"
|
||||
leftLink={{ text: "Confidentialité", href: "#" }}
|
||||
rightLink={{ text: "Contact", href: "#contact" }}
|
||||
/>
|
||||
</div>
|
||||
</ReactLenis>
|
||||
</ThemeProvider>
|
||||
);
|
||||
|
||||
@@ -10,15 +10,15 @@
|
||||
--accent: #ffffff;
|
||||
--background-accent: #ffffff; */
|
||||
|
||||
--background: #050012;
|
||||
--card: #040121;
|
||||
--foreground: #f0e6ff;
|
||||
--primary-cta: #c89bff;
|
||||
--primary-cta-text: #050012;
|
||||
--secondary-cta: #1d123b;
|
||||
--secondary-cta-text: #f0e6ff;
|
||||
--accent: #684f7b;
|
||||
--background-accent: #65417c;
|
||||
--background: #000000;
|
||||
--card: #0a0a0a;
|
||||
--foreground: #ffffff;
|
||||
--primary-cta: #ffffff;
|
||||
--primary-cta-text: #0a0a0a;
|
||||
--secondary-cta: #1a1a1a;
|
||||
--secondary-cta-text: #ffffff;
|
||||
--accent: #333333;
|
||||
--background-accent: #222222;
|
||||
|
||||
/* text sizing - set by ThemeProvider */
|
||||
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);
|
||||
|
||||
Reference in New Issue
Block a user