jfand commited on
Commit
89b908c
·
verified ·
1 Parent(s): 4af909c

c'est presque parfai tmasi ces tpas encore le cas

Browse files
Files changed (4) hide show
  1. components/navbar.js +14 -3
  2. index.html +10 -9
  3. script.js +26 -5
  4. style.css +22 -2
components/navbar.js CHANGED
@@ -41,14 +41,25 @@ class CustomNavbar extends HTMLElement {
41
  <a href="#signup" class="bg-primary-500 hover:bg-primary-600 text-white px-4 py-2 rounded-lg font-medium transition-colors">
42
  Get Started
43
  </a>
44
- <button class="md:hidden text-neutral-300">
45
  <i data-feather="menu"></i>
46
  </button>
47
- </div>
48
  </div>
49
  </nav>
 
 
 
 
 
 
 
 
 
 
 
50
  `;
51
- }
52
  }
53
 
54
  customElements.define('custom-navbar', CustomNavbar);
 
41
  <a href="#signup" class="bg-primary-500 hover:bg-primary-600 text-white px-4 py-2 rounded-lg font-medium transition-colors">
42
  Get Started
43
  </a>
44
+ <button class="md:hidden text-neutral-300" aria-label="Toggle menu" aria-controls="mobile-menu" aria-expanded="false">
45
  <i data-feather="menu"></i>
46
  </button>
47
+ </div>
48
  </div>
49
  </nav>
50
+
51
+ <!-- Mobile menu -->
52
+ <div id="mobile-menu" class="hidden md:hidden bg-neutral-800 border-t border-neutral-700 px-4 py-2">
53
+ <div class="flex flex-col gap-3">
54
+ <a href="#features" class="nav-link text-neutral-300 hover:text-primary-400 px-3 py-2">Features</a>
55
+ <a href="#how-it-works" class="nav-link text-neutral-300 hover:text-primary-400 px-3 py-2">How It Works</a>
56
+ <a href="#pricing" class="nav-link text-neutral-300 hover:text-primary-400 px-3 py-2">Pricing</a>
57
+ <a href="#demo" class="nav-link text-neutral-300 hover:text-primary-400 px-3 py-2">Demo</a>
58
+ <a href="#login" class="nav-link text-neutral-300 hover:text-primary-400 px-3 py-2">Log In</a>
59
+ </div>
60
+ </div>
61
  `;
62
+ }
63
  }
64
 
65
  customElements.define('custom-navbar', CustomNavbar);
index.html CHANGED
@@ -5,9 +5,8 @@
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
  <title>RecoFuchsia - AI Recommendations Engine</title>
7
  <script src="https://cdn.tailwindcss.com"></script>
8
- <script src="https://unpkg.com/feather-icons"></script>
9
  <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
10
- <link rel="stylesheet" href="style.css">
11
  <script>
12
  tailwind.config = {
13
  theme: {
@@ -48,15 +47,15 @@
48
  <p class="text-neutral-400 text-lg mb-8 max-w-lg">
49
  Our fuchsia-powered AI engine analyzes user behavior to deliver hyper-relevant recommendations that increase engagement and sales.
50
  </p>
51
- <div class="flex gap-4">
52
- <a href="#demo" class="bg-primary-500 hover:bg-primary-600 text-white px-6 py-3 rounded-lg font-medium transition-colors">
53
  Request Demo
54
  </a>
55
- <a href="#how-it-works" class="border border-neutral-700 hover:border-neutral-600 text-neutral-300 px-6 py-3 rounded-lg font-medium transition-colors">
56
  How It Works
57
  </a>
58
  </div>
59
- </div>
60
  <div class="relative">
61
  <div class="absolute -top-8 -left-8 w-64 h-64 rounded-full bg-primary-900 opacity-20 blur-3xl"></div>
62
  <div class="relative bg-neutral-800 border border-neutral-700 rounded-2xl p-6 shadow-xl">
@@ -155,10 +154,12 @@
155
 
156
  <script src="components/navbar.js"></script>
157
  <script src="components/footer.js"></script>
158
- <script src="script.js"></script>
159
- <script>
160
  feather.replace();
 
 
 
161
  </script>
162
- <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
163
  </body>
164
  </html>
 
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
  <title>RecoFuchsia - AI Recommendations Engine</title>
7
  <script src="https://cdn.tailwindcss.com"></script>
 
8
  <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
9
+ <link rel="stylesheet" href="style.css">
10
  <script>
11
  tailwind.config = {
12
  theme: {
 
47
  <p class="text-neutral-400 text-lg mb-8 max-w-lg">
48
  Our fuchsia-powered AI engine analyzes user behavior to deliver hyper-relevant recommendations that increase engagement and sales.
49
  </p>
50
+ <div class="flex flex-wrap gap-4">
51
+ <a href="#demo" class="bg-primary-500 hover:bg-primary-600 text-white px-6 py-3 rounded-lg font-medium transition-colors whitespace-nowrap">
52
  Request Demo
53
  </a>
54
+ <a href="#how-it-works" class="border border-neutral-700 hover:border-neutral-600 text-neutral-300 px-6 py-3 rounded-lg font-medium transition-colors whitespace-nowrap">
55
  How It Works
56
  </a>
57
  </div>
58
+ </div>
59
  <div class="relative">
60
  <div class="absolute -top-8 -left-8 w-64 h-64 rounded-full bg-primary-900 opacity-20 blur-3xl"></div>
61
  <div class="relative bg-neutral-800 border border-neutral-700 rounded-2xl p-6 shadow-xl">
 
154
 
155
  <script src="components/navbar.js"></script>
156
  <script src="components/footer.js"></script>
157
+ <script src="script.js" defer></script>
158
+ <script>
159
  feather.replace();
160
+ document.addEventListener('DOMContentLoaded', function() {
161
+ // Initialize any needed JavaScript here
162
+ });
163
  </script>
 
164
  </body>
165
  </html>
script.js CHANGED
@@ -7,16 +7,37 @@ document.querySelectorAll('a[href^="#"]').forEach(anchor => {
7
  });
8
  });
9
  });
10
-
11
  // Intersection Observer for animations
12
  const observer = new IntersectionObserver((entries) => {
13
  entries.forEach(entry => {
14
  if (entry.isIntersecting) {
15
  entry.target.classList.add('animate-fadeIn');
 
16
  }
17
  });
18
- }, { threshold: 0.1 });
19
-
20
- document.querySelectorAll('.animate-on-scroll').forEach(el => {
 
 
21
  observer.observe(el);
22
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  });
8
  });
9
  });
 
10
  // Intersection Observer for animations
11
  const observer = new IntersectionObserver((entries) => {
12
  entries.forEach(entry => {
13
  if (entry.isIntersecting) {
14
  entry.target.classList.add('animate-fadeIn');
15
+ observer.unobserve(entry.target);
16
  }
17
  });
18
+ }, {
19
+ threshold: 0.1,
20
+ rootMargin: '0px 0px -100px 0px'
21
+ });
22
+ document.querySelectorAll('[class*="animate-"]').forEach(el => {
23
  observer.observe(el);
24
+ });
25
+
26
+ // Better mobile menu toggle (for future implementation)
27
+ function setupMobileMenu() {
28
+ const menuButton = document.querySelector('[aria-controls="mobile-menu"]');
29
+ if (menuButton) {
30
+ const menu = document.getElementById('mobile-menu');
31
+ menuButton.addEventListener('click', () => {
32
+ const expanded = menuButton.getAttribute('aria-expanded') === 'true';
33
+ menuButton.setAttribute('aria-expanded', !expanded);
34
+ menu.classList.toggle('hidden');
35
+ });
36
+ }
37
+ }
38
+
39
+ // Initialize when DOM is loaded
40
+ document.addEventListener('DOMContentLoaded', () => {
41
+ setupMobileMenu();
42
+ feather.replace();
43
+ });
style.css CHANGED
@@ -22,7 +22,6 @@ body {
22
  ::-webkit-scrollbar-thumb:hover {
23
  background: #c026d3;
24
  }
25
-
26
  /* Animation for hover effects */
27
  .hover-scale {
28
  transition: transform 0.2s ease;
@@ -30,4 +29,25 @@ body {
30
 
31
  .hover-scale:hover {
32
  transform: translateY(-2px);
33
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
22
  ::-webkit-scrollbar-thumb:hover {
23
  background: #c026d3;
24
  }
 
25
  /* Animation for hover effects */
26
  .hover-scale {
27
  transition: transform 0.2s ease;
 
29
 
30
  .hover-scale:hover {
31
  transform: translateY(-2px);
32
+ }
33
+
34
+ /* Better focus styles */
35
+ :focus {
36
+ outline: 2px solid #d946ef;
37
+ outline-offset: 2px;
38
+ }
39
+
40
+ /* Responsive improvements */
41
+ @media (max-width: 640px) {
42
+ .hero-section {
43
+ flex-direction: column-reverse;
44
+ }
45
+
46
+ .hero-content {
47
+ text-align: center;
48
+ }
49
+
50
+ .hero-buttons {
51
+ justify-content: center;
52
+ }
53
+ }