diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index 0917179..a600946 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -8,8 +8,6 @@ jobs: steps: - name: Check out repository code uses: actions/checkout@v4 - - run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner." - - run: echo "🖥️ The workflow is now ready to test your code on the runner." - name: SSH to remote server uses: appleboy/ssh-action@v1.0.3 with: @@ -20,7 +18,6 @@ jobs: script: | cd /home/zouklambadabcn.com/public_html/ git pull - npm install npm run build pm2 restart ZLB - run: echo "🍏 This job's status is ${{ job.status }}." \ No newline at end of file diff --git a/Jenkinsfile b/Jenkinsfile deleted file mode 100644 index fc77297..0000000 --- a/Jenkinsfile +++ /dev/null @@ -1,54 +0,0 @@ -pipeline { - agent any - - environment { - REMOTE_HOST = '192.168.1.102' - REMOTE_DIR = '/home/zouklambadabcn.com/public_html' - PM2_APP = 'ZLB' - // Name of Jenkins Credentials (Username with private key) to SSH - SSH_CREDS = 'root_ssh' // <-- configure this in Jenkins Credentials - } - - options { - timestamps() - } - - stages { - stage('Deploy over SSH') { - steps { - script { - // Validate Jenkins has the required credential - withCredentials([sshUserPrivateKey(credentialsId: env.SSH_CREDS, keyFileVariable: 'SSH_KEY', usernameVariable: 'SSH_USER')]) { - // Build the remote command to run - def remoteCmd = """ - set -e - cd "${env.REMOTE_DIR}" - git pull - npm install - npm run build - pm2 restart ${env.PM2_APP} - """.stripIndent() - - // SSH options for non-interactive, secure connection - def sshOpts = '-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o BatchMode=yes' - - // Execute remote command via ssh - sh label: 'Run remote deployment', script: "ssh -i \"${SSH_KEY}\" ${sshOpts} \"${SSH_USER}@${REMOTE_HOST}\" 'bash -lc '\''" + remoteCmd.replace("'", "'\''") + "'\'' '" - } - } - } - } - } - - post { - success { - echo 'Deployment completed successfully.' - } - failure { - echo 'Deployment failed.' - } - always { - cleanWs(deleteDirs: true, notFailBuild: true) - } - } -} diff --git a/src/components/AboutSection.tsx b/src/components/AboutSection.tsx index 6274471..31d025f 100644 --- a/src/components/AboutSection.tsx +++ b/src/components/AboutSection.tsx @@ -30,7 +30,7 @@ const AboutSection = () => ( viewport={{ once: false, amount: 0.15 }} transition={{ duration: 0.6 }} > -

+

{ABOUT_EVENT.title}

diff --git a/src/components/BookingSection.tsx b/src/components/BookingSection.tsx index 28bed86..4f2e74a 100644 --- a/src/components/BookingSection.tsx +++ b/src/components/BookingSection.tsx @@ -161,7 +161,7 @@ const BookingSection = () => { className="max-w-lg mx-auto text-center bg-card rounded-2xl p-10 shadow-elevated" > -

+

¡Reserva recibida!

@@ -186,7 +186,7 @@ const BookingSection = () => { viewport={{ once: false, amount: 0.15 }} className="text-center mb-10" > -

+

Reserva tu pase

diff --git a/src/components/FooterSection.tsx b/src/components/FooterSection.tsx index 268ddc2..405b34c 100644 --- a/src/components/FooterSection.tsx +++ b/src/components/FooterSection.tsx @@ -17,7 +17,7 @@ const FooterSection = () => (

{/* Brand */}
-

ZoukLambadaBCN

+

ZoukLambadaBCN

Hacecalor Activat @@ -26,7 +26,7 @@ const FooterSection = () => ( {/* Contacto */}

-

Contacto

+

Contacto

( {/* Redes */}
-

Síguenos

+

Síguenos

{ABOUT_ORG.socials.instagram && ( ( viewport={{ once: false, amount: 0.15 }} className="text-center mb-12" > -

+

Galería

diff --git a/src/components/HeroSection.tsx b/src/components/HeroSection.tsx index 8fd07e9..d360b76 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-display text-5xl md:text-7xl lg:text-8xl font-bold text-primary-foreground mb-4 leading-tight" + className="font-hero text-5xl md:text-7xl lg:text-8xl font-black 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/HotelSection.tsx b/src/components/HotelSection.tsx index a7326f6..b10e5f1 100644 --- a/src/components/HotelSection.tsx +++ b/src/components/HotelSection.tsx @@ -16,7 +16,7 @@ const HotelSection = () => ( viewport={{ once: false, amount: 0.15 }} className="text-center mb-12" > -

+

Alojamiento

@@ -44,7 +44,7 @@ const HotelSection = () => (

-

+

{room.name}

{room.price}

diff --git a/src/components/Navbar.tsx b/src/components/Navbar.tsx index 70db598..b73f3f0 100644 --- a/src/components/Navbar.tsx +++ b/src/components/Navbar.tsx @@ -83,7 +83,7 @@ const Navbar = () => { exit={{ opacity: 0, y: 30 }} transition={{ delay: 0.1 * i }} onClick={() => setMenuOpen(false)} - className="text-3xl font-display font-medium text-foreground hover:text-primary transition-colors" + className="text-5xl pt-3 pb-6 leading-[1.6] font-display font-medium text-foreground hover:text-primary transition-colors" > {link.label} diff --git a/src/components/OrgSection.tsx b/src/components/OrgSection.tsx index 1cedec5..e21c64c 100644 --- a/src/components/OrgSection.tsx +++ b/src/components/OrgSection.tsx @@ -19,7 +19,7 @@ const OrgSection = () => ( viewport={{ once: false, amount: 0.15 }} transition={{ duration: 0.6 }} > -

+

{ABOUT_ORG.title}

diff --git a/src/components/PracticalSection.tsx b/src/components/PracticalSection.tsx index d3a4fa6..6c94883 100644 --- a/src/components/PracticalSection.tsx +++ b/src/components/PracticalSection.tsx @@ -15,7 +15,7 @@ const PracticalSection = () => ( viewport={{ once: false, amount: 0.15 }} className="text-center mb-12" > -

+

Información Práctica

@@ -57,7 +57,7 @@ const PracticalSection = () => ( > {/* Aeropuertos */}
-

+

Aeropuertos Cercanos

@@ -72,7 +72,7 @@ const PracticalSection = () => ( {/* Cómo llegar */}
-

+

Cómo Llegar

diff --git a/src/components/ScheduleSection.tsx b/src/components/ScheduleSection.tsx index f0f6ce5..464adda 100644 --- a/src/components/ScheduleSection.tsx +++ b/src/components/ScheduleSection.tsx @@ -29,7 +29,7 @@ const ScheduleSection = () => ( viewport={{ once: false, amount: 0.15 }} className="text-center mb-12" > -

+

Programa

@@ -46,7 +46,7 @@ const ScheduleSection = () => ( viewport={{ once: false, amount: 0.15 }} transition={{ delay: di * 0.15 }} > -

+

{day.day}

diff --git a/src/components/StaffSection.tsx b/src/components/StaffSection.tsx index 2736ff1..ce138d7 100644 --- a/src/components/StaffSection.tsx +++ b/src/components/StaffSection.tsx @@ -40,7 +40,7 @@ const StaffSection = () => { className="flex items-end justify-between gap-4 mb-6 md:mb-8" >
-

+

Staff del Evento

@@ -110,7 +110,7 @@ const StaffSection = () => { {member.role} -

+

{member.name}

diff --git a/src/index.css b/src/index.css index 6536704..64bde33 100644 --- a/src/index.css +++ b/src/index.css @@ -1,4 +1,4 @@ -@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@400;600;700;800&family=Inter:wght@300;400;500;600;700&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;700;800&family=Pacifico&family=Inter:wght@300;400;500;600;700&display=swap'); @tailwind base; @tailwind components; @@ -120,6 +120,9 @@ -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; + padding-bottom: 0.3em; /* Prevents descenders like j, g, p from being clipped! */ + margin-bottom: -0.3em; + line-height: normal; } /* Tropical gradient background */ diff --git a/tailwind.config.ts b/tailwind.config.ts index 3f235a5..79c2c63 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -14,7 +14,8 @@ export default { }, extend: { fontFamily: { - display: ['"Noto"', "system-ui", "sans-serif"], + display: ['"Pacifico"', "cursive"], + hero: ['"Noto Sans"', "sans-serif"], body: ['"Inter"', "system-ui", "sans-serif"], }, colors: { diff --git a/update_sizes.mjs b/update_sizes.mjs new file mode 100644 index 0000000..1af4aaf --- /dev/null +++ b/update_sizes.mjs @@ -0,0 +1,35 @@ +import fs from 'fs'; +import path from 'path'; + +const dir = 'src/components'; +const files = fs.readdirSync(dir).filter(f => f.endsWith('.tsx')); + +for (const file of files) { + if (file === 'HeroSection.tsx') continue; + + const filePath = path.join(dir, file); + let content = fs.readFileSync(filePath, 'utf8'); + let original = content; + + // For main H2s + content = content.replaceAll('text-4xl md:text-5xl font-bold', 'text-5xl md:text-6xl font-bold py-2 leading-[1.3] pb-4'); + + // For smaller H2s/H3s + content = content.replaceAll('text-lg font-bold text-foreground mb-2', 'text-2xl py-2 leading-relaxed font-bold text-foreground mb-1'); + content = content.replaceAll('text-xl font-bold text-foreground mb-6', 'text-3xl py-2 leading-relaxed font-bold text-foreground mb-4'); + content = content.replaceAll('text-lg font-bold text-foreground mb-1', 'text-2xl py-2 leading-relaxed font-bold text-foreground mb-1'); + content = content.replaceAll('text-xl font-bold text-foreground mb-4', 'text-3xl py-2 leading-relaxed font-bold text-foreground mb-2'); + content = content.replaceAll('text-2xl font-bold text-foreground mb-2', 'text-3xl py-2 leading-relaxed font-bold text-foreground mb-2'); + + // Footer H3/H4 + content = content.replaceAll('text-2xl font-bold mb-3', 'text-4xl py-2 leading-relaxed font-bold mb-2'); + content = content.replaceAll('text-lg font-semibold mb-3', 'text-2xl py-2 leading-relaxed font-semibold mb-2'); + + // Navbar + content = content.replaceAll('text-3xl font-display font-medium', 'text-4xl py-2 leading-relaxed font-display font-medium'); + + if (original !== content) { + fs.writeFileSync(filePath, content); + console.log(`Updated sizes in ${file}`); + } +} diff --git a/update_sizes_2.mjs b/update_sizes_2.mjs new file mode 100644 index 0000000..a07b0e7 --- /dev/null +++ b/update_sizes_2.mjs @@ -0,0 +1,23 @@ +import fs from 'fs'; +import path from 'path'; + +const dir = 'src/components'; +const files = fs.readdirSync(dir).filter(f => f.endsWith('.tsx')); + +for (const file of files) { + if (file === 'HeroSection.tsx') continue; + + const filePath = path.join(dir, file); + let content = fs.readFileSync(filePath, 'utf8'); + let original = content; + + content = content.replaceAll('text-5xl md:text-6xl font-bold py-2 leading-[1.3] pb-4', 'text-6xl md:text-7xl font-bold pt-4 pb-6 leading-normal'); + content = content.replaceAll('text-3xl py-2 leading-relaxed', 'text-4xl pt-3 pb-5 leading-[1.6]'); + content = content.replaceAll('text-2xl py-2 leading-relaxed', 'text-3xl pt-3 pb-5 leading-[1.6]'); + content = content.replaceAll('text-4xl py-2 leading-relaxed', 'text-5xl pt-3 pb-6 leading-[1.6]'); + + if (original !== content) { + fs.writeFileSync(filePath, content); + console.log(`Updated sizes in ${file}`); + } +}