diff --git a/src/assets/staff/djcathie.jpg b/src/assets/staff/djcathie.jpg new file mode 100644 index 0000000..bebe60a Binary files /dev/null and b/src/assets/staff/djcathie.jpg differ diff --git a/src/assets/staff/letialex.jpg b/src/assets/staff/letialex.jpg new file mode 100644 index 0000000..9b8a2cd Binary files /dev/null and b/src/assets/staff/letialex.jpg differ diff --git a/src/components/FloatingButton.tsx b/src/components/FloatingButton.tsx index 76cfe2a..2ea98ba 100644 --- a/src/components/FloatingButton.tsx +++ b/src/components/FloatingButton.tsx @@ -47,10 +47,10 @@ const FloatingButton = () => { )} diff --git a/src/components/HeroSection.tsx b/src/components/HeroSection.tsx index d5f73b4..9f64423 100644 --- a/src/components/HeroSection.tsx +++ b/src/components/HeroSection.tsx @@ -60,7 +60,7 @@ const HeroSection = () => { initial={{ opacity: 0, y: 30 }} animate={{ opacity: 1, y: 0 }} transition={{ delay: 0.4 }} - className="font-hero text-4xl md:text-6xl lg:text-8xl break-words font-black text-primary-foreground mb-4 leading-tight" + className="font-hero text-4xl md:text-7xl lg:text-8xl font-bold text-primary-foreground mb-4 leading-tight" > {EVENT_INFO.name} @@ -84,7 +84,7 @@ const HeroSection = () => { {countdownItems.map((item) => (
- + {String(item.value).padStart(2, "0")}
diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx index a89fbd3..4a7d1d8 100644 --- a/src/components/Navbar.tsx +++ b/src/components/Navbar.tsx @@ -32,7 +32,7 @@ const Navbar = () => { className={`fixed top-0 left-0 right-0 z-50 transition-all duration-300 ${ scrolled ? "bg-background shadow-card" - : "bg-background" + : "bg-background-white" }`} >
@@ -47,7 +47,7 @@ const Navbar = () => { {link.label} diff --git a/src/components/StaffSection.tsx b/src/components/StaffSection.tsx index 5051c0f..fc9b84c 100644 --- a/src/components/StaffSection.tsx +++ b/src/components/StaffSection.tsx @@ -1,4 +1,5 @@ -import { motion } from "framer-motion"; +import { useState } from "react"; +import { motion, AnimatePresence } from "framer-motion"; import { STAFF } from "@/data/event-data"; import { Instagram, User, ChevronLeft, ChevronRight } from "lucide-react"; @@ -10,6 +11,14 @@ const roleBadgeClass: Record = { }; const StaffSection = () => { + const [filter, setFilter] = useState("All"); + + const filteredStaff = STAFF.filter((member) => { + if (filter === "All") return true; + if (filter === "Instructors") return member.role === "Instructor"; + if (filter === "DJs") return member.role === "DJ"; + return true; + }); // simple ref + helpers for horizontal scroll const onPrev = () => { const scroller = document.getElementById("staff-scroller"); @@ -67,6 +76,28 @@ const StaffSection = () => {
+ {/* Filters */} + + {["All", "Instructors", "DJs"].map((role) => ( + + ))} + + {/* Carousel scroller */}
{/* gradient edges */} @@ -75,18 +106,20 @@ const StaffSection = () => {
- {STAFF.map((member, i) => ( - + + {filteredStaff.map((member, i) => ( + {/* Foto */}
{member.image ? ( @@ -132,6 +165,7 @@ const StaffSection = () => {
))} +
{/* Arrows (mobile overlay) */} diff --git a/src/data/event-data.ts b/src/data/event-data.ts index 8b267b0..299a825 100644 --- a/src/data/event-data.ts +++ b/src/data/event-data.ts @@ -17,13 +17,15 @@ import pablolena from "@/assets/staff/pablolena.jpg"; import djbiel from "@/assets/staff/djbiel.jpg"; import djwinx from "@/assets/staff/djwinx.jpg"; import djklebynho from "@/assets/staff/djklebynho.jpg"; +import letialex from "@/assets/staff/letialex.jpg"; +import djcathie from "@/assets/staff/djcathie.jpg"; // ---- INFORMACIÓN GENERAL DEL EVENTO ---- export const EVENT_INFO = { name: "ZoukLambadaBCN Beach Festival", - subtitle: "by ZoukLambadaBCN", + subtitle: "Edición 2026", /** Fecha del evento — formato ISO para el countdown */ date: "2026-09-04T12:00:00", /** Fecha legible para mostrar */ @@ -75,10 +77,13 @@ export const ABOUT_EVENT = { // ---- SOBRE ZOUKLAMBADABCN ---- export const ABOUT_ORG = { title: "ZoukLambadaBCN", - history: `[Historia del grupo organizador. Cuándo se fundó, - cómo empezó, qué han logrado hasta ahora.]`, - philosophy: `[Filosofía del grupo. Qué valores defienden, - qué quieren aportar a la comunidad de baile.]`, + history: `Este año 2026 se celebra el 18º Beach Festival de ZoukLambada, donde profesores, artistas y DJs de todo el mundo se reúnen para compartir su pasión por el baile en un ambiente único y especial. + Compartimos nuestro amor por la lambada, nuestra raíz, nacida en la década de 1980 en Brasil. Con los años ha ido evolucionando sus movimientos fluídos siguiendo la musicalidad + de esta bonita danza y creando diferentes estilos.`, + philosophy: `Durante el evento Beach Festival ZoukLambada Bcn podrás disfrutar de diferentes estilos, sentirás la evolución de esta danza y la mágia que desprende. + De viernes a domingo podrás disfrutar de workshops, parties, shows y mucho más. + Sin olvidarnos del lunes y su fiesta de blanco. + Puedes ver el programa completo en la sección "Programa" y reservar tu pase en la sección "Reservar", así como reservar tu habitaciń en la sección "Alojamiento", ¡¡no te quedes sin!!`, socials: { instagram: "https://instagram.com/zouklambadabcn", facebook: "https://facebook.com/zouklambadabcn", @@ -178,14 +183,25 @@ export const STAFF = [ }, { id: "9", - name: "[Nombre Special Guest]", - role: "Special Guest" as const, - description: "[Breve biografía del invitado especial]", - image: "", + name: "[Leticia & Alex]", + role: "Instructor" as const, + description: "[Breve biografía del instructor]", + image: letialex, socials: { instagram: "", }, }, + { + id: "10", + name: "[DJ Cathie]", + role: "DJ" as const, + description: "[Breve biografía del DJ]", + image: djcathie, + socials: { + instagram: "", + soundcloud: "", + }, + }, ]; // ---- PROGRAMA DEL EVENTO ---- diff --git a/src/index.css b/src/index.css index 64bde33..de63ca6 100644 --- a/src/index.css +++ b/src/index.css @@ -138,6 +138,7 @@ /* Card shadow */ .shadow-card { box-shadow: var(--shadow-card); + background-color: hsl(40, 40%, 94%); } .shadow-elevated { @@ -148,4 +149,12 @@ .section-padding { @apply px-4 py-16 md:px-8 md:py-24 lg:px-16; } + + .bg-background-white { + background-color: hsla(40, 40%, 94.1%, 0.2); + } + + .text-black { + color: hsla(0, 0%, 0%, 0.8); + } }