generateur-code-web / index.html
docto41's picture
Add 3 files
e2a7df2 verified
<!DOCTYPE html>
<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>