Spaces:
Running
Running
<html lang="fr"> | |
<head> | |
<meta charset="UTF-8"> | |
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
<title>AutoDomain Pro - Enregistrement Automatique de Domaines</title> | |
<script src="https://cdn.tailwindcss.com"></script> | |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |
<style> | |
.gradient-bg { | |
background: linear-gradient(135deg, #1e3a8a 0%, #3b82f6 50%, #1e40af 100%); | |
} | |
.domain-card { | |
transition: all 0.3s ease; | |
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); | |
background: rgba(255, 255, 255, 0.95); | |
backdrop-filter: blur(10px); | |
} | |
.domain-card:hover { | |
transform: translateY(-5px); | |
box-shadow: 0 10px 25px rgba(59, 130, 246, 0.3); | |
} | |
.progress-bar { | |
height: 6px; | |
transition: width 0.5s ease; | |
background: linear-gradient(90deg, #3b82f6 0%, #10b981 100%); | |
} | |
.pulse { | |
animation: pulse 2s infinite; | |
} | |
@keyframes pulse { | |
0% { transform: scale(1); } | |
50% { transform: scale(1.05); } | |
100% { transform: scale(1); } | |
} | |
.feature-icon { | |
width: 80px; | |
height: 80px; | |
display: flex; | |
align-items: center; | |
justify-content: center; | |
border-radius: 20px; | |
margin: 0 auto 1.5rem; | |
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1); | |
} | |
.tech-card { | |
transition: all 0.3s ease; | |
background: rgba(255, 255, 255, 0.95); | |
backdrop-filter: blur(10px); | |
} | |
.tech-card:hover { | |
transform: translateY(-5px); | |
box-shadow: 0 10px 25px rgba(59, 130, 246, 0.3); | |
} | |
.modal { | |
display: none; | |
position: fixed; | |
z-index: 100; | |
left: 0; | |
top: 0; | |
width: 100%; | |
height: 100%; | |
background-color: rgba(0,0,0,0.7); | |
backdrop-filter: blur(5px); | |
} | |
.hero-image { | |
background-image: url('https://images.unsplash.com/photo-1551288049-bebda4e38f71?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80'); | |
background-size: cover; | |
background-position: center; | |
background-blend-mode: overlay; | |
} | |
.testimonial-card { | |
background: rgba(255, 255, 255, 0.95); | |
backdrop-filter: blur(10px); | |
transition: all 0.3s ease; | |
} | |
.testimonial-card:hover { | |
transform: translateY(-5px); | |
box-shadow: 0 10px 25px rgba(59, 130, 246, 0.3); | |
} | |
.price-card { | |
transition: all 0.3s ease; | |
background: rgba(255, 255, 255, 0.95); | |
backdrop-filter: blur(10px); | |
} | |
.price-card:hover { | |
transform: translateY(-5px); | |
box-shadow: 0 10px 25px rgba(59, 130, 246, 0.3); | |
} | |
.search-box { | |
background: rgba(255, 255, 255, 0.2); | |
backdrop-filter: blur(10px); | |
border: 1px solid rgba(255, 255, 255, 0.2); | |
} | |
.search-box input::placeholder { | |
color: rgba(255, 255, 255, 0.8); | |
} | |
</style> | |
</head> | |
<body class="font-sans bg-gray-50"> | |
<!-- Header --> | |
<header class="gradient-bg text-white sticky top-0 z-50"> | |
<div class="container mx-auto px-4 py-4"> | |
<div class="flex justify-between items-center"> | |
<div class="flex items-center space-x-3"> | |
<img src="https://cdn-icons-png.flaticon.com/512/681/681618.png" alt="Logo" class="h-10 w-10"> | |
<div> | |
<h1 class="text-2xl font-bold">AutoDomain Pro</h1> | |
<p class="text-sm opacity-80">Enregistrement instantané 24/7</p> | |
</div> | |
</div> | |
<nav class="hidden md:flex space-x-8"> | |
<a href="#features" class="hover:text-yellow-200 transition">Fonctionnalités</a> | |
<a href="#how-it-works" class="hover:text-yellow-200 transition">Technologie</a> | |
<a href="#pricing" class="hover:text-yellow-200 transition">Tarifs</a> | |
<a href="#testimonials" class="hover:text-yellow-200 transition">Témoignages</a> | |
</nav> | |
<div class="flex items-center space-x-4"> | |
<button id="loginBtn" class="px-4 py-2 rounded-full bg-white text-blue-600 font-semibold hover:bg-gray-100 transition">Connexion</button> | |
<button class="md:hidden" id="mobileMenuBtn"> | |
<i class="fas fa-bars text-2xl"></i> | |
</button> | |
</div> | |
</div> | |
</div> | |
</header> | |
<!-- Hero Section --> | |
<section class="gradient-bg hero-image text-white py-24"> | |
<div class="container mx-auto px-4 text-center"> | |
<div class="max-w-4xl mx-auto"> | |
<h2 class="text-4xl md:text-5xl font-bold mb-6 leading-tight">Enregistrement de Domaines Automatisé</h2> | |
<p class="text-xl md:text-2xl mb-10 opacity-90"> | |
Obtenez votre domaine, SSL, DNS et référencement en <span class="font-bold text-yellow-300">quelques secondes</span> avec notre système 24/7 | |
</p> | |
<div class="max-w-2xl mx-auto search-box rounded-xl p-2 flex"> | |
<input type="text" id="domainSearch" placeholder="Recherchez votre domaine..." class="flex-grow px-6 py-4 rounded-l-xl bg-transparent text-white focus:outline-none"> | |
<button id="searchBtn" class="bg-yellow-400 text-blue-900 px-8 py-4 rounded-r-xl hover:bg-yellow-300 transition font-bold"> | |
<i class="fas fa-search mr-2"></i>Rechercher | |
</button> | |
</div> | |
<div class="mt-8 flex flex-wrap justify-center gap-4"> | |
<div class="flex items-center bg-white bg-opacity-10 px-4 py-2 rounded-full"> | |
<i class="fas fa-check-circle text-yellow-300 mr-2"></i> | |
<span>Propagation DNS instantanée</span> | |
</div> | |
<div class="flex items-center bg-white bg-opacity-10 px-4 py-2 rounded-full"> | |
<i class="fas fa-check-circle text-yellow-300 mr-2"></i> | |
<span>SSL automatique</span> | |
</div> | |
<div class="flex items-center bg-white bg-opacity-10 px-4 py-2 rounded-full"> | |
<i class="fas fa-check-circle text-yellow-300 mr-2"></i> | |
<span>Référencement immédiat</span> | |
</div> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Domain Registration Process --> | |
<section class="py-16 bg-white" id="registration-process"> | |
<div class="container mx-auto px-4"> | |
<h2 class="text-3xl font-bold text-center mb-12">Processus d'Enregistrement Automatisé</h2> | |
<div class="flex justify-center mb-12"> | |
<img src="https://images.unsplash.com/photo-1563013544-824ae1b704d3?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80" alt="Processus d'enregistrement" class="rounded-xl shadow-lg w-full max-w-4xl"> | |
</div> | |
<div id="processContainer" class="hidden"> | |
<div class="max-w-4xl mx-auto bg-gray-50 rounded-xl p-6 mb-8"> | |
<div class="flex justify-between items-center mb-4"> | |
<h3 class="text-xl font-semibold">Enregistrement de <span id="currentDomain" class="text-blue-600">example.com</span></h3> | |
<span id="processTimer" class="bg-blue-100 text-blue-800 px-3 py-1 rounded-full text-sm">0s</span> | |
</div> | |
<div class="mb-4 bg-gray-200 rounded-full h-2"> | |
<div id="processProgress" class="progress-bar rounded-full" style="width: 0%"></div> | |
</div> | |
<div id="processSteps" class="grid grid-cols-2 md:grid-cols-4 gap-4"> | |
<!-- Steps will be added by JavaScript --> | |
</div> | |
</div> | |
<div id="processLogs" class="max-w-4xl mx-auto bg-gray-900 text-gray-100 rounded-xl p-6 font-mono text-sm h-64 overflow-y-auto"> | |
<!-- Logs will be added by JavaScript --> | |
</div> | |
<div class="max-w-4xl mx-auto mt-6 flex justify-center"> | |
<button id="completeRegistration" class="px-6 py-3 bg-green-600 text-white rounded-lg hover:bg-green-700 hidden"> | |
<i class="fas fa-check-circle mr-2"></i>Finaliser l'enregistrement | |
</button> | |
</div> | |
</div> | |
<div id="domainResults" class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 hidden"> | |
<!-- Domain cards will be added here by JavaScript --> | |
</div> | |
<div id="domainFeatures" class="mt-16"> | |
<h3 class="text-2xl font-semibold text-center mb-8">Extensions populaires</h3> | |
<div class="flex flex-wrap justify-center gap-3"> | |
<span class="px-4 py-2 bg-blue-100 text-blue-800 rounded-full cursor-pointer hover:bg-blue-200">.com</span> | |
<span class="px-4 py-2 bg-blue-100 text-blue-800 rounded-full cursor-pointer hover:bg-blue-200">.net</span> | |
<span class="px-4 py-2 bg-blue-100 text-blue-800 rounded-full cursor-pointer hover:bg-blue-200">.org</span> | |
<span class="px-4 py-2 bg-blue-100 text-blue-800 rounded-full cursor-pointer hover:bg-blue-200">.io</span> | |
<span class="px-4 py-2 bg-blue-100 text-blue-800 rounded-full cursor-pointer hover:bg-blue-200">.fr</span> | |
<span class="px-4 py-2 bg-blue-100 text-blue-800 rounded-full cursor-pointer hover:bg-blue-200">.ai</span> | |
<span class="px-4 py-2 bg-blue-100 text-blue-800 rounded-full cursor-pointer hover:bg-blue-200">.app</span> | |
<span class="px-4 py-2 bg-blue-100 text-blue-800 rounded-full cursor-pointer hover:bg-blue-200">.xyz</span> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Features Section --> | |
<section class="py-16 bg-gray-50" id="features"> | |
<div class="container mx-auto px-4"> | |
<h2 class="text-3xl font-bold text-center mb-12">Fonctionnalités Avancées</h2> | |
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> | |
<div class="domain-card p-8 rounded-xl"> | |
<div class="feature-icon bg-blue-100 text-blue-600"> | |
<img src="https://cdn-icons-png.flaticon.com/512/1006/1006771.png" alt="Enregistrement instantané" class="w-10 h-10"> | |
</div> | |
<h3 class="text-xl font-semibold mb-3 text-center">Enregistrement Instantané</h3> | |
<p class="text-gray-600 text-center"> | |
Votre domaine est enregistré directement auprès des registrars en temps réel, avec une propagation mondiale en quelques secondes. | |
</p> | |
</div> | |
<div class="domain-card p-8 rounded-xl"> | |
<div class="feature-icon bg-green-100 text-green-600"> | |
<img src="https://cdn-icons-png.flaticon.com/512/2933/2933245.png" alt="SSL Automatique" class="w-10 h-10"> | |
</div> | |
<h3 class="text-xl font-semibold mb-3 text-center">SSL Automatique</h3> | |
<p class="text-gray-600 text-center"> | |
Certificat SSL délivré et installé automatiquement avec renouvellement auto. Compatible avec tous les navigateurs. | |
</p> | |
</div> | |
<div class="domain-card p-8 rounded-xl"> | |
<div class="feature-icon bg-purple-100 text-purple-600"> | |
<img src="https://cdn-icons-png.flaticon.com/512/2885/2885257.png" alt="DNS Haute Performance" class="w-10 h-10"> | |
</div> | |
<h3 class="text-xl font-semibold mb-3 text-center">DNS Haute Performance</h3> | |
<p class="text-gray-600 text-center"> | |
Réseau Anycast mondial avec des temps de réponse inférieurs à 10ms. 100% uptime garanti. | |
</p> | |
</div> | |
<div class="domain-card p-8 rounded-xl"> | |
<div class="feature-icon bg-yellow-100 text-yellow-600"> | |
<img src="https://cdn-icons-png.flaticon.com/512/4150/4150900.png" alt="Référencement Automatique" class="w-10 h-10"> | |
</div> | |
<h3 class="text-xl font-semibold mb-3 text-center">Référencement Automatique</h3> | |
<p class="text-gray-600 text-center"> | |
Soumission automatique à Google Search Console et Analytics. Indexation accélérée. | |
</p> | |
</div> | |
<div class="domain-card p-8 rounded-xl"> | |
<div class="feature-icon bg-red-100 text-red-600"> | |
<img src="https://cdn-icons-png.flaticon.com/512/4260/4260882.png" alt="Monitoring 24/7" class="w-10 h-10"> | |
</div> | |
<h3 class="text-xl font-semibold mb-3 text-center">Monitoring 24/7</h3> | |
<p class="text-gray-600 text-center"> | |
Surveillance permanente de votre domaine avec alertes instantanées en cas de problème. | |
</p> | |
</div> | |
<div class="domain-card p-8 rounded-xl"> | |
<div class="feature-icon bg-indigo-100 text-indigo-600"> | |
<img src="https://cdn-icons-png.flaticon.com/512/4299/4299427.png" alt="API Automatisée" class="w-10 h-10"> | |
</div> | |
<h3 class="text-xl font-semibold mb-3 text-center">API Automatisée</h3> | |
<p class="text-gray-600 text-center"> | |
Intégration facile avec notre API RESTful pour automatiser vos processus métier. | |
</p> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- How It Works --> | |
<section class="py-16 bg-white" id="how-it-works"> | |
<div class="container mx-auto px-4"> | |
<h2 class="text-3xl font-bold text-center mb-12">Notre Technologie Exclusive</h2> | |
<div class="max-w-4xl mx-auto"> | |
<div class="mb-12"> | |
<div class="flex flex-col md:flex-row items-center gap-8 mb-8"> | |
<div class="w-full md:w-1/2"> | |
<img src="https://images.unsplash.com/photo-1558494949-ef010cbdcc31?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=1974&q=80" alt="Infrastructure DNS" class="rounded-xl shadow-lg w-full"> | |
</div> | |
<div class="w-full md:w-1/2"> | |
<h3 class="text-xl font-semibold mb-4 text-blue-600">1. Infrastructure DNS Globale</h3> | |
<p class="text-gray-700 mb-4"> | |
Notre réseau Anycast distribué sur 5 continents garantit des temps de réponse records : | |
</p> | |
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 mb-6"> | |
<div class="tech-card p-4 rounded-lg"> | |
<div class="flex items-center"> | |
<div class="w-3 h-3 bg-green-500 rounded-full mr-2"></div> | |
<h4 class="font-medium">Amsterdam</h4> | |
</div> | |
<p class="text-sm text-gray-600 mt-1">Temps moyen: 3ms</p> | |
</div> | |
<div class="tech-card p-4 rounded-lg"> | |
<div class="flex items-center"> | |
<div class="w-3 h-3 bg-green-500 rounded-full mr-2"></div> | |
<h4 class="font-medium">New York</h4> | |
</div> | |
<p class="text-sm text-gray-600 mt-1">Temps moyen: 5ms</p> | |
</div> | |
<div class="tech-card p-4 rounded-lg"> | |
<div class="flex items-center"> | |
<div class="w-3 h-3 bg-green-500 rounded-full mr-2"></div> | |
<h4 class="font-medium">Singapour</h4> | |
</div> | |
<p class="text-sm text-gray-600 mt-1">Temps moyen: 7ms</p> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="mb-12"> | |
<div class="flex flex-col md:flex-row items-center gap-8 mb-8"> | |
<div class="w-full md:w-1/2 order-2 md:order-1"> | |
<h3 class="text-xl font-semibold mb-4 text-blue-600">2. Propagation Instantanée</h3> | |
<p class="text-gray-700 mb-4"> | |
Grâce à nos partenariats avec les principaux registrars et fournisseurs DNS, votre domaine est disponible immédiatement : | |
</p> | |
<div class="tech-card p-6 rounded-lg"> | |
<div class="flex items-center mb-4"> | |
<div class="w-8 h-8 bg-blue-500 text-white rounded-full flex items-center justify-center mr-4">1</div> | |
<div> | |
<h4 class="font-medium">Enregistrement chez le registrar</h4> | |
<p class="text-sm text-gray-600">Temps réel via API directe</p> | |
</div> | |
</div> | |
<div class="flex items-center mb-4"> | |
<div class="w-8 h-8 bg-blue-500 text-white rounded-full flex items-center justify-center mr-4">2</div> | |
<div> | |
<h4 class="font-medium">Mise à jour des serveurs racine</h4> | |
<p class="text-sm text-gray-600">Propagation en 30 secondes</p> | |
</div> | |
</div> | |
<div class="flex items-center"> | |
<div class="w-8 h-8 bg-blue-500 text-white rounded-full flex items-center justify-center mr-4">3</div> | |
<div> | |
<h4 class="font-medium">Disponibilité mondiale</h4> | |
<p class="text-sm text-gray-600">Moins de 60 secondes</p> | |
</div> | |
</div> | |
</div> | |
</div> | |
<div class="w-full md:w-1/2 order-1 md:order-2"> | |
<img src="https://images.unsplash.com/photo-1563013544-824ae1b704d3?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80" alt="Propagation instantanée" class="rounded-xl shadow-lg w-full"> | |
</div> | |
</div> | |
</div> | |
<div> | |
<div class="flex flex-col md:flex-row items-center gap-8"> | |
<div class="w-full md:w-1/2"> | |
<img src="https://images.unsplash.com/photo-1551288049-bebda4e38f71?ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D&auto=format&fit=crop&w=2070&q=80" alt="Référencement Automatisé" class="rounded-xl shadow-lg w-full"> | |
</div> | |
<div class="w-full md:w-1/2"> | |
<h3 class="text-xl font-semibold mb-4 text-blue-600">3. Référencement Automatisé</h3> | |
<p class="text-gray-700 mb-4"> | |
Notre système soumet automatiquement votre site aux moteurs de recherche : | |
</p> | |
<div class="tech-card p-6 rounded-lg"> | |
<div class="flex items-center mb-4"> | |
<div class="w-10 h-10 bg-blue-100 rounded-full flex items-center justify-center mr-4"> | |
<i class="fab fa-google text-blue-600"></i> | |
</div> | |
<div> | |
<h4 class="font-medium">Google Search Console</h4> | |
<p class="text-sm text-gray-600">Indexation accélérée</p> | |
</div> | |
</div> | |
<div class="flex items-center mb-4"> | |
<div class="w-10 h-10 bg-blue-100 rounded-full flex items-center justify-center mr-4"> | |
<i class="fab fa-google text-blue-600"></i> | |
</div> | |
<div> | |
<h4 class="font-medium">Google Analytics</h4> | |
<p class="text-sm text-gray-600">Tracking immédiat</p> | |
</div> | |
</div> | |
<div class="flex items-center"> | |
<div class="w-10 h-10 bg-blue-100 rounded-full flex items-center justify-center mr-4"> | |
<i class="fas fa-search text-blue-600"></i> | |
</div> | |
<div> | |
<h4 class="font-medium">Sitemap XML</h4> | |
<p class="text-sm text-gray-600">Génération automatique</p> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Pricing Section --> | |
<section class="py-16 bg-gray-50" id="pricing"> | |
<div class="container mx-auto px-4"> | |
<h2 class="text-3xl font-bold text-center mb-12">Nos Offres</h2> | |
<div class="grid grid-cols-1 md:grid-cols-3 gap-8 max-w-5xl mx-auto"> | |
<div class="price-card rounded-xl overflow-hidden"> | |
<div class="bg-gray-100 py-8 px-8"> | |
<h3 class="text-xl font-semibold text-center">Starter</h3> | |
<div class="text-center mt-4"> | |
<span class="text-4xl font-bold">€9.99</span> | |
<span class="text-gray-600">/mois</span> | |
</div> | |
</div> | |
<div class="p-8"> | |
<ul class="space-y-3"> | |
<li class="flex items-center"> | |
<i class="fas fa-check text-green-500 mr-2"></i> | |
<span>1 domaine inclus</span> | |
</li> | |
<li class="flex items-center"> | |
<i class="fas fa-check text-green-500 mr-2"></i> | |
<span>SSL automatique</span> | |
</li> | |
<li class="flex items-center"> | |
<i class="fas fa-check text-green-500 mr-2"></i> | |
<span>DNS Basic</span> | |
</li> | |
<li class="flex items-center text-gray-400"> | |
<i class="fas fa-times text-red-400 mr-2"></i> | |
<span>Référencement avancé</span> | |
</li> | |
<li class="flex items-center text-gray-400"> | |
<i class="fas fa-times text-red-400 mr-2"></i> | |
<span>Monitoring 24/7</span> | |
</li> | |
</ul> | |
<button class="w-full mt-8 px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition"> | |
Commencer | |
</button> | |
</div> | |
</div> | |
<div class="price-card rounded-xl overflow-hidden transform scale-105 border-2 border-blue-500"> | |
<div class="bg-blue-500 text-white py-8 px-8"> | |
<h3 class="text-xl font-semibold text-center">Pro</h3> | |
<div class="text-center mt-4"> | |
<span class="text-4xl font-bold">€24.99</span> | |
<span class="opacity-80">/mois</span> | |
</div> | |
</div> | |
<div class="p-8"> | |
<ul class="space-y-3"> | |
<li class="flex items-center"> | |
<i class="fas fa-check text-green-500 mr-2"></i> | |
<span>5 domaines inclus</span> | |
</li> | |
<li class="flex items-center"> | |
<i class="fas fa-check text-green-500 mr-2"></i> | |
<span>SSL automatique</span> | |
</li> | |
<li class="flex items-center"> | |
<i class="fas fa-check text-green-500 mr-2"></i> | |
<span>DNS Premium</span> | |
</li> | |
<li class="flex items-center"> | |
<i class="fas fa-check text-green-500 mr-2"></i> | |
<span>Référencement avancé</span> | |
</li> | |
<li class="flex items-center"> | |
<i class="fas fa-check text-green-500 mr-2"></i> | |
<span>Monitoring 24/7</span> | |
</li> | |
</ul> | |
<button class="w-full mt-8 px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition"> | |
Choisir cette offre | |
</button> | |
</div> | |
</div> | |
<div class="price-card rounded-xl overflow-hidden"> | |
<div class="bg-gray-100 py-8 px-8"> | |
<h3 class="text-xl font-semibold text-center">Enterprise</h3> | |
<div class="text-center mt-4"> | |
<span class="text-4xl font-bold">€99.99</span> | |
<span class="text-gray-600">/mois</span> | |
</div> | |
</div> | |
<div class="p-8"> | |
<ul class="space-y-3"> | |
<li class="flex items-center"> | |
<i class="fas fa-check text-green-500 mr-2"></i> | |
<span>Domaines illimités</span> | |
</li> | |
<li class="flex items-center"> | |
<i class="fas fa-check text-green-500 mr-2"></i> | |
<span>SSL EV (Extended Validation)</span> | |
</li> | |
<li class="flex items-center"> | |
<i class="fas fa-check text-green-500 mr-2"></i> | |
<span>DNS Enterprise</span> | |
</li> | |
<li class="flex items-center"> | |
<i class="fas fa-check text-green-500 mr-2"></i> | |
<span>Référencement premium</span> | |
</li> | |
<li class="flex items-center"> | |
<i class="fas fa-check text-green-500 mr-2"></i> | |
<span>Support prioritaire 24/7</span> | |
</li> | |
</ul> | |
<button class="w-full mt-8 px-6 py-3 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition"> | |
Contactez-nous | |
</button> | |
</div> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- Testimonials --> | |
<section class="py-16 bg-white" id="testimonials"> | |
<div class="container mx-auto px-4"> | |
<h2 class="text-3xl font-bold text-center mb-12">Ils nous font confiance</h2> | |
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 max-w-6xl mx-auto"> | |
<div class="testimonial-card p-8 rounded-xl"> | |
<div class="flex items-center mb-4"> | |
<img src="https://randomuser.me/api/portraits/men/32.jpg" alt="Jean Dupont" class="w-12 h-12 rounded-full mr-4"> | |
<div> | |
<h4 class="font-semibold">Jean Dupont</h4> | |
<p class="text-sm text-gray-600">CEO, StartupTech</p> | |
</div> | |
</div> | |
<p class="text-gray-700"> | |
"J'ai enregistré mon domaine à 3h du matin et il était disponible partout dans le monde en moins d'une minute. Impressionnant !" | |
</p> | |
<div class="mt-4 text-yellow-400"> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
</div> | |
</div> | |
<div class="testimonial-card p-8 rounded-xl"> | |
<div class="flex items-center mb-4"> | |
<img src="https://randomuser.me/api/portraits/women/44.jpg" alt="Marie Simon" class="w-12 h-12 rounded-full mr-4"> | |
<div> | |
<h4 class="font-semibold">Marie Simon</h4> | |
<p class="text-sm text-gray-600">Directrice Marketing</p> | |
</div> | |
</div> | |
<p class="text-gray-700"> | |
"Le référencement automatique sur Google a fonctionné à merveille. Notre site était indexé en 24h seulement." | |
</p> | |
<div class="mt-4 text-yellow-400"> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
</div> | |
</div> | |
<div class="testimonial-card p-8 rounded-xl"> | |
<div class="flex items-center mb-4"> | |
<img src="https://randomuser.me/api/portraits/men/75.jpg" alt="Thomas Petit" class="w-12 h-12 rounded-full mr-4"> | |
<div> | |
<h4 class="font-semibold">Thomas Petit</h4> | |
<p class="text-sm text-gray-600">CTO, DevAgency</p> | |
</div> | |
</div> | |
<p class="text-gray-700"> | |
"L'API est parfaitement documentée et nous permet d'automatiser tous nos enregistrements de domaine. Un gain de temps énorme." | |
</p> | |
<div class="mt-4 text-yellow-400"> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star"></i> | |
<i class="fas fa-star-half-alt"></i> | |
</div> | |
</div> | |
</div> | |
</div> | |
</section> | |
<!-- CTA Section --> | |
<section class="py-16 gradient-bg text-white"> | |
<div class="container mx-auto px-4 text-center"> | |
<h2 class="text-3xl md:text-4xl font-bold mb-6">Prêt à enregistrer votre domaine en quelques secondes ?</h2> | |
<p class="text-xl mb-10 max-w-2xl mx-auto opacity-90"> | |
Essayez notre service gratuitement pendant 7 jours. Aucune carte de crédit requise. | |
</p> | |
<button class="px-8 py-4 bg-yellow-400 text-blue-900 rounded-xl hover:bg-yellow-300 transition font-bold text-lg"> | |
<i class="fas fa-bolt mr-2"></i>Commencer maintenant | |
</button> | |
</div> | |
</section> | |
<!-- Footer --> | |
<footer class="bg-gray-900 text-gray-400 py-12"> | |
<div class="container mx-auto px-4"> | |
<div class="grid grid-cols-1 md:grid-cols-4 gap-8"> | |
<div> | |
<div class="flex items-center mb-4"> | |
<img src="https://cdn-icons-png.flaticon.com/512/681/681618.png" alt="Logo" class="h-10 w-10 mr-3"> | |
<h3 class="text-white text-lg font-semibold">AutoDomain Pro</h3> | |
</div> | |
<p class="mb-4"> | |
La solution la plus rapide pour enregistrer et gérer vos domaines avec tous les services associés. | |
</p> | |
<div class="flex space-x-4"> | |
<a href="#" class="text-gray-400 hover:text-white"> | |
<i class="fab fa-twitter"></i> | |
</a> | |
<a href="#" class="text-gray-400 hover:text-white"> | |
<i class="fab fa-facebook"></i> | |
</a> | |
<a href="#" class="text-gray-400 hover:text-white"> | |
<i class="fab fa-linkedin"></i> | |
</a> | |
</div> | |
</div> | |
<div> | |
<h3 class="text-white text-lg font-semibold mb-4">Services</h3> | |
<ul class="space-y-2"> | |
<li><a href="#" class="hover:text-white transition">Enregistrement de domaine</a></li> | |
<li><a href="#" class="hover:text-white transition">Certificats SSL</a></li> | |
<li><a href="#" class="hover:text-white transition">Hébergement DNS</a></li> | |
<li><a href="#" class="hover:text-white transition">Référencement SEO</a></li> | |
<li><a href="#" class="hover:text-white transition">Monitoring</a></li> | |
</ul> | |
</div> | |
<div> | |
<h3 class="text-white text-lg font-semibold mb-4">Support</h3> | |
<ul class="space-y-2"> | |
<li><a href="#" class="hover:text-white transition">Centre d'aide</a></li> | |
<li><a href="#" class="hover:text-white transition">Documentation</a></li> | |
<li><a href="#" class="hover:text-white transition">API Developer</a></li> | |
<li><a href="#" class="hover:text-white transition">Statut du service</a></li> | |
<li><a href="#" class="hover:text-white transition">Contact</a></li> | |
</ul> | |
</div> | |
<div> | |
<h3 class="text-white text-lg font-semibold mb-4">Legal</h3> | |
<ul class="space-y-2"> | |
<li><a href="#" class="hover:text-white transition">Conditions générales</a></li> | |
<li><a href="#" class="hover:text-white transition">Politique de confidentialité</a></li> | |
<li><a href="#" class="hover:text-white transition">Politique de cookies</a></li> | |
<li><a href="#" class="hover:text-white transition">Mentions légales</a></li> | |
</ul> | |
</div> | |
</div> | |
<div class="border-t border-gray-800 mt-12 pt-8 text-center"> | |
<p>© 2023 AutoDomain Pro. Tous droits réservés.</p> | |
</div> | |
</div> | |
</footer> | |
<!-- Registration Process Modal --> | |
<div id="registrationModal" class="modal"> | |
<div class="modal-content"> | |
<div class="flex justify-between items-center mb-6"> | |
<h3 class="text-2xl font-bold">Enregistrement en cours</h3> | |
<button id="closeRegistrationModal" class="text-gray-500 hover:text-gray-700 text-2xl">×</button> | |
</div> | |
<div class="mb-6"> | |
<div class="flex justify-between items-center mb-2"> | |
<h4 id="modalDomainName" class="font-semibold">example.com</h4> | |
<span id="modalTimer" class="text-sm text-gray-600">0 secondes</span> | |
</div> | |
<div class="w-full bg-gray-200 rounded-full h-2.5"> | |
<div id="modalProgress" class="progress-bar h-2.5 rounded-full" style="width: 0%"></div> | |
</div> | |
</div> | |
<div id="modalSteps" class="mb-6"> | |
<!-- Steps will be added by JavaScript --> | |
</div> | |
<div id="modalLogs" class="bg-gray-100 p-4 rounded-lg font-mono text-sm h-64 overflow-y-auto mb-6"> | |
<!-- Logs will be added by JavaScript --> | |
</div> | |
<div class="flex justify-end"> | |
<button id="cancelRegistration" class="px-4 py-2 border border-gray-300 rounded-lg mr-2 hover:bg-gray-100"> | |
Annuler | |
</button> | |
<button id="continueRegistration" class="px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700"> | |
Continuer | |
</button> | |
</div> | |
</div> | |
</div> | |
<!-- Login Modal --> | |
<div id="loginModal" class="modal"> | |
<div class="modal-content"> | |
<div class="flex justify-between items-center mb-6"> | |
<h3 class="text-2xl font-bold">Connexion</h3> | |
<button id="closeLoginModal" class="text-gray-500 hover:text-gray-700 text-2xl">×</button> | |
</div> | |
<form id="loginForm"> | |
<div class="mb-4"> | |
<label for="loginEmail" class="block text-gray-700 mb-2">Email</label> | |
<input type="email" id="loginEmail" class="w-full px-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" required> | |
</div> | |
<div class="mb-6"> | |
<label for="loginPassword" class="block text-gray-700 mb-2">Mot de passe</label> | |
<input type="password" id="loginPassword" class="w-full px-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" required> | |
</div> | |
<button type="submit" class="w-full bg-blue-600 text-white py-3 rounded-lg hover:bg-blue-700 transition font-medium"> | |
Se connecter | |
</button> | |
<p class="text-center mt-4 text-sm text-gray-600"> | |
Pas encore de compte? <a href="#" id="showRegisterLink" class="text-blue-600 hover:underline">S'inscrire</a> | |
</p> | |
</form> | |
<form id="registerForm" class="hidden"> | |
<div class="mb-4"> | |
<label for="registerEmail" class="block text-gray-700 mb-2">Email</label> | |
<input type="email" id="registerEmail" class="w-full px-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" required> | |
</div> | |
<div class="mb-4"> | |
<label for="registerPassword" class="block text-gray-700 mb-2">Mot de passe</label> | |
<input type="password" id="registerPassword" class="w-full px-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" required> | |
</div> | |
<div class="mb-6"> | |
<label for="registerConfirmPassword" class="block text-gray-700 mb-2">Confirmer le mot de passe</label> | |
<input type="password" id="registerConfirmPassword" class="w-full px-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500" required> | |
</div> | |
<button type="submit" class="w-full bg-blue-600 text-white py-3 rounded-lg hover:bg-blue-700 transition font-medium"> | |
S'inscrire | |
</button> | |
<p class="text-center mt-4 text-sm text-gray-600"> | |
Déjà un compte? <a href="#" id="showLoginLink" class="text-blue-600 hover:underline">Se connecter</a> | |
</p> | |
</form> | |
</div> | |
</div> | |
<script> | |
// DOM Elements | |
const loginBtn = document.getElementById('loginBtn'); | |
const loginModal = document.getElementById('loginModal'); | |
const closeLoginModal = document.getElementById('closeLoginModal'); | |
const loginForm = document.getElementById('loginForm'); | |
const registerForm = document.getElementById('registerForm'); | |
const showRegisterLink = document.getElementById('showRegisterLink'); | |
const showLoginLink = document.getElementById('showLoginLink'); | |
const searchBtn = document.getElementById('searchBtn'); | |
const domainSearch = document.getElementById('domainSearch'); | |
const domainResults = document.getElementById('domainResults'); | |
const processContainer = document.getElementById('processContainer'); | |
const currentDomain = document.getElementById('currentDomain'); | |
const processTimer = document.getElementById('processTimer'); | |
const processProgress = document.getElementById('processProgress'); | |
const processSteps = document.getElementById('processSteps'); | |
const processLogs = document.getElementById('processLogs'); | |
const completeRegistration = document.getElementById('completeRegistration'); | |
const registrationModal = document.getElementById('registrationModal'); | |
const closeRegistrationModal = document.getElementById('closeRegistrationModal'); | |
const modalDomainName = document.getElementById('modalDomainName'); | |
const modalTimer = document.getElementById('modalTimer'); | |
const modalProgress = document.getElementById('modalProgress'); | |
const modalSteps = document.getElementById('modalSteps'); | |
const modalLogs = document.getElementById('modalLogs'); | |
const cancelRegistration = document.getElementById('cancelRegistration'); | |
const continueRegistration = document.getElementById('continueRegistration'); | |
const mobileMenuBtn = document.getElementById('mobileMenuBtn'); | |
const mobileMenu = document.getElementById('mobileMenu'); | |
// Sample domain data | |
const domains = [ | |
{ name: 'example', tld: '.com', price: 12.99, available: true }, | |
{ name: 'test', tld: '.net', price: 10.99, available: true }, | |
{ name: 'awesome', tld: '.org', price: 9.99, available: true }, | |
{ name: 'business', tld: '.io', price: 25.99, available: false }, | |
{ name: 'france', tld: '.fr', price: 15.99, available: true }, | |
{ name: 'shop', tld: '.shop', price: 20.99, available: true }, | |
{ name: 'tech', tld: '.ai', price: 49.99, available: true }, | |
{ name: 'app', tld: '.app', price: 18.99, available: false }, | |
{ name: 'creative', tld: '.xyz', price: 8.99, available: true } | |
]; | |
// Registration process steps | |
const registrationSteps = [ | |
{ name: 'Vérification disponibilité', duration: 1, description: 'Vérification auprès des registrars mondiaux' }, | |
{ name: 'Enregistrement du domaine', duration: 3, description: 'Enregistrement en temps réel via API' }, | |
{ name: 'Configuration DNS', duration: 2, description: 'Mise en place des serveurs Anycast' }, | |
{ name: 'Déploiement SSL', duration: 2, description: 'Certificat Let\'s Encrypt automatique' }, | |
{ name: 'Propagation mondiale', duration: 5, description: 'Mise à jour des serveurs racine DNS' }, | |
{ name: 'Soumission SEO', duration: 2, description: 'Google Search Console & Analytics' }, | |
{ name: 'Finalisation', duration: 1, description: 'Vérification complète du domaine' } | |
]; | |
// State | |
let selectedDomain = null; | |
let timerInterval = null; | |
let secondsElapsed = 0; | |
let currentStep = 0; | |
let isProcessRunning = false; | |
// Event Listeners | |
loginBtn.addEventListener('click', () => loginModal.style.display = 'block'); | |
closeLoginModal.addEventListener('click', () => loginModal.style.display = 'none'); | |
showRegisterLink.addEventListener('click', (e) => { | |
e.preventDefault(); | |
loginForm.classList.add('hidden'); | |
registerForm.classList.remove('hidden'); | |
}); | |
showLoginLink.addEventListener('click', (e) => { | |
e.preventDefault(); | |
registerForm.classList.add('hidden'); | |
loginForm.classList.remove('hidden'); | |
}); | |
searchBtn.addEventListener('click', searchDomains); | |
completeRegistration.addEventListener('click', completeDomainRegistration); | |
closeRegistrationModal.addEventListener('click', () => registrationModal.style.display = 'none'); | |
cancelRegistration.addEventListener('click', cancelDomainRegistration); | |
continueRegistration.addEventListener('click', continueDomainRegistration); | |
mobileMenuBtn.addEventListener('click', () => mobileMenu.classList.toggle('hidden')); | |
// Form submissions | |
loginForm.addEventListener('submit', handleLogin); | |
registerForm.addEventListener('submit', handleRegister); | |
// Search domains | |
function searchDomains() { | |
const query = domainSearch.value.trim().toLowerCase(); | |
if (!query) { | |
alert('Veuillez entrer un terme de recherche'); | |
return; | |
} | |
// Filter domains (in a real app, this would be a server call) | |
const results = domains.filter(domain => | |
domain.name.includes(query) || domain.tld.includes(query) | |
); | |
// Display results | |
domainResults.innerHTML = ''; | |
if (results.length === 0) { | |
domainResults.innerHTML = '<p class="text-gray-500 text-center col-span-3">Aucun domaine trouvé</p>'; | |
} else { | |
results.forEach(domain => { | |
const domainEl = document.createElement('div'); | |
domainEl.className = 'domain-card rounded-xl overflow-hidden shadow-md hover:shadow-lg transition'; | |
domainEl.innerHTML = ` | |
<div class="p-6"> | |
<div class="flex justify-between items-start mb-4"> | |
<h3 class="text-xl font-bold text-gray-800">${domain.name}<span class="text-blue-600">${domain.tld}</span></h3> | |
<span class="px-3 py-1 rounded-full text-sm ${domain.available ? 'bg-green-100 text-green-800' : 'bg-red-100 text-red-800'}"> | |
${domain.available ? 'Disponible' : 'Indisponible'} | |
</span> | |
</div> | |
<div class="flex justify-between items-center"> | |
<span class="text-2xl font-bold text-blue-600">€${domain.price.toFixed(2)}</span> | |
<button class="register-domain px-4 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition ${!domain.available ? 'opacity-50 cursor-not-allowed' : ''}" | |
data-name="${domain.name}" | |
data-tld="${domain.tld}" | |
data-price="${domain.price}" | |
${!domain.available ? 'disabled' : ''}> | |
${!domain.available ? 'Indisponible' : 'Enregistrer'} | |
</button> | |
</div> | |
</div> | |
`; | |
domainResults.appendChild(domainEl); | |
}); | |
// Add event listeners to register buttons | |
document.querySelectorAll('.register-domain').forEach(btn => { | |
btn.addEventListener('click', (e) => { | |
if (btn.disabled) return; | |
const domainName = btn.getAttribute('data-name'); | |
const domainTld = btn.getAttribute('data-tld'); | |
const domainPrice = parseFloat(btn.getAttribute('data-price')); | |
startDomainRegistration(domainName, domainTld, domainPrice); | |
}); | |
}); | |
} | |
domainResults.classList.remove('hidden'); | |
} | |
// Start domain registration | |
function startDomainRegistration(name, tld, price) { | |
selectedDomain = { name, tld, price }; | |
currentDomain.textContent = `${name}${tld}`; | |
modalDomainName.textContent = `${name}${tld}`; | |
// Reset process | |
secondsElapsed = 0; | |
currentStep = 0; | |
processSteps.innerHTML = ''; | |
processLogs.innerHTML = ''; | |
modalSteps.innerHTML = ''; | |
modalLogs.innerHTML = ''; | |
// Show process container | |
processContainer.classList.remove('hidden'); | |
// Start timer | |
startTimer(); | |
// Start process steps | |
startNextStep(); | |
// Show modal | |
registrationModal.style.display = 'block'; | |
} | |
// Start timer | |
function startTimer() { | |
clearInterval(timerInterval); | |
secondsElapsed = 0; | |
updateTimer(); | |
timerInterval = setInterval(updateTimer, 1000); | |
} | |
// Update timer | |
function updateTimer() { | |
secondsElapsed++; | |
processTimer.textContent = `${secondsElapsed}s`; | |
modalTimer.textContent = `${secondsElapsed} secondes`; | |
} | |
// Start next step | |
function startNextStep() { | |
if (currentStep >= registrationSteps.length) { | |
completeProcess(); | |
return; | |
} | |
const step = registrationSteps[currentStep]; | |
// Update progress | |
const progress = ((currentStep) / registrationSteps.length) * 100; | |
processProgress.style.width = `${progress}%`; | |
modalProgress.style.width = `${progress}%`; | |
// Add step to UI | |
const stepEl = document.createElement('div'); | |
stepEl.className = 'bg-gray-50 p-4 rounded-lg'; | |
stepEl.innerHTML = ` | |
<div class="flex items-center"> | |
<div class="w-8 h-8 rounded-full bg-blue-100 text-blue-600 flex items-center justify-center mr-4"> | |
${currentStep + 1} | |
</div> | |
<div> | |
<h4 class="font-medium">${step.name}</h4> | |
<p class="text-sm text-gray-600">${step.description}</p> | |
</div> | |
</div> | |
`; | |
processSteps.appendChild(stepEl); | |
const modalStepEl = stepEl.cloneNode(true); | |
modalSteps.appendChild(modalStepEl); | |
// Add log entry | |
addLogEntry(`Début: ${step.name}`, 'info'); | |
// Simulate step processing | |
setTimeout(() => { | |
addLogEntry(`${step.name} terminé avec succès`, 'success'); | |
currentStep++; | |
startNextStep(); | |
}, step.duration * 1000); | |
} | |
// Add log entry | |
function addLogEntry(message, type) { | |
const now = new Date(); | |
const timeString = `${now.getHours().toString().padStart(2, '0')}:${now.getMinutes().toString().padStart(2, '0')}:${now.getSeconds().toString().padStart(2, '0')}`; | |
const logEntry = document.createElement('div'); | |
logEntry.className = 'log-entry'; | |
logEntry.innerHTML = ` | |
<span class="log-time">${timeString}</span> | |
<span class="${type === 'success' ? 'text-green-600' : type === 'warning' ? 'text-yellow-600' : type === 'error' ? 'text-red-600' : 'text-gray-600'}">${message}</span> | |
`; | |
processLogs.appendChild(logEntry); | |
processLogs.scrollTop = processLogs.scrollHeight; | |
const modalLogEntry = logEntry.cloneNode(true); | |
modalLogs.appendChild(modalLogEntry); | |
modalLogs.scrollTop = modalLogs.scrollHeight; | |
} | |
// Complete process | |
function completeProcess() { | |
clearInterval(timerInterval); | |
isProcessRunning = false; | |
// Update progress to 100% | |
processProgress.style.width = '100%'; | |
modalProgress.style.width = '100%'; | |
// Show complete button | |
completeRegistration.classList.remove('hidden'); | |
// Add final log entry | |
addLogEntry('Enregistrement du domaine terminé avec succès!', 'success'); | |
addLogEntry(`Le domaine ${selectedDomain.name}${selectedDomain.tld} est maintenant disponible mondialement`, 'info'); | |
// In a real app, you would redirect to domain management or show success message | |
} | |
// Complete domain registration | |
function completeDomainRegistration() { | |
registrationModal.style.display = 'none'; | |
alert(`Félicitations! Le domaine ${selectedDomain.name}${selectedDomain.tld} a été enregistré avec succès.`); | |
// Reset process | |
processContainer.classList.add('hidden'); | |
completeRegistration.classList.add('hidden'); | |
} | |
// Cancel domain registration | |
function cancelDomainRegistration() { | |
clearInterval(timerInterval); | |
registrationModal.style.display = 'none'; | |
processContainer.classList.add('hidden'); | |
completeRegistration.classList.add('hidden'); | |
alert('Enregistrement du domaine annulé.'); | |
} | |
// Continue domain registration | |
function continueDomainRegistration() { | |
registrationModal.style.display = 'none'; | |
} | |
// Handle login | |
function handleLogin(e) { | |
e.preventDefault(); | |
const email = document.getElementById('loginEmail').value; | |
const password = document.getElementById('loginPassword').value; | |
// Simple validation (in a real app, this would be a server call) | |
if (email && password) { | |
alert('Connexion réussie!'); | |
loginModal.style.display = 'none'; | |
loginForm.reset(); | |
} else { | |
alert('Veuillez entrer un email et un mot de passe valides'); | |
} | |
} | |
// Handle register | |
function handleRegister(e) { | |
e.preventDefault(); | |
const email = document.getElementById('registerEmail').value; | |
const password = document.getElementById('registerPassword').value; | |
const confirmPassword = document.getElementById('registerConfirmPassword').value; | |
if (password !== confirmPassword) { | |
alert('Les mots de passe ne correspondent pas'); | |
return; | |
} | |
if (email && password) { | |
alert('Inscription réussie! Vous pouvez maintenant vous connecter.'); | |
registerForm.classList.add('hidden'); | |
loginForm.classList.remove('hidden'); | |
registerForm.reset(); | |
} | |
} | |
// Smooth scrolling for anchor links | |
document.querySelectorAll('a[href^="#"]').forEach(anchor => { | |
anchor.addEventListener('click', function (e) { | |
e.preventDefault(); | |
const targetId = this.getAttribute('href'); | |
if (targetId === '#') return; | |
const targetElement = document.querySelector(targetId); | |
if (targetElement) { | |
targetElement.scrollIntoView({ | |
behavior: 'smooth' | |
}); | |
// Close mobile menu if open | |
mobileMenu.classList.add('hidden'); | |
} | |
}); | |
}); | |
</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/autodomain" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
</html> |