MagoDigi commited on
Commit
4b8de9c
·
verified ·
1 Parent(s): a6afdbe

Agrega estas imágenes coherentemente con el contexto de la landing page, en un bloque tipo carrusel funcional, debes optimizar las imágenes para que tenga un diseño y tamaño coherente como la imagen de la portada, debe tener un titulo atractivo y otra columna con la descripción de las imágenes.

Browse files
Files changed (3) hide show
  1. index.html +63 -1
  2. script.js +57 -0
  3. style.css +38 -0
index.html CHANGED
@@ -48,9 +48,71 @@
48
  </div>
49
  </div>
50
  </section>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
51
 
52
  <!-- Problem Section -->
53
- <section class="py-20 px-4 bg-gray-50">
54
  <div class="max-w-6xl mx-auto">
55
  <h2 class="text-3xl md:text-4xl font-bold text-center mb-16">El problema que todos conocemos (pero nadie soluciona)</h2>
56
  <div class="grid md:grid-cols-3 gap-8">
 
48
  </div>
49
  </div>
50
  </section>
51
+ <!-- Product Showcase Section -->
52
+ <section class="py-20 px-4 bg-white">
53
+ <div class="max-w-6xl mx-auto">
54
+ <h2 class="text-3xl md:text-4xl font-bold text-center mb-16">Descubre el poder de Bikelo en acción</h2>
55
+
56
+ <div class="grid md:grid-cols-2 gap-12 items-center">
57
+ <div class="relative">
58
+ <div class="carousel-container relative overflow-hidden rounded-xl shadow-2xl border-2 border-primary">
59
+ <div class="carousel-slides flex transition-transform duration-300">
60
+ <div class="carousel-slide min-w-full">
61
+ <img src="https://huggingface.co/spaces/MagoDigi/bikelo-log-stica-ciclista-en-ia/resolve/main/images/Captura_Dashboard_bikelo.jpeg"
62
+ alt="Dashboard Bikelo" class="w-full h-auto object-cover">
63
+ </div>
64
+ <div class="carousel-slide min-w-full">
65
+ <img src="https://huggingface.co/spaces/MagoDigi/bikelo-log-stica-ciclista-en-ia/resolve/main/images/Captura_Busqueda_bikelo3.jpeg"
66
+ alt="Búsqueda inteligente" class="w-full h-auto object-cover">
67
+ </div>
68
+ <div class="carousel-slide min-w-full">
69
+ <img src="https://huggingface.co/spaces/MagoDigi/bikelo-log-stica-ciclista-en-ia/resolve/main/images/Captura_filtros_bikelo.jpeg"
70
+ alt="Filtros avanzados" class="w-full h-auto object-cover">
71
+ </div>
72
+ <div class="carousel-slide min-w-full">
73
+ <img src="https://huggingface.co/spaces/MagoDigi/bikelo-log-stica-ciclista-en-ia/resolve/main/images/Captura_Historial_bikelo6.jpeg"
74
+ alt="Historial completo" class="w-full h-auto object-cover">
75
+ </div>
76
+ </div>
77
+ <button class="carousel-prev absolute left-4 top-1/2 -translate-y-1/2 bg-white bg-opacity-80 text-secondary p-2 rounded-full shadow-md hover:bg-primary transition-all">
78
+ <i data-feather="chevron-left"></i>
79
+ </button>
80
+ <button class="carousel-next absolute right-4 top-1/2 -translate-y-1/2 bg-white bg-opacity-80 text-secondary p-2 rounded-full shadow-md hover:bg-primary transition-all">
81
+ <i data-feather="chevron-right"></i>
82
+ </button>
83
+ <div class="carousel-dots flex justify-center gap-2 absolute bottom-4 left-0 right-0">
84
+ <button class="w-3 h-3 rounded-full bg-white bg-opacity-50 hover:bg-opacity-100 transition-all dot" data-index="0"></button>
85
+ <button class="w-3 h-3 rounded-full bg-white bg-opacity-50 hover:bg-opacity-100 transition-all dot" data-index="1"></button>
86
+ <button class="w-3 h-3 rounded-full bg-white bg-opacity-50 hover:bg-opacity-100 transition-all dot" data-index="2"></button>
87
+ <button class="w-3 h-3 rounded-full bg-white bg-opacity-50 hover:bg-opacity-100 transition-all dot" data-index="3"></button>
88
+ </div>
89
+ </div>
90
+ </div>
91
+
92
+ <div class="space-y-6">
93
+ <div class="feature-description active">
94
+ <h3 class="text-2xl font-bold text-primary mb-3">Dashboard Inteligente</h3>
95
+ <p class="text-gray-600">Controla todos los aspectos de tu taller desde un único panel intuitivo. Visualiza KPIs clave, estado de reparaciones y métricas financieras en tiempo real.</p>
96
+ </div>
97
+ <div class="feature-description hidden">
98
+ <h3 class="text-2xl font-bold text-primary mb-3">Búsqueda Multicriterio</h3>
99
+ <p class="text-gray-600">Encuentra cualquier pieza en segundos con nuestro buscador avanzado. Filtra por marca, modelo, compatibilidad y disponibilidad en tiempo real.</p>
100
+ </div>
101
+ <div class="feature-description hidden">
102
+ <h3 class="text-2xl font-bold text-primary mb-3">Filtros Avanzados</h3>
103
+ <p class="text-gray-600">Navega fácilmente por tu inventario con filtros inteligentes que se adaptan a tus necesidades específicas de búsqueda y categorización.</p>
104
+ </div>
105
+ <div class="feature-description hidden">
106
+ <h3 class="text-2xl font-bold text-primary mb-3">Historial Completo</h3>
107
+ <p class="text-gray-600">Accede al historial completo de cada bicicleta y cliente. Todas las reparaciones, presupuestos y notas organizadas y fáciles de consultar.</p>
108
+ </div>
109
+ </div>
110
+ </div>
111
+ </div>
112
+ </section>
113
 
114
  <!-- Problem Section -->
115
+ <section class="py-20 px-4 bg-gray-50">
116
  <div class="max-w-6xl mx-auto">
117
  <h2 class="text-3xl md:text-4xl font-bold text-center mb-16">El problema que todos conocemos (pero nadie soluciona)</h2>
118
  <div class="grid md:grid-cols-3 gap-8">
script.js CHANGED
@@ -1,3 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  // Form handling
2
  document.addEventListener('DOMContentLoaded', function() {
3
  const demoForm = document.querySelector('form');
 
1
+
2
+ // Carousel functionality
3
+ function initCarousel() {
4
+ const carousel = document.querySelector('.carousel-slides');
5
+ const prevBtn = document.querySelector('.carousel-prev');
6
+ const nextBtn = document.querySelector('.carousel-next');
7
+ const dots = document.querySelectorAll('.dot');
8
+ const descriptions = document.querySelectorAll('.feature-description');
9
+ let currentIndex = 0;
10
+ const totalSlides = document.querySelectorAll('.carousel-slide').length;
11
+
12
+ function updateCarousel() {
13
+ carousel.style.transform = `translateX(-${currentIndex * 100}%)`;
14
+
15
+ // Update dots
16
+ dots.forEach((dot, index) => {
17
+ dot.classList.toggle('active', index === currentIndex);
18
+ });
19
+
20
+ // Update descriptions
21
+ descriptions.forEach((desc, index) => {
22
+ desc.classList.toggle('hidden', index !== currentIndex);
23
+ desc.classList.toggle('active', index === currentIndex);
24
+ });
25
+ }
26
+
27
+ // Navigation
28
+ prevBtn.addEventListener('click', () => {
29
+ currentIndex = (currentIndex - 1 + totalSlides) % totalSlides;
30
+ updateCarousel();
31
+ });
32
+
33
+ nextBtn.addEventListener('click', () => {
34
+ currentIndex = (currentIndex + 1) % totalSlides;
35
+ updateCarousel();
36
+ });
37
+
38
+ // Dot navigation
39
+ dots.forEach(dot => {
40
+ dot.addEventListener('click', () => {
41
+ currentIndex = parseInt(dot.dataset.index);
42
+ updateCarousel();
43
+ });
44
+ });
45
+
46
+ // Auto-rotate (optional)
47
+ setInterval(() => {
48
+ currentIndex = (currentIndex + 1) % totalSlides;
49
+ updateCarousel();
50
+ }, 5000);
51
+ }
52
+
53
+ // Initialize carousel if exists
54
+ if (document.querySelector('.carousel-container')) {
55
+ initCarousel();
56
+ }
57
+
58
  // Form handling
59
  document.addEventListener('DOMContentLoaded', function() {
60
  const demoForm = document.querySelector('form');
style.css CHANGED
@@ -70,6 +70,44 @@
70
  .delay-300 {
71
  animation-delay: 0.3s;
72
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
 
74
  /* Smooth scrolling */
75
  html {
 
70
  .delay-300 {
71
  animation-delay: 0.3s;
72
  }
73
+ /* Carousel Styles */
74
+ .carousel-container {
75
+ aspect-ratio: 16/9;
76
+ }
77
+
78
+ .carousel-slides {
79
+ height: 100%;
80
+ }
81
+
82
+ .carousel-slide {
83
+ height: 100%;
84
+ }
85
+
86
+ .carousel-slide img {
87
+ height: 100%;
88
+ object-fit: cover;
89
+ }
90
+
91
+ .carousel-prev, .carousel-next {
92
+ width: 40px;
93
+ height: 40px;
94
+ display: flex;
95
+ align-items: center;
96
+ justify-content: center;
97
+ }
98
+
99
+ .carousel-prev:hover, .carousel-next:hover {
100
+ background: #FFB700 !important;
101
+ }
102
+
103
+ .carousel-dots .dot.active {
104
+ background: #FFB700 !important;
105
+ opacity: 1;
106
+ }
107
+
108
+ .feature-description {
109
+ transition: opacity 0.3s ease;
110
+ }
111
 
112
  /* Smooth scrolling */
113
  html {