Repository: midudev/lolalolitaland.com Branch: main Commit: ea0cc3c2c2aa Files: 44 Total size: 136.1 KB Directory structure: gitextract_oiw4y92l/ ├── .editorconfig ├── .gitignore ├── .prettierignore ├── .prettierrc ├── .vscode/ │ ├── css_custom_tailwind.json │ ├── extensions.json │ ├── launch.json │ └── settings.json ├── CONTRIBUTING.md ├── README.md ├── astro.config.mjs ├── package.json ├── public/ │ ├── events/ │ │ └── event-lolalolita.ics │ └── googlee0d1fc8a4713db25.html ├── pull_request_template.md ├── src/ │ ├── components/ │ │ ├── BackToTop.astro │ │ ├── BubbleBackground.astro │ │ ├── DotBackground.astro │ │ ├── Header.astro │ │ ├── HeaderLink.astro │ │ ├── LeafletMap.astro │ │ ├── Marquee.astro │ │ ├── Sponsor.astro │ │ ├── SponsorsBar.astro │ │ ├── StarryBackground.astro │ │ └── WaveSeparator.astro │ ├── consts/ │ │ ├── galleryImages.ts │ │ ├── geoJSONData.ts │ │ └── map-styles.js │ ├── layouts/ │ │ └── Layout.astro │ ├── pages/ │ │ ├── 404.astro │ │ └── index.astro │ ├── sections/ │ │ ├── ComoLlegar.astro │ │ ├── FAQ.astro │ │ ├── Footer.astro │ │ ├── Gallery.astro │ │ ├── Hero.astro │ │ ├── Info.astro │ │ ├── Map.astro │ │ ├── Rides.astro │ │ └── Tickets.astro │ └── styles/ │ └── global.css ├── tailwind.config.js └── tsconfig.json ================================================ FILE CONTENTS ================================================ ================================================ FILE: .editorconfig ================================================ root = true [*] indent_style = space indent_size = 2 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true ================================================ FILE: .gitignore ================================================ # build output dist/ # generated types .astro/ # dependencies node_modules/ # logs npm-debug.log* yarn-debug.log* yarn-error.log* pnpm-debug.log* # environment variables .env .env.production # macOS-specific files .DS_Store # jetbrains setting folder .idea/ package-lock.json bun.lock bun.lockb yarn.lock ================================================ FILE: .prettierignore ================================================ # build output dist/ .output/ # dependencies node_modules/ # logs npm-debug.log* yarn-debug.log* yarn-error.log* pnpm-debug.log* # environment variables .env .env.production # macOS-specific files .DS_Store # Astro generated files .astro/ # Lock files package-lock.json yarn.lock pnpm-lock.yaml ================================================ FILE: .prettierrc ================================================ { "printWidth": 100, "semi": false, "singleQuote": false, "tabWidth": 2, "trailingComma": "es5", "useTabs": false, "plugins": ["prettier-plugin-astro", "prettier-plugin-tailwindcss"], "overrides": [ { "files": "*.astro", "options": { "parser": "astro" } } ] } ================================================ FILE: .vscode/css_custom_tailwind.json ================================================ { "version": 4.0, "atDirectives": [ { "name": "@theme", "description": "Use the `@theme` directive to define your project's custom design tokens, like fonts, colors, and breakpoints", "references": [ { "name": "Tailwind Documentation — Functions and directives", "url": "https://tailwindcss.com/docs/functions-and-directives#theme-directive" } ] }, { "name": "@source", "description": "Use the `@source` directive to explicitly specify source files that aren't picked up by Tailwind's automatic content detection", "references": [ { "name": "Tailwind Documentation — Functions and directives", "url": "https://tailwindcss.com/docs/functions-and-directives#source-directive" } ] }, { "name": "@utility", "description": "Use the `@utility` directive to add custom utilities to your project that work with variants like `hover`, `focus` and `lg`", "references": [ { "name": "Tailwind Documentation — Functions and directives", "url": "https://tailwindcss.com/docs/functions-and-directives#utility-directive" } ] }, { "name": "@variant", "description": "Use the `@variant` directive to apply a Tailwind variant to styles in your CSS", "references": [ { "name": "Tailwind Documentation — Functions and directives", "url": "https://tailwindcss.com/docs/functions-and-directives#variant-directive" } ] }, { "name": "@custom-variant", "description": "Use the `@custom-variant` directive to add a custom variant in your project", "references": [ { "name": "Tailwind Documentation — Functions and directives", "url": "https://tailwindcss.com/docs/functions-and-directives#custom-variant-directive" } ] }, { "name": "@apply", "description": "Use the `@apply` directive to inline any existing utility classes into your own custom CSS", "references": [ { "name": "Tailwind Documentation — Functions and directives", "url": "https://tailwindcss.com/docs/functions-and-directives#apply-directive" } ] }, { "name": "@reference", "description": "If you want to use `@apply` or `@variant` in the ` ================================================ FILE: src/components/BubbleBackground.astro ================================================ --- const bubbles = Array.from({ length: 30 }, (_, i) => ({ id: i + 1, size: `${Math.random() * 30 + 10}px`, left: `${Math.random() * 95}%`, top: `${Math.random() * 95}%`, delay: `${Math.random() * 3}s`, // Minimal delay for faster start duration: `${Math.random() * 3 + 2}s`, // Super fast animations (2-5s) })) const instanceId = Math.random().toString(36).substring(2, 9) ---
{ bubbles.map(({ size, left, duration, delay }) => (
)) }
================================================ FILE: src/components/DotBackground.astro ================================================
================================================ FILE: src/components/Header.astro ================================================ --- import HeaderLink, { Device, Target } from "@/components/HeaderLink.astro" ---
¡Gracias por asistir!
================================================ FILE: src/components/HeaderLink.astro ================================================ --- export enum Device { MOBILE = "MOBILE", DESKTOP = "DESKTOP", } export enum Target { BLANK = "_blank", SELF = "_self", PARENT = "_parent", TOP = "_top", } export type Props = { href: string text: string device: Device target?: Target extraClasses?: string } const { href, text, device, target, extraClasses } = Astro.props const desktopClasses = "relative text-sm/6 font-semibold text-white after:absolute after:bottom-[-2px] after:left-0 after:h-0.5 after:w-0 after:bg-white after:transition-all after:duration-300 hover:after:w-full" const mobileClasses = "hover:text-primary-light border-primary-light -mx-3 block rounded-lg px-3 py-2 text-base/7 font-semibold text-white hover:bg-white" --- {text} ================================================ FILE: src/components/LeafletMap.astro ================================================ --- // Leaflet CSS and dependencies will be loaded dynamically import type { FeatureCollection, Geometry, GeoJsonProperties } from "geojson" export interface Props { latitude: number longitude: number zoom: number /** URL del tileLayer, ver: https://leafletjs.com/reference.html#tilelayer */ tileLayer: string /** Atribución requerida por la mayoría de tile servers */ attribution: string geoJSON?: { data: FeatureCollection; color: string }[] } const { latitude, longitude, zoom, tileLayer, attribution, geoJSON } = Astro.props --- ================================================ FILE: src/components/Marquee.astro ================================================ --- export type Props = { content: Array } const { content } = Astro.props ---
{ content.map((item, index) => (
{item}
{index !== content.length - 1 && (
·
)}
)) }
================================================ FILE: src/components/Sponsor.astro ================================================ --- const { href } = Astro.props ---
================================================ FILE: src/components/SponsorsBar.astro ================================================ --- import Sponsor from "@/components/Sponsor.astro" import Cerave from "@/assets/cerave.svg" import Dkny from "@/assets/dkny.webp" import Donettes from "@/assets/donettes.svg" import InfoJobs from "@/assets/infojobs.svg" import Trolli from "@/assets/trolli.svg" import Grefusa from "@/assets/grefusa.webp" import Snacking from "@/assets/snacking.svg" import Novotel from "@/assets/novotel.webp" import Flamingueo from "@/assets/flamingueo.webp" import LOreal from "@/assets/loreal.webp" import Uber from "@/assets/uber.webp" import { Image } from "astro:assets" ---

Patrocinadores oficiales

DKNY Snacking Grefusa

Colaboradores

Loreal Donettes Trolli Flamingueo Novotel Uber
================================================ FILE: src/components/StarryBackground.astro ================================================ --- const starCount = 120 const minDistance = 5 // Función para calcular la distancia entre dos puntos const getDistance = (x1: number, y1: number, x2: number, y2: number) => { return Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2) } const stars: any[] = [] while (stars.length < starCount) { const newStar = { top: Math.random() * 95, left: Math.random() * 100, size: Math.random() * 6 + 10, // Tamaño entre 10 y 16 px opacity: Math.random() * 0.2 + 0.5, // Opacidad entre 0.5 y 1 rotation: Math.random() * 360, // Rotación entre 0 y 360 grados } // Verificar que la nueva estrella no esté demasiado cerca de otra if ( stars.every( (star) => getDistance(star.left, star.top, newStar.left, newStar.top) >= minDistance ) ) { stars.push(newStar) } } ---
{ stars.map((star, index) => (
)) }
================================================ FILE: src/components/WaveSeparator.astro ================================================ --- const { bottomColor = "#ff0695", hasBubbles = false } = Astro.props ---
================================================ FILE: src/consts/galleryImages.ts ================================================ import GalleryImg1 from "@/assets/images/gallery/gallery_01.webp" import GalleryImg2 from "@/assets/images/gallery/gallery_02.webp" import GalleryImg3 from "@/assets/images/gallery/gallery_03.webp" import GalleryImg5 from "@/assets/images/gallery/gallery_05.webp" import GalleryImg6 from "@/assets/images/gallery/gallery_06.webp" import GalleryImg7 from "@/assets/images/gallery/gallery_07.webp" import GalleryImg8 from "@/assets/images/gallery/gallery_08.webp" import GalleryImg9 from "@/assets/images/gallery/gallery_09.webp" import GalleryImg10 from "@/assets/images/gallery/gallery_10.webp" import GalleryImg11 from "@/assets/images/gallery/gallery_11.webp" import GalleryImg12 from "@/assets/images/gallery/gallery_12.webp" import GalleryImg13 from "@/assets/images/gallery/gallery_13.webp" import GalleryImg14 from "@/assets/images/gallery/gallery_14.webp" import GalleryImg15 from "@/assets/images/gallery/gallery_15.webp" import GalleryImg16 from "@/assets/images/gallery/gallery_16.webp" import GalleryImg17 from "@/assets/images/gallery/gallery_17.webp" import GalleryImg18 from "@/assets/images/gallery/gallery_18.webp" import GalleryImg19 from "@/assets/images/gallery/gallery_19.webp" import GalleryImg20 from "@/assets/images/gallery/gallery_20.webp" import GalleryImg21 from "@/assets/images/gallery/gallery_21.webp" import GalleryImg22 from "@/assets/images/gallery/gallery_22.webp" import GalleryImg23 from "@/assets/images/gallery/gallery_23.webp" import GalleryImg24 from "@/assets/images/gallery/gallery_24.webp" import GalleryImg25 from "@/assets/images/gallery/gallery_25.webp" import GalleryImg26 from "@/assets/images/gallery/gallery_26.webp" import GalleryImg27 from "@/assets/images/gallery/gallery_27.webp" import GalleryImg28 from "@/assets/images/gallery/gallery_28.webp" import GalleryImg29 from "@/assets/images/gallery/gallery_29.webp" import GalleryImg30 from "@/assets/images/gallery/gallery_30.webp" import GalleryImg31 from "@/assets/images/gallery/gallery_31.webp" import GalleryImg32 from "@/assets/images/gallery/gallery_32.webp" import GalleryImg33 from "@/assets/images/gallery/gallery_33.webp" import GalleryImg34 from "@/assets/images/gallery/gallery_34.webp" import GalleryImg35 from "@/assets/images/gallery/gallery_35.webp" import GalleryImg36 from "@/assets/images/gallery/gallery_36.webp" import GalleryImg37 from "@/assets/images/gallery/gallery_37.webp" export const galleryImages = [ { image: GalleryImg1, alt: "Lola Lolita en un escenario con Carlos Baute.", thumb: "thumb1", }, { image: GalleryImg2, alt: "Lola Lolita Land, festival de música.", thumb: "thumb2", }, { image: GalleryImg3, alt: "Lola Índigo en un escenario en el festival de Lola Lolita Land.", thumb: "thumb3", }, { image: GalleryImg5, alt: "Lola Lolita junto a un grupo de bailarines.", thumb: "thumb4", }, { image: GalleryImg6, alt: "Lola Lolita junto a un grupo de bailarines.", thumb: "thumb5", }, { image: GalleryImg7, alt: "Lola Lolita junto a un grupo de bailarines.", thumb: "thumb6", }, { image: GalleryImg8, alt: "Lola Lolita junto a un grupo de bailarines.", thumb: "thumb7", }, { image: GalleryImg9, alt: "Lola Lolita junto a un grupo de bailarines.", thumb: "thumb8", }, { image: GalleryImg10, alt: "Lola Lolita junto a un grupo de bailarines.", thumb: "thumb9", }, { image: GalleryImg11, alt: "Marina Reche en el evento de Lola Lolita Land.", thumb: "thumb10", }, { image: GalleryImg12, alt: "Marina Reche en el evento de Lola Lolita Land.", thumb: "thumb11", }, { image: GalleryImg13, alt: "DJ en el evento de Lola Lolita Land.", thumb: "thumb12", }, { image: GalleryImg14, alt: "DJ en el evento de Lola Lolita Land.", thumb: "thumb13", }, { image: GalleryImg15, alt: "Grupo de personas con tambores sobre un escenario.", thumb: "thumb14", }, { image: GalleryImg16, alt: "Grupo de personas con tambores sobre un escenario.", thumb: "thumb15", }, { image: GalleryImg17, alt: "Gente mirando hacia el escenario.", thumb: "thumb16", }, { image: GalleryImg18, alt: "Gente mirando hacia el escenario.", thumb: "thumb17", }, { image: GalleryImg19, alt: "Lola Lolita en un escenario cantando.", thumb: "thumb18", }, { image: GalleryImg20, alt: "Lola Lolita en un escenario bailando.", thumb: "thumb19", }, { image: GalleryImg21, alt: "Lola Lolita en un escenario bailando junto a Abraham Mateo cantando.", thumb: "thumb20", }, { image: GalleryImg22, alt: "Dos personas lanzando regalos al público.", thumb: "thumb21", }, { image: GalleryImg23, alt: "Lola Lolita dándose un abrazo con sus fans.", thumb: "thumb22", }, { image: GalleryImg24, alt: "DJ en el evento.", thumb: "thumb23" }, { image: GalleryImg25, alt: "Gente de fiesta en el evento de Lola Lolita.", thumb: "thumb24", }, { image: GalleryImg26, alt: "Lola Lolita saliendo de una caja sorpresa.", thumb: "thumb25", }, { image: GalleryImg27, alt: "Gente sobre el escenario bailando y rapeando.", thumb: "thumb26", }, { image: GalleryImg28, alt: "Lola Lolita cantando y bailando junto a otras personas.", thumb: "thumb27", }, { image: GalleryImg29, alt: "Lola Lolita Land.", thumb: "thumb28" }, { image: GalleryImg30, alt: "Lola Lolita cantando sobre un escenario con un traje azul.", thumb: "thumb29", }, { image: GalleryImg31, alt: "Lola Lolita celebrando junto a Carlos Baute.", thumb: "thumb30", }, { image: GalleryImg32, alt: "Lola Lolita tomándose una foto con un grupo de personas.", thumb: "thumb31", }, { image: GalleryImg33, alt: "Lola Índigo y otras dos chicas cantando y bailando sobre el escenario.", thumb: "thumb32", }, { image: GalleryImg34, alt: "Lola Índigo y otras dos chicas cantando y bailando sobre el escenario.", thumb: "thumb33", }, { image: GalleryImg35, alt: "Lola Índigo y otras dos chicas cantando y bailando sobre el escenario.", thumb: "thumb34", }, { image: GalleryImg36, alt: "El público mirando la coreografía de Lola Lolita junto a su grupo.", thumb: "thumb35", }, { image: GalleryImg37, alt: "Imagen de la galería 37.", thumb: "thumb36" }, ] ================================================ FILE: src/consts/geoJSONData.ts ================================================ import type { FeatureCollection, Geometry, GeoJsonProperties } from "geojson" export const lolalolitalandGeoJSON: FeatureCollection = { type: "FeatureCollection", features: [ { type: "Feature", properties: { name: "Aquopolis Villanueva de la Cañada", amenity: "Parque Acuático", popupContent: "Lolalolitaland", }, geometry: { coordinates: [ [ [-3.99076369718523, 40.45536289516917], [-3.9903189790816214, 40.45554486964127], [-3.990155158873449, 40.455574594431596], [-3.9900581269040174, 40.4555765121593], [-3.989746213601734, 40.45562017324792], [-3.9891993962796732, 40.45577514093404], [-3.9877151778341897, 40.4565245001821], [-3.986617827976488, 40.45688371127795], [-3.986762901959281, 40.45739742873948], [-3.986874497331769, 40.458015158171435], [-3.9871395363399245, 40.45832295937666], [-3.9872399721744216, 40.45822531225053], [-3.98763892562863, 40.458221066720256], [-3.987895594983911, 40.458333573185996], [-3.9883615793518743, 40.458009647005866], [-3.9889269617388265, 40.458145917956614], [-3.9890551384914943, 40.4581485899335], [-3.989316473572501, 40.4581222396026], [-3.9896014481069244, 40.458347573973214], [-3.989959063207891, 40.458262542223935], [-3.9901490462303855, 40.45801169793688], [-3.9904675471792928, 40.45781187215661], [-3.9911771896460095, 40.457905407701986], [-3.9914006990829876, 40.45762054904381], [-3.991830954751606, 40.45762054904381], [-3.9919594726791843, 40.45739946387951], [-3.9912386547409824, 40.45630253057408], [-3.9908475132244234, 40.4562089927972], [-3.990981618887105, 40.4558518473593], [-3.990875451903719, 40.455826336897786], [-3.990836337751716, 40.45589861651237], [-3.9906072405783277, 40.45586460258619], [-3.990646354730387, 40.45577531594671], [-3.9908810396400725, 40.45557123175476], [-3.99076369718523, 40.45536289516917], ], ], type: "Polygon", }, }, ], } /** * @type {GeoJSON.GeoJsonObject} */ export const potaBlavaGeoJSON: FeatureCollection = { type: "FeatureCollection", features: [ { type: "Feature", properties: { name: "El Prat de Llobregat", amenity: "Ciudad", popupContent: "El Prat de Llobregat", }, geometry: { coordinates: [ [ [2.0945220342870527, 41.33458690034561], [2.0847138915145536, 41.331468102419336], [2.081260991679869, 41.32943896819731], [2.0750558690643004, 41.32203576302666], [2.0755562372234806, 41.32015665316527], [2.080310170662699, 41.315308274548414], [2.082662102693604, 41.31365447275482], [2.0846137177570654, 41.31320342453546], [2.092320172776084, 41.31218856656821], [2.093220903020807, 41.3163606571309], [2.0942717976104177, 41.31876607610627], [2.0952225897980554, 41.319179499686044], [2.0972242755620982, 41.319367415682706], [2.0983251971485117, 41.31820231507206], [2.09647364733749, 41.317300286831085], [2.0974744877031526, 41.315721709910974], [2.0983108585439822, 41.315862318781285], [2.1006538515882767, 41.316724486417], [2.104239102690798, 41.317362246919686], [2.102879225001061, 41.31952810403456], [2.1024426319370946, 41.32019650904729], [2.1020899990773216, 41.32131890959104], [2.1039539156197975, 41.3221007951754], [2.1049950221570555, 41.322794395502854], [2.105364447058065, 41.32256739984433], [2.1080175895234277, 41.32522824370241], [2.110737900153538, 41.326552319827016], [2.11006621851638, 41.32806551673701], [2.1088890598913395, 41.32946273622369], [2.1069583312912243, 41.33144228403759], [2.1048605204076125, 41.333491470875686], [2.102502803751662, 41.33471816412478], [2.0959865947252183, 41.33322661361933], [2.0945220342870527, 41.33458690034561], ], ], type: "Polygon", }, }, ], } ================================================ FILE: src/consts/map-styles.js ================================================ export const MAP_STYLES = [ { "featureType": "all", "elementType": "geometry.stroke", "stylers": [ { "visibility": "simplified" } ] }, { "featureType": "administrative", "elementType": "all", "stylers": [ { "visibility": "off" } ] }, { "featureType": "administrative", "elementType": "labels", "stylers": [ { "visibility": "simplified" }, { "color": "#a31645" } ] }, { "featureType": "landscape", "elementType": "all", "stylers": [ { "weight": "3.79" }, { "visibility": "on" }, { "color": "#ffecf0" } ] }, { "featureType": "landscape", "elementType": "geometry", "stylers": [ { "visibility": "on" } ] }, { "featureType": "landscape", "elementType": "geometry.stroke", "stylers": [ { "visibility": "on" } ] }, { "featureType": "poi", "elementType": "all", "stylers": [ { "visibility": "simplified" }, { "color": "#a31645" } ] }, { "featureType": "poi", "elementType": "geometry", "stylers": [ { "saturation": "0" }, { "lightness": "0" }, { "visibility": "off" } ] }, { "featureType": "poi", "elementType": "geometry.stroke", "stylers": [ { "visibility": "off" } ] }, { "featureType": "poi.business", "elementType": "all", "stylers": [ { "visibility": "simplified" }, { "color": "#d89ca8" } ] }, { "featureType": "poi.business", "elementType": "geometry", "stylers": [ { "visibility": "on" } ] }, { "featureType": "poi.business", "elementType": "geometry.fill", "stylers": [ { "visibility": "on" }, { "saturation": "0" } ] }, { "featureType": "poi.business", "elementType": "labels", "stylers": [ { "color": "#a31645" } ] }, { "featureType": "poi.business", "elementType": "labels.icon", "stylers": [ { "visibility": "simplified" }, { "lightness": "84" } ] }, { "featureType": "road", "elementType": "all", "stylers": [ { "saturation": -100 }, { "lightness": 45 } ] }, { "featureType": "road.highway", "elementType": "all", "stylers": [ { "visibility": "simplified" } ] }, { "featureType": "road.arterial", "elementType": "labels.icon", "stylers": [ { "visibility": "off" } ] }, { "featureType": "transit", "elementType": "all", "stylers": [ { "visibility": "off" } ] }, { "featureType": "water", "elementType": "all", "stylers": [ { "color": "#d89ca8" }, { "visibility": "on" } ] }, { "featureType": "water", "elementType": "geometry.fill", "stylers": [ { "visibility": "on" }, { "color": "#fedce3" } ] }, { "featureType": "water", "elementType": "labels", "stylers": [ { "visibility": "off" } ] } ] ================================================ FILE: src/layouts/Layout.astro ================================================ --- import "@fontsource/poppins/400.css" import "@fontsource/poppins/500.css" import "@fontsource/poppins/600.css" import "@fontsource/poppins/700.css" import "@fontsource/poppins/900.css" import Header from "@/components/Header.astro" import BackToTop from "@/components/BackToTop.astro" import "@/styles/global.css" interface Props { title?: string } const { title = "Lola Lolita Land · 14 y 15 de Junio en Aquopolis, Madrid" } = Astro.props const preloadImg = "/images/hero.webp" --- {title}
================================================ FILE: src/pages/404.astro ================================================ --- import Layout from "../layouts/Layout.astro" import BubbleBackground from "../components/BubbleBackground.astro" ---

404

Página no encontrada

¡Hola! Lo sentimos, pero no pudimos encontrar lo que buscabas. Verifica que la dirección URL sea correcta.

IR AL INICIO
================================================ FILE: src/pages/index.astro ================================================ --- import Layout from "@/layouts/Layout.astro" import Hero from "@/sections/Hero.astro" import Tickets from "@/sections/Tickets.astro" import Map from "@/sections/Map.astro" import Rides from "@/sections/Rides.astro" import Gallery from "@/sections/Gallery.astro" import FAQ from "@/sections/FAQ.astro" import Footer from "@/sections/Footer.astro" import Info from "@/sections/Info.astro" import ComoLlegar from "@/sections/ComoLlegar.astro" export const prerender = true ---