Spaces:
Running
Running
| <html lang="fr"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>Générateur IA Pro - Création Automatique de Sites Web</title> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/animate.css/4.1.1/animate.min.css"/> | |
| <link href="https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap" rel="stylesheet"> | |
| <script src="https://cdn.jsdelivr.net/npm/chart.js"></script> | |
| <style> | |
| body { | |
| font-family: 'Poppins', sans-serif; | |
| background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%); | |
| color: #fff; | |
| } | |
| .gradient-bg { | |
| background: linear-gradient(90deg, #4f46e5 0%, #7c3aed 50%, #9333ea 100%); | |
| } | |
| .card-glass { | |
| background: rgba(255, 255, 255, 0.08); | |
| backdrop-filter: blur(10px); | |
| border: 1px solid rgba(255, 255, 255, 0.1); | |
| box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37); | |
| } | |
| .progress-bar { | |
| height: 8px; | |
| border-radius: 4px; | |
| background: rgba(255, 255, 255, 0.2); | |
| } | |
| .progress-fill { | |
| height: 100%; | |
| border-radius: 4px; | |
| background: linear-gradient(90deg, #4f46e5 0%, #9333ea 100%); | |
| transition: width 0.5s ease; | |
| } | |
| .ai-pulse { | |
| animation: pulse 2s infinite; | |
| } | |
| @keyframes pulse { | |
| 0% { box-shadow: 0 0 0 0 rgba(79, 70, 229, 0.7); } | |
| 70% { box-shadow: 0 0 0 15px rgba(79, 70, 229, 0); } | |
| 100% { box-shadow: 0 0 0 0 rgba(79, 70, 229, 0); } | |
| } | |
| .floating { | |
| animation: floating 6s ease-in-out infinite; | |
| } | |
| @keyframes floating { | |
| 0% { transform: translateY(0px); } | |
| 50% { transform: translateY(-20px); } | |
| 100% { transform: translateY(0px); } | |
| } | |
| </style> | |
| </head> | |
| <body class="min-h-screen"> | |
| <div class="container mx-auto px-4 py-12"> | |
| <!-- Header --> | |
| <header class="text-center mb-16"> | |
| <h1 class="text-5xl font-bold mb-4 animate__animated animate__fadeInDown"> | |
| <span class="gradient-text bg-clip-text text-transparent bg-gradient-to-r from-indigo-500 via-purple-500 to-pink-500"> | |
| Générateur IA Pro | |
| </span> | |
| </h1> | |
| <p class="text-xl text-gray-300 max-w-3xl mx-auto animate__animated animate__fadeIn animate__delay-1s"> | |
| Créez des sites web complexes avec plus de 2000 lignes de code automatiquement, incluant domaine, SSL, serveur et WordPress - le tout en quelques clics. | |
| </p> | |
| </header> | |
| <!-- Main Generator --> | |
| <div class="grid grid-cols-1 lg:grid-cols-3 gap-8 mb-16"> | |
| <!-- Input Section --> | |
| <div class="lg:col-span-2 card-glass rounded-2xl p-8 animate__animated animate__fadeInLeft"> | |
| <h2 class="text-2xl font-semibold mb-6 flex items-center"> | |
| <span class="w-8 h-8 rounded-full gradient-bg flex items-center justify-center mr-3">1</span> | |
| Décrivez votre site web | |
| </h2> | |
| <div class="mb-6"> | |
| <label class="block text-gray-300 mb-2">Type de site</label> | |
| <div class="grid grid-cols-2 md:grid-cols-4 gap-3"> | |
| <button class="type-btn py-3 px-4 rounded-lg border border-gray-700 hover:border-indigo-500 transition" data-type="ecommerce"> | |
| E-commerce | |
| </button> | |
| <button class="type-btn py-3 px-4 rounded-lg border border-gray-700 hover:border-indigo-500 transition" data-type="portfolio"> | |
| Portfolio | |
| </button> | |
| <button class="type-btn py-3 px-4 rounded-lg border border-gray-700 hover:border-indigo-500 transition" data-type="corporate"> | |
| Corporate | |
| </button> | |
| <button class="type-btn py-3 px-4 rounded-lg border border-gray-700 hover:border-indigo-500 transition" data-type="blog"> | |
| Blog | |
| </button> | |
| </div> | |
| </div> | |
| <div class="mb-6"> | |
| <label class="block text-gray-300 mb-2">Description détaillée</label> | |
| <textarea id="site-description" class="w-full bg-gray-900 bg-opacity-50 border border-gray-700 rounded-lg p-4 text-gray-300 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 transition" rows="6" placeholder="Décrivez en détail votre site web: objectifs, fonctionnalités, style visuel, public cible, etc..."></textarea> | |
| </div> | |
| <div class="mb-6"> | |
| <label class="block text-gray-300 mb-2">Style visuel</label> | |
| <div class="grid grid-cols-2 md:grid-cols-4 gap-3"> | |
| <button class="style-btn py-3 px-4 rounded-lg border border-gray-700 hover:border-indigo-500 transition" data-style="modern"> | |
| Moderne | |
| </button> | |
| <button class="style-btn py-3 px-4 rounded-lg border border-gray-700 hover:border-indigo-500 transition" data-style="minimal"> | |
| Minimaliste | |
| </button> | |
| <button class="style-btn py-3 px-4 rounded-lg border border-gray-700 hover:border-indigo-500 transition" data-style="vintage"> | |
| Vintage | |
| </button> | |
| <button class="style-btn py-3 px-4 rounded-lg border border-gray-700 hover:border-indigo-500 transition" data-style="futuristic"> | |
| Futuriste | |
| </button> | |
| </div> | |
| </div> | |
| <div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-6"> | |
| <div> | |
| <label class="block text-gray-300 mb-2">Nom de domaine</label> | |
| <div class="flex"> | |
| <input type="text" id="domain-name" class="flex-grow bg-gray-900 bg-opacity-50 border border-gray-700 rounded-l-lg p-3 text-gray-300 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 transition" placeholder="votresite"> | |
| <select class="bg-gray-800 border border-gray-700 rounded-r-lg px-3 text-gray-300"> | |
| <option>.com</option> | |
| <option>.fr</option> | |
| <option>.net</option> | |
| <option>.io</option> | |
| </select> | |
| </div> | |
| </div> | |
| <div> | |
| <label class="block text-gray-300 mb-2">Hébergement</label> | |
| <select id="hosting" class="w-full bg-gray-900 bg-opacity-50 border border-gray-700 rounded-lg p-3 text-gray-300 focus:border-indigo-500 focus:ring-1 focus:ring-indigo-500 transition"> | |
| <option value="auto">Configuration automatique (recommandé)</option> | |
| <option value="shared">Hébergement mutualisé</option> | |
| <option value="vps">VPS</option> | |
| <option value="dedicated">Serveur dédié</option> | |
| </select> | |
| </div> | |
| </div> | |
| <div class="flex flex-wrap gap-3"> | |
| <div class="flex items-center"> | |
| <input type="checkbox" id="wordpress" class="w-5 h-5 rounded border-gray-700 bg-gray-900 text-indigo-600 focus:ring-indigo-500" checked> | |
| <label for="wordpress" class="ml-2 text-gray-300">Installation WordPress</label> | |
| </div> | |
| <div class="flex items-center"> | |
| <input type="checkbox" id="ssl" class="w-5 h-5 rounded border-gray-700 bg-gray-900 text-indigo-600 focus:ring-indigo-500" checked> | |
| <label for="ssl" class="ml-2 text-gray-300">Certificat SSL</label> | |
| </div> | |
| <div class="flex items-center"> | |
| <input type="checkbox" id="seo" class="w-5 h-5 rounded border-gray-700 bg-gray-900 text-indigo-600 focus:ring-indigo-500" checked> | |
| <label for="seo" class="ml-2 text-gray-300">Optimisation SEO</label> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Preview Section --> | |
| <div class="card-glass rounded-2xl p-8 animate__animated animate__fadeInRight"> | |
| <h2 class="text-2xl font-semibold mb-6 flex items-center"> | |
| <span class="w-8 h-8 rounded-full gradient-bg flex items-center justify-center mr-3">2</span> | |
| Aperçu IA | |
| </h2> | |
| <div class="relative mb-6"> | |
| <div class="w-full h-64 bg-gray-900 rounded-lg overflow-hidden relative"> | |
| <div id="site-preview" class="absolute inset-0 flex items-center justify-center"> | |
| <div class="text-center p-6"> | |
| <div class="w-16 h-16 gradient-bg rounded-full flex items-center justify-center mx-auto mb-4 ai-pulse"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" /> | |
| </svg> | |
| </div> | |
| <h3 class="text-xl font-medium text-white mb-2">Aperçu du site</h3> | |
| <p class="text-gray-400">Décrivez votre site pour voir un aperçu généré par IA</p> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="absolute -bottom-4 left-1/2 transform -translate-x-1/2 bg-indigo-600 text-white px-4 py-1 rounded-full text-sm font-medium"> | |
| Aperçu en temps réel | |
| </div> | |
| </div> | |
| <div class="mb-6"> | |
| <h3 class="text-lg font-medium mb-3">Détails techniques estimés</h3> | |
| <div class="space-y-3"> | |
| <div class="flex justify-between text-sm"> | |
| <span class="text-gray-400">Lignes de code</span> | |
| <span class="font-medium" id="code-lines">0</span> | |
| </div> | |
| <div class="flex justify-between text-sm"> | |
| <span class="text-gray-400">Pages</span> | |
| <span class="font-medium" id="pages-count">0</span> | |
| </div> | |
| <div class="flex justify-between text-sm"> | |
| <span class="text-gray-400">Fonctionnalités</span> | |
| <span class="font-medium" id="features-count">0</span> | |
| </div> | |
| <div class="flex justify-between text-sm"> | |
| <span class="text-gray-400">Complexité</span> | |
| <span class="font-medium" id="complexity">Faible</span> | |
| </div> | |
| </div> | |
| </div> | |
| <button id="generate-btn" class="w-full gradient-bg text-white font-medium py-3 px-6 rounded-lg hover:opacity-90 transition flex items-center justify-center"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z" /> | |
| </svg> | |
| Générer le site (IA Pro) | |
| </button> | |
| </div> | |
| </div> | |
| <!-- Generation Process (Hidden by default) --> | |
| <div id="generation-process" class="hidden card-glass rounded-2xl p-8 mb-16 animate__animated animate__fadeInUp"> | |
| <h2 class="text-2xl font-semibold mb-6 flex items-center"> | |
| <span class="w-8 h-8 rounded-full gradient-bg flex items-center justify-center mr-3">3</span> | |
| Création en cours par IA | |
| </h2> | |
| <div class="mb-8"> | |
| <div class="flex justify-between mb-2"> | |
| <span class="text-gray-300">Progression</span> | |
| <span class="text-gray-300" id="progress-percent">0%</span> | |
| </div> | |
| <div class="progress-bar"> | |
| <div id="progress-fill" class="progress-fill" style="width: 0%"></div> | |
| </div> | |
| </div> | |
| <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-8"> | |
| <div class="bg-gray-900 bg-opacity-50 rounded-xl p-5 border border-gray-800"> | |
| <div class="flex items-center mb-3"> | |
| <div class="w-10 h-10 rounded-full bg-indigo-900 bg-opacity-50 flex items-center justify-center mr-3"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-indigo-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 15a4 4 0 004 4h9a5 5 0 10-.1-9.999 5.002 5.002 0 10-9.78 2.096A4.001 4.001 0 003 15z" /> | |
| </svg> | |
| </div> | |
| <h3 class="font-medium">Domaine</h3> | |
| </div> | |
| <p class="text-gray-400 text-sm" id="domain-status">En attente...</p> | |
| </div> | |
| <div class="bg-gray-900 bg-opacity-50 rounded-xl p-5 border border-gray-800"> | |
| <div class="flex items-center mb-3"> | |
| <div class="w-10 h-10 rounded-full bg-indigo-900 bg-opacity-50 flex items-center justify-center mr-3"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-indigo-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z" /> | |
| </svg> | |
| </div> | |
| <h3 class="font-medium">SSL</h3> | |
| </div> | |
| <p class="text-gray-400 text-sm" id="ssl-status">En attente...</p> | |
| </div> | |
| <div class="bg-gray-900 bg-opacity-50 rounded-xl p-5 border border-gray-800"> | |
| <div class="flex items-center mb-3"> | |
| <div class="w-10 h-10 rounded-full bg-indigo-900 bg-opacity-50 flex items-center justify-center mr-3"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-indigo-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 12h14M5 12a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v4a2 2 0 01-2 2M5 12a2 2 0 00-2 2v4a2 2 0 002 2h14a2 2 0 002-2v-4a2 2 0 00-2-2m-2-4h.01M17 16h.01" /> | |
| </svg> | |
| </div> | |
| <h3 class="font-medium">Serveur</h3> | |
| </div> | |
| <p class="text-gray-400 text-sm" id="server-status">En attente...</p> | |
| </div> | |
| <div class="bg-gray-900 bg-opacity-50 rounded-xl p-5 border border-gray-800"> | |
| <div class="flex items-center mb-3"> | |
| <div class="w-10 h-10 rounded-full bg-indigo-900 bg-opacity-50 flex items-center justify-center mr-3"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-indigo-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2H7z" /> | |
| </svg> | |
| </div> | |
| <h3 class="font-medium">WordPress</h3> | |
| </div> | |
| <p class="text-gray-400 text-sm" id="wp-status">En attente...</p> | |
| </div> | |
| </div> | |
| <div class="mb-8"> | |
| <h3 class="text-lg font-medium mb-4">Génération du code</h3> | |
| <div class="bg-gray-900 rounded-lg p-4 overflow-auto max-h-60"> | |
| <pre id="code-output" class="text-gray-300 text-sm font-mono">// Le code de votre site sera généré ici...</pre> | |
| </div> | |
| </div> | |
| <div class="flex justify-between items-center"> | |
| <div class="flex items-center"> | |
| <div class="w-10 h-10 rounded-full bg-indigo-900 bg-opacity-50 flex items-center justify-center mr-3"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-indigo-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z" /> | |
| </svg> | |
| </div> | |
| <div> | |
| <h3 class="font-medium">IA Pro en action</h3> | |
| <p class="text-gray-400 text-sm" id="ai-status">Analyse initiale...</p> | |
| </div> | |
| </div> | |
| <button id="cancel-btn" class="px-4 py-2 border border-gray-700 rounded-lg text-gray-300 hover:bg-gray-800 transition"> | |
| Annuler | |
| </button> | |
| </div> | |
| </div> | |
| <!-- Results Section (Hidden by default) --> | |
| <div id="results-section" class="hidden card-glass rounded-2xl p-8 animate__animated animate__fadeInUp"> | |
| <h2 class="text-2xl font-semibold mb-6 flex items-center"> | |
| <span class="w-8 h-8 rounded-full gradient-bg flex items-center justify-center mr-3">4</span> | |
| Votre site est prêt! | |
| </h2> | |
| <div class="flex flex-col lg:flex-row gap-8 mb-8"> | |
| <div class="lg:w-2/3"> | |
| <div class="bg-gray-900 rounded-xl overflow-hidden mb-6"> | |
| <div class="h-80 bg-gray-800 flex items-center justify-center"> | |
| <div class="text-center p-6"> | |
| <div class="w-20 h-20 gradient-bg rounded-full flex items-center justify-center mx-auto mb-4"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" /> | |
| </svg> | |
| </div> | |
| <h3 class="text-2xl font-medium text-white mb-2">Félicitations!</h3> | |
| <p class="text-gray-400">Votre site web a été généré avec succès avec plus de 2000 lignes de code.</p> | |
| </div> | |
| </div> | |
| <div class="p-6"> | |
| <div class="flex flex-wrap gap-4 mb-6"> | |
| <a href="#" class="px-4 py-2 gradient-bg text-white rounded-lg flex items-center"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14" /> | |
| </svg> | |
| Visiter le site | |
| </a> | |
| <a href="#" class="px-4 py-2 bg-gray-800 text-white rounded-lg flex items-center"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4" /> | |
| </svg> | |
| Télécharger le code | |
| </a> | |
| <a href="#" class="px-4 py-2 bg-gray-800 text-white rounded-lg flex items-center"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 mr-2" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z" /> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z" /> | |
| </svg> | |
| Admin WordPress | |
| </a> | |
| </div> | |
| <div class="border-t border-gray-800 pt-4"> | |
| <h4 class="font-medium mb-3">Informations d'accès</h4> | |
| <div class="grid grid-cols-1 md:grid-cols-2 gap-4"> | |
| <div class="bg-gray-800 bg-opacity-50 rounded-lg p-3"> | |
| <p class="text-gray-400 text-sm mb-1">URL du site</p> | |
| <p class="font-mono text-sm">https://<span id="result-domain">monsite</span>.com</p> | |
| </div> | |
| <div class="bg-gray-800 bg-opacity-50 rounded-lg p-3"> | |
| <p class="text-gray-400 text-sm mb-1">Identifiant admin</p> | |
| <p class="font-mono text-sm">admin</p> | |
| </div> | |
| <div class="bg-gray-800 bg-opacity-50 rounded-lg p-3"> | |
| <p class="text-gray-400 text-sm mb-1">Mot de passe</p> | |
| <p class="font-mono text-sm">••••••••••</p> | |
| </div> | |
| <div class="bg-gray-800 bg-opacity-50 rounded-lg p-3"> | |
| <p class="text-gray-400 text-sm mb-1">Serveur IP</p> | |
| <p class="font-mono text-sm">192.168.1.1</p> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="lg:w-1/3"> | |
| <div class="bg-gray-900 bg-opacity-50 rounded-xl p-6 border border-gray-800 mb-6"> | |
| <h3 class="font-medium mb-4">Statistiques de génération</h3> | |
| <div class="space-y-4"> | |
| <div> | |
| <div class="flex justify-between text-sm mb-1"> | |
| <span class="text-gray-400">Lignes de code</span> | |
| <span class="font-medium" id="final-code-lines">2,450</span> | |
| </div> | |
| <div class="w-full bg-gray-800 rounded-full h-2"> | |
| <div class="bg-indigo-600 h-2 rounded-full" style="width: 100%"></div> | |
| </div> | |
| </div> | |
| <div> | |
| <div class="flex justify-between text-sm mb-1"> | |
| <span class="text-gray-400">Temps de génération</span> | |
| <span class="font-medium">47s</span> | |
| </div> | |
| <div class="w-full bg-gray-800 rounded-full h-2"> | |
| <div class="bg-purple-600 h-2 rounded-full" style="width: 80%"></div> | |
| </div> | |
| </div> | |
| <div> | |
| <div class="flex justify-between text-sm mb-1"> | |
| <span class="text-gray-400">Complexité</span> | |
| <span class="font-medium">Élevée</span> | |
| </div> | |
| <div class="w-full bg-gray-800 rounded-full h-2"> | |
| <div class="bg-pink-600 h-2 rounded-full" style="width: 90%"></div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="bg-gray-900 bg-opacity-50 rounded-xl p-6 border border-gray-800"> | |
| <h3 class="font-medium mb-4">Ressources générées</h3> | |
| <div class="space-y-3"> | |
| <div class="flex items-center justify-between py-2 border-b border-gray-800"> | |
| <div class="flex items-center"> | |
| <div class="w-8 h-8 rounded bg-indigo-900 bg-opacity-30 flex items-center justify-center mr-3"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 text-indigo-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" /> | |
| </svg> | |
| </div> | |
| <span class="text-sm">Fichiers HTML</span> | |
| </div> | |
| <span class="text-sm font-mono">24</span> | |
| </div> | |
| <div class="flex items-center justify-between py-2 border-b border-gray-800"> | |
| <div class="flex items-center"> | |
| <div class="w-8 h-8 rounded bg-indigo-900 bg-opacity-30 flex items-center justify-center mr-3"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 text-indigo-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343M11 7.343l1.657-1.657a2 2 0 012.828 0l2.829 2.829a2 2 0 010 2.828l-8.486 8.485M7 17h.01" /> | |
| </svg> | |
| </div> | |
| <span class="text-sm">Fichiers CSS</span> | |
| </div> | |
| <span class="text-sm font-mono">8</span> | |
| </div> | |
| <div class="flex items-center justify-between py-2 border-b border-gray-800"> | |
| <div class="flex items-center"> | |
| <div class="w-8 h-8 rounded bg-indigo-900 bg-opacity-30 flex items-center justify-center mr-3"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 text-indigo-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4" /> | |
| </svg> | |
| </div> | |
| <span class="text-sm">Fichiers JS</span> | |
| </div> | |
| <span class="text-sm font-mono">12</span> | |
| </div> | |
| <div class="flex items-center justify-between py-2"> | |
| <div class="flex items-center"> | |
| <div class="w-8 h-8 rounded bg-indigo-900 bg-opacity-30 flex items-center justify-center mr-3"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-4 w-4 text-indigo-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z" /> | |
| </svg> | |
| </div> | |
| <span class="text-sm">Images/assets</span> | |
| </div> | |
| <span class="text-sm font-mono">46</span> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="mt-8"> | |
| <h3 class="text-lg font-medium mb-4">Analyse IA du site généré</h3> | |
| <div class="grid grid-cols-1 md:grid-cols-3 gap-6"> | |
| <div class="bg-gray-900 bg-opacity-50 rounded-xl p-5 border border-indigo-900 border-opacity-50"> | |
| <div class="flex items-center mb-3"> | |
| <div class="w-10 h-10 rounded-full bg-indigo-900 bg-opacity-20 flex items-center justify-center mr-3"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-indigo-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.663 17h4.673M12 3v1m6.364 1.636l-.707.707M21 12h-1M4 12H3m3.343-5.657l-.707-.707m2.828 9.9a5 5 0 117.072 0l-.548.547A3.374 3.374 0 0014 18.469V19a2 2 0 11-4 0v-.531c0-.895-.356-1.754-.988-2.386l-.548-.547z" /> | |
| </svg> | |
| </div> | |
| <h4 class="font-medium">Performance</h4> | |
| </div> | |
| <p class="text-gray-400 text-sm">Le site a été optimisé pour une vitesse de chargement de 92/100 sur PageSpeed Insights, avec lazy loading des images et compression automatique.</p> | |
| </div> | |
| <div class="bg-gray-900 bg-opacity-50 rounded-xl p-5 border border-indigo-900 border-opacity-50"> | |
| <div class="flex items-center mb-3"> | |
| <div class="w-10 h-10 rounded-full bg-indigo-900 bg-opacity-20 flex items-center justify-center mr-3"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-indigo-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9" /> | |
| </svg> | |
| </div> | |
| <h4 class="font-medium">SEO</h4> | |
| </div> | |
| <p class="text-gray-400 text-sm">Optimisation SEO complète avec meta tags, sitemap XML, schema markup et structure sémantique. Prêt pour le référencement.</p> | |
| </div> | |
| <div class="bg-gray-900 bg-opacity-50 rounded-xl p-5 border border-indigo-900 border-opacity-50"> | |
| <div class="flex items-center mb-3"> | |
| <div class="w-10 h-10 rounded-full bg-indigo-900 bg-opacity-20 flex items-center justify-center mr-3"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-5 w-5 text-indigo-400" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 18h.01M8 21h8a2 2 0 002-2V5a2 2 0 00-2-2H8a2 2 0 00-2 2v14a2 2 0 002 2z" /> | |
| </svg> | |
| </div> | |
| <h4 class="font-medium">Responsive</h4> | |
| </div> | |
| <p class="text-gray-400 text-sm">Design entièrement responsive testé sur 12 appareils différents. Adapté à tous les écrans du mobile au desktop 4K.</p> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- AI Features Section --> | |
| <div class="mt-24 mb-16"> | |
| <h2 class="text-3xl font-bold text-center mb-4">Technologie IA Avancée</h2> | |
| <p class="text-xl text-gray-300 text-center max-w-4xl mx-auto mb-12"> | |
| Notre générateur utilise une intelligence artificielle de pointe avec plus de 1,298,700 assistants IA spécialisés | |
| </p> | |
| <div class="grid grid-cols-1 md:grid-cols-3 gap-8"> | |
| <div class="card-glass rounded-2xl p-8 text-center"> | |
| <div class="w-20 h-20 gradient-bg rounded-full flex items-center justify-center mx-auto mb-6 floating"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 3v2m6-2v2M9 19v2m6-2v2M5 9H3m2 6H3m18-6h-2m2 6h-2M7 19h10a2 2 0 002-2V7a2 2 0 00-2-2H7a2 2 0 00-2 2v10a2 2 0 002 2zM9 9h6v6H9V9z" /> | |
| </svg> | |
| </div> | |
| <h3 class="text-xl font-semibold mb-3">Génération de code</h3> | |
| <p class="text-gray-400"> | |
| Plus de 500 assistants IA spécialisés dans la génération de code propre, optimisé et documenté. | |
| </p> | |
| </div> | |
| <div class="card-glass rounded-2xl p-8 text-center"> | |
| <div class="w-20 h-20 gradient-bg rounded-full flex items-center justify-center mx-auto mb-6 floating" style="animation-delay: 0.3s"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z" /> | |
| </svg> | |
| </div> | |
| <h3 class="text-xl font-semibold mb-3">Design UI/UX</h3> | |
| <p class="text-gray-400"> | |
| 300,000 IA de design créent des interfaces uniques et parfaitement adaptées à votre public. | |
| </p> | |
| </div> | |
| <div class="card-glass rounded-2xl p-8 text-center"> | |
| <div class="w-20 h-20 gradient-bg rounded-full flex items-center justify-center mx-auto mb-6 floating" style="animation-delay: 0.6s"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-10 w-10 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 15v2m-6 4h12a2 2 0 002-2v-6a2 2 0 00-2-2H6a2 2 0 00-2 2v6a2 2 0 002 2zm10-10V7a4 4 0 00-8 0v4h8z" /> | |
| </svg> | |
| </div> | |
| <h3 class="text-xl font-semibold mb-3">Sécurité</h3> | |
| <p class="text-gray-400"> | |
| Protection avancée avec 200,000 IA de sécurité pour des sites inviolables et des données protégées. | |
| </p> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <script> | |
| // Update preview based on inputs | |
| const descriptionInput = document.getElementById('site-description'); | |
| const typeButtons = document.querySelectorAll('.type-btn'); | |
| const styleButtons = document.querySelectorAll('.style-btn'); | |
| const codeLinesElement = document.getElementById('code-lines'); | |
| const pagesCountElement = document.getElementById('pages-count'); | |
| const featuresCountElement = document.getElementById('features-count'); | |
| const complexityElement = document.getElementById('complexity'); | |
| const previewElement = document.getElementById('site-preview'); | |
| let selectedType = ''; | |
| let selectedStyle = ''; | |
| // Type buttons | |
| typeButtons.forEach(button => { | |
| button.addEventListener('click', () => { | |
| typeButtons.forEach(btn => btn.classList.remove('gradient-bg', 'text-white')); | |
| button.classList.add('gradient-bg', 'text-white'); | |
| selectedType = button.dataset.type; | |
| updatePreview(); | |
| }); | |
| }); | |
| // Style buttons | |
| styleButtons.forEach(button => { | |
| button.addEventListener('click', () => { | |
| styleButtons.forEach(btn => btn.classList.remove('gradient-bg', 'text-white')); | |
| button.classList.add('gradient-bg', 'text-white'); | |
| selectedStyle = button.dataset.style; | |
| updatePreview(); | |
| }); | |
| }); | |
| // Description input | |
| descriptionInput.addEventListener('input', updatePreview); | |
| function updatePreview() { | |
| const description = descriptionInput.value; | |
| // Update stats based on description length and selections | |
| if (description.length > 0) { | |
| const lines = Math.min(2000, Math.floor(description.length * 2.5)); | |
| const pages = Math.min(20, Math.floor(description.length / 50)); | |
| const features = Math.min(30, Math.floor(description.length / 30)); | |
| codeLinesElement.textContent = lines.toLocaleString(); | |
| pagesCountElement.textContent = pages; | |
| featuresCountElement.textContent = features; | |
| if (lines > 1500) { | |
| complexityElement.textContent = 'Très élevée'; | |
| } else if (lines > 1000) { | |
| complexityElement.textContent = 'Élevée'; | |
| } else if (lines > 500) { | |
| complexityElement.textContent = 'Moyenne'; | |
| } else { | |
| complexityElement.textContent = 'Faible'; | |
| } | |
| // Update preview content | |
| previewElement.innerHTML = ` | |
| <div class="absolute inset-0 flex items-center justify-center p-6"> | |
| <div class="text-center"> | |
| <div class="w-16 h-16 gradient-bg rounded-full flex items-center justify-center mx-auto mb-4"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4" /> | |
| </svg> | |
| </div> | |
| <h3 class="text-xl font-medium text-white mb-2">Aperçu généré par IA</h3> | |
| <p class="text-gray-400 mb-3">Type: ${selectedType || 'Non spécifié'} | Style: ${selectedStyle || 'Non spécifié'}</p> | |
| <p class="text-gray-300 text-sm max-w-md mx-auto">${truncateDescription(description)}</p> | |
| </div> | |
| </div> | |
| `; | |
| } else { | |
| // Reset to default | |
| codeLinesElement.textContent = '0'; | |
| pagesCountElement.textContent = '0'; | |
| featuresCountElement.textContent = '0'; | |
| complexityElement.textContent = 'Faible'; | |
| previewElement.innerHTML = ` | |
| <div class="absolute inset-0 flex items-center justify-center"> | |
| <div class="text-center p-6"> | |
| <div class="w-16 h-16 gradient-bg rounded-full flex items-center justify-center mx-auto mb-4 ai-pulse"> | |
| <svg xmlns="http://www.w3.org/2000/svg" class="h-8 w-8 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor"> | |
| <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.75 17L9 20l-1 1h8l-1-1-.75-3M3 13h18M5 17h14a2 2 0 002-2V5a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" /> | |
| </svg> | |
| </div> | |
| <h3 class="text-xl font-medium text-white mb-2">Aperçu du site</h3> | |
| <p class="text-gray-400">Décrivez votre site pour voir un aperçu généré par IA</p> | |
| </div> | |
| </div> | |
| `; | |
| } | |
| } | |
| function truncateDescription(text) { | |
| return text.length > 150 ? text.substring(0, 150) + '...' : text; | |
| } | |
| // Generation process | |
| const generateBtn = document.getElementById('generate-btn'); | |
| const generationProcess = document.getElementById('generation-process'); | |
| const resultsSection = document.getElementById('results-section'); | |
| const progressFill = document.getElementById('progress-fill'); | |
| const progressPercent = document.getElementById('progress-percent'); | |
| const domainStatus = document.getElementById('domain-status'); | |
| const sslStatus = document.getElementById('ssl-status'); | |
| const serverStatus = document.getElementById('server-status'); | |
| const wpStatus = document.getElementById('wp-status'); | |
| const aiStatus = document.getElementById('ai-status'); | |
| const codeOutput = document.getElementById('code-output'); | |
| const cancelBtn = document.getElementById('cancel-btn'); | |
| const finalCodeLines = document.getElementById('final-code-lines'); | |
| const resultDomain = document.getElementById('result-domain'); | |
| generateBtn.addEventListener('click', () => { | |
| if (!descriptionInput.value) { | |
| alert('Veuillez décrire votre site avant de générer'); | |
| return; | |
| } | |
| // Show generation process | |
| generationProcess.classList.remove('hidden'); | |
| generationProcess.classList.add('animate__fadeInUp'); | |
| // Scroll to generation process | |
| generationProcess.scrollIntoView({ behavior: 'smooth' }); | |
| // Start simulation | |
| simulateGeneration(); | |
| }); | |
| cancelBtn.addEventListener('click', () => { | |
| generationProcess.classList.add('hidden'); | |
| }); | |
| function simulateGeneration() { | |
| let progress = 0; | |
| const domainName = document.getElementById('domain-name').value || 'monsite'; | |
| resultDomain.textContent = domainName; | |
| const interval = setInterval(() => { | |
| progress += Math.random() * 5; | |
| if (progress > 100) progress = 100; | |
| progressFill.style.width = `${progress}%`; | |
| progressPercent.textContent = `${Math.floor(progress)}%`; | |
| // Update statuses based on progress | |
| if (progress >= 10 && progress < 20) { | |
| domainStatus.textContent = 'Enregistrement en cours...'; | |
| } else if (progress >= 20 && progress < 30) { | |
| domainStatus.textContent = 'Domaine enregistré ✓'; | |
| domainStatus.classList.add('text-green-400'); | |
| } else if (progress >= 30 && progress < 40) { | |
| serverStatus.textContent = 'Configuration du serveur...'; | |
| } else if (progress >= 40 && progress < 50) { | |
| serverStatus.textContent = 'Serveur configuré ✓'; | |
| serverStatus.classList.add('text-green-400'); | |
| } else if (progress >= 50 && progress < 60) { | |
| sslStatus.textContent = 'Installation SSL...'; | |
| } else if (progress >= 60 && progress < 70) { | |
| sslStatus.textContent = 'SSL installé ✓'; | |
| sslStatus.classList.add('text-green-400'); | |
| } else if (progress >= 70 && progress < 80) { | |
| wpStatus.textContent = 'Installation WordPress...'; | |
| } else if (progress >= 80 && progress < 90) { | |
| wpStatus.textContent = 'WordPress installé ✓'; | |
| wpStatus.classList.add('text-green-400'); | |
| } | |
| // Update AI status | |
| if (progress < 10) { | |
| aiStatus.textContent = 'Analyse initiale...'; | |
| } else if (progress < 30) { | |
| aiStatus.textContent = 'Génération de la structure...'; | |
| } else if (progress < 50) { | |
| aiStatus.textContent = 'Création des composants...'; | |
| } else if (progress < 70) { | |
| aiStatus.textContent = 'Optimisation des performances...'; | |
| } else if (progress < 90) { | |
| aiStatus.textContent = 'Finalisation...'; | |
| } else { | |
| aiStatus.textContent = 'Terminé ✓'; | |
| } | |
| // Update code output | |
| if (progress < 20) { | |
| codeOutput.textContent = '// Initialisation du projet\n// Chargement des modules IA\n// Analyse des requirements'; | |
| } else if (progress < 40) { | |
| codeOutput.textContent = '// Création de la structure du projet\nconst app = new WebApplication({\n title: "Mon Site",\n pages: 12,\n responsive: true\n});\n\n// Configuration du routing\napp.configureRoutes(routes);'; | |
| } else if (progress < 60) { | |
| codeOutput.textContent = '// Génération des composants UI\nfunction Header() {\n return (\n <header className="bg-white shadow">\n <div className="container mx-auto px-4 py-6">\n <h1 className="text-3xl font-bold text-gray-900">Mon Site</h1>\n </div>\n </header>\n );\n}\n\n// Plus de 800 lignes générées...'; | |
| } else if (progress < 80) { | |
| codeOutput.textContent = '// Optimisation des performances\n// Compression des assets\n// Minification du code\n// Configuration du cache\n\n// Intégration des APIs\napp.connectToDatabase({\n host: "db.monsite.com",\n user: "admin",\n password: "••••••••",\n database: "monsite_db"\n});\n\n// Plus de 1500 lignes générées...'; | |
| } else { | |
| codeOutput.textContent = '// Finalisation du projet\n// Tests automatisés\n// Validation SEO\n// Génération de la documentation\n\n// Export final\napp.export({\n format: "full",\n includeAssets: true,\n optimize: true\n});\n\n// Projet prêt! Total: 2,450 lignes de code'; | |
| } | |
| // When complete | |
| if (progress >= 100) { | |
| clearInterval(interval); | |
| finalCodeLines.textContent = '2,450'; | |
| // Show results after a delay | |
| setTimeout(() => { | |
| generationProcess.classList.add('hidden'); | |
| resultsSection.classList.remove('hidden'); | |
| resultsSection.classList.add('animate__fadeInUp'); | |
| resultsSection.scrollIntoView({ behavior: 'smooth' }); | |
| }, 1000); | |
| } | |
| }, 300); | |
| // Cancel button | |
| cancelBtn.addEventListener('click', () => { | |
| clearInterval(interval); | |
| }); | |
| } | |
| </script> | |
| <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=docto41/generateur-code-web" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
| </html> |