mirror of
https://github.com/Ichitux/lambada-fiesta-live.git
synced 2026-05-15 15:12:19 +02:00
Font changes & adjustments in size, remove jenkins file & less tasks to runners.
All checks were successful
Deploy NPM app / Deploy NPM (push) Successful in 53s
All checks were successful
Deploy NPM app / Deploy NPM (push) Successful in 53s
This commit is contained in:
@@ -8,8 +8,6 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- name: Check out repository code
|
- name: Check out repository code
|
||||||
uses: actions/checkout@v4
|
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
|
- name: SSH to remote server
|
||||||
uses: appleboy/ssh-action@v1.0.3
|
uses: appleboy/ssh-action@v1.0.3
|
||||||
with:
|
with:
|
||||||
@@ -20,7 +18,6 @@ jobs:
|
|||||||
script: |
|
script: |
|
||||||
cd /home/zouklambadabcn.com/public_html/
|
cd /home/zouklambadabcn.com/public_html/
|
||||||
git pull
|
git pull
|
||||||
npm install
|
|
||||||
npm run build
|
npm run build
|
||||||
pm2 restart ZLB
|
pm2 restart ZLB
|
||||||
- run: echo "🍏 This job's status is ${{ job.status }}."
|
- run: echo "🍏 This job's status is ${{ job.status }}."
|
||||||
54
Jenkinsfile
vendored
54
Jenkinsfile
vendored
@@ -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)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -30,7 +30,7 @@ const AboutSection = () => (
|
|||||||
viewport={{ once: false, amount: 0.15 }}
|
viewport={{ once: false, amount: 0.15 }}
|
||||||
transition={{ duration: 0.6 }}
|
transition={{ duration: 0.6 }}
|
||||||
>
|
>
|
||||||
<h2 className="font-display text-4xl md:text-5xl font-bold mb-6 text-gradient">
|
<h2 className="font-display text-6xl md:text-7xl font-bold pt-4 pb-6 leading-normal mb-6 text-gradient">
|
||||||
{ABOUT_EVENT.title}
|
{ABOUT_EVENT.title}
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-muted-foreground mb-6 leading-relaxed whitespace-pre-line">
|
<p className="text-muted-foreground mb-6 leading-relaxed whitespace-pre-line">
|
||||||
|
|||||||
@@ -161,7 +161,7 @@ const BookingSection = () => {
|
|||||||
className="max-w-lg mx-auto text-center bg-card rounded-2xl p-10 shadow-elevated"
|
className="max-w-lg mx-auto text-center bg-card rounded-2xl p-10 shadow-elevated"
|
||||||
>
|
>
|
||||||
<CheckCircle className="w-16 h-16 text-primary mx-auto mb-4" />
|
<CheckCircle className="w-16 h-16 text-primary mx-auto mb-4" />
|
||||||
<h3 className="font-display text-2xl font-bold text-foreground mb-2">
|
<h3 className="font-display text-4xl pt-3 pb-5 leading-[1.6] font-bold text-foreground mb-2">
|
||||||
¡Reserva recibida!
|
¡Reserva recibida!
|
||||||
</h3>
|
</h3>
|
||||||
<p className="text-muted-foreground">
|
<p className="text-muted-foreground">
|
||||||
@@ -186,7 +186,7 @@ const BookingSection = () => {
|
|||||||
viewport={{ once: false, amount: 0.15 }}
|
viewport={{ once: false, amount: 0.15 }}
|
||||||
className="text-center mb-10"
|
className="text-center mb-10"
|
||||||
>
|
>
|
||||||
<h2 className="font-display text-4xl md:text-5xl font-bold text-gradient mb-4">
|
<h2 className="font-display text-6xl md:text-7xl font-bold pt-4 pb-10 leading-[1.8] text-gradient">
|
||||||
Reserva tu pase
|
Reserva tu pase
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-muted-foreground">
|
<p className="text-muted-foreground">
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ const FooterSection = () => (
|
|||||||
<div className="grid md:grid-cols-3 gap-8 mb-8">
|
<div className="grid md:grid-cols-3 gap-8 mb-8">
|
||||||
{/* Brand */}
|
{/* Brand */}
|
||||||
<div>
|
<div>
|
||||||
<h3 className="font-display text-2xl font-bold mb-3">ZoukLambadaBCN</h3>
|
<h3 className="font-display text-5xl pt-3 pb-6 leading-[1.6] font-bold mb-2">ZoukLambadaBCN</h3>
|
||||||
<p className="text-primary-foreground/70 text-sm">
|
<p className="text-primary-foreground/70 text-sm">
|
||||||
<img src={hacecalor} alt="Hacecalor" className="inline-block w-auto h-12 mr-1" />
|
<img src={hacecalor} alt="Hacecalor" className="inline-block w-auto h-12 mr-1" />
|
||||||
<img src={activat} alt="Activat" className="inline-block w-auto h-12 mr-1" />
|
<img src={activat} alt="Activat" className="inline-block w-auto h-12 mr-1" />
|
||||||
@@ -26,7 +26,7 @@ const FooterSection = () => (
|
|||||||
|
|
||||||
{/* Contacto */}
|
{/* Contacto */}
|
||||||
<div>
|
<div>
|
||||||
<h4 className="font-display text-lg font-semibold mb-3">Contacto</h4>
|
<h4 className="font-display text-3xl pt-3 pb-5 leading-[1.6] font-semibold mb-2">Contacto</h4>
|
||||||
<a
|
<a
|
||||||
href={`mailto:${FOOTER.email}`}
|
href={`mailto:${FOOTER.email}`}
|
||||||
className="flex items-center gap-2 text-sm text-primary-foreground/70 hover:text-primary transition-colors"
|
className="flex items-center gap-2 text-sm text-primary-foreground/70 hover:text-primary transition-colors"
|
||||||
@@ -38,7 +38,7 @@ const FooterSection = () => (
|
|||||||
|
|
||||||
{/* Redes */}
|
{/* Redes */}
|
||||||
<div>
|
<div>
|
||||||
<h4 className="font-display text-lg font-semibold mb-3">Síguenos</h4>
|
<h4 className="font-display text-3xl pt-3 pb-5 leading-[1.6] font-semibold mb-2">Síguenos</h4>
|
||||||
<div className="flex gap-3">
|
<div className="flex gap-3">
|
||||||
{ABOUT_ORG.socials.instagram && (
|
{ABOUT_ORG.socials.instagram && (
|
||||||
<a href={ABOUT_ORG.socials.instagram} target="_blank" rel="noopener noreferrer" aria-label="Instagram"
|
<a href={ABOUT_ORG.socials.instagram} target="_blank" rel="noopener noreferrer" aria-label="Instagram"
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ const GallerySection = () => (
|
|||||||
viewport={{ once: false, amount: 0.15 }}
|
viewport={{ once: false, amount: 0.15 }}
|
||||||
className="text-center mb-12"
|
className="text-center mb-12"
|
||||||
>
|
>
|
||||||
<h2 className="font-display text-4xl md:text-5xl font-bold text-gradient mb-4">
|
<h2 className="font-display text-6xl md:text-7xl font-bold pt-4 pb-10 leading-[1.8] text-gradient">
|
||||||
Galería
|
Galería
|
||||||
</h2>
|
</h2>
|
||||||
</motion.div>
|
</motion.div>
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ const HeroSection = () => {
|
|||||||
initial={{ opacity: 0, y: 30 }}
|
initial={{ opacity: 0, y: 30 }}
|
||||||
animate={{ opacity: 1, y: 0 }}
|
animate={{ opacity: 1, y: 0 }}
|
||||||
transition={{ delay: 0.4 }}
|
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}
|
{EVENT_INFO.name}
|
||||||
</motion.h1>
|
</motion.h1>
|
||||||
@@ -84,7 +84,7 @@ const HeroSection = () => {
|
|||||||
{countdownItems.map((item) => (
|
{countdownItems.map((item) => (
|
||||||
<div key={item.label} className="text-center">
|
<div key={item.label} className="text-center">
|
||||||
<div className="bg-primary-foreground/10 backdrop-blur-sm border border-primary-foreground/20 rounded-lg px-4 py-3 md:px-6 md:py-4 min-w-[60px] md:min-w-[80px]">
|
<div className="bg-primary-foreground/10 backdrop-blur-sm border border-primary-foreground/20 rounded-lg px-4 py-3 md:px-6 md:py-4 min-w-[60px] md:min-w-[80px]">
|
||||||
<span className="text-2xl md:text-4xl font-display font-bold text-primary-foreground">
|
<span className="text-2xl md:text-4xl font-hero font-bold text-primary-foreground">
|
||||||
{String(item.value).padStart(2, "0")}
|
{String(item.value).padStart(2, "0")}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ const HotelSection = () => (
|
|||||||
viewport={{ once: false, amount: 0.15 }}
|
viewport={{ once: false, amount: 0.15 }}
|
||||||
className="text-center mb-12"
|
className="text-center mb-12"
|
||||||
>
|
>
|
||||||
<h2 className="font-display text-4xl md:text-5xl font-bold text-gradient mb-4">
|
<h2 className="font-display text-6xl md:text-7xl font-bold pt-4 pb-10 leading-[1.8] text-gradient">
|
||||||
Alojamiento
|
Alojamiento
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-muted-foreground max-w-2xl mx-auto">
|
<p className="text-muted-foreground max-w-2xl mx-auto">
|
||||||
@@ -44,7 +44,7 @@ const HotelSection = () => (
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="p-5">
|
<div className="p-5">
|
||||||
<h3 className="font-display text-lg font-bold text-foreground mb-1">
|
<h3 className="font-display text-3xl pt-3 pb-5 leading-[1.6] font-bold text-foreground mb-1">
|
||||||
{room.name}
|
{room.name}
|
||||||
</h3>
|
</h3>
|
||||||
<p className="text-primary font-bold text-xl mb-2">{room.price}</p>
|
<p className="text-primary font-bold text-xl mb-2">{room.price}</p>
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ const Navbar = () => {
|
|||||||
exit={{ opacity: 0, y: 30 }}
|
exit={{ opacity: 0, y: 30 }}
|
||||||
transition={{ delay: 0.1 * i }}
|
transition={{ delay: 0.1 * i }}
|
||||||
onClick={() => setMenuOpen(false)}
|
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}
|
{link.label}
|
||||||
</motion.a>
|
</motion.a>
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ const OrgSection = () => (
|
|||||||
viewport={{ once: false, amount: 0.15 }}
|
viewport={{ once: false, amount: 0.15 }}
|
||||||
transition={{ duration: 0.6 }}
|
transition={{ duration: 0.6 }}
|
||||||
>
|
>
|
||||||
<h2 className="font-display text-4xl md:text-5xl font-bold mb-6 text-gradient">
|
<h2 className="font-display text-6xl md:text-7xl font-bold pt-4 pb-6 leading-normal mb-6 text-gradient">
|
||||||
{ABOUT_ORG.title}
|
{ABOUT_ORG.title}
|
||||||
</h2>
|
</h2>
|
||||||
<div className="space-y-4 text-muted-foreground leading-relaxed">
|
<div className="space-y-4 text-muted-foreground leading-relaxed">
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ const PracticalSection = () => (
|
|||||||
viewport={{ once: false, amount: 0.15 }}
|
viewport={{ once: false, amount: 0.15 }}
|
||||||
className="text-center mb-12"
|
className="text-center mb-12"
|
||||||
>
|
>
|
||||||
<h2 className="font-display text-4xl md:text-5xl font-bold text-gradient mb-4">
|
<h2 className="font-display text-6xl md:text-7xl font-bold pt-4 pb-6 leading-normal text-gradient mb-4">
|
||||||
Información Práctica
|
Información Práctica
|
||||||
</h2>
|
</h2>
|
||||||
</motion.div>
|
</motion.div>
|
||||||
@@ -57,7 +57,7 @@ const PracticalSection = () => (
|
|||||||
>
|
>
|
||||||
{/* Aeropuertos */}
|
{/* Aeropuertos */}
|
||||||
<div>
|
<div>
|
||||||
<h3 className="font-display text-xl font-bold text-foreground mb-4 flex items-center gap-2">
|
<h3 className="font-display text-4xl pt-3 pb-5 leading-[1.6] font-bold text-foreground mb-2 flex items-center gap-2">
|
||||||
<Plane className="w-5 h-5 text-primary" /> Aeropuertos Cercanos
|
<Plane className="w-5 h-5 text-primary" /> Aeropuertos Cercanos
|
||||||
</h3>
|
</h3>
|
||||||
<div className="space-y-3">
|
<div className="space-y-3">
|
||||||
@@ -72,7 +72,7 @@ const PracticalSection = () => (
|
|||||||
|
|
||||||
{/* Cómo llegar */}
|
{/* Cómo llegar */}
|
||||||
<div>
|
<div>
|
||||||
<h3 className="font-display text-xl font-bold text-foreground mb-4 flex items-center gap-2">
|
<h3 className="font-display text-4xl pt-3 pb-5 leading-[1.6] font-bold text-foreground mb-2 flex items-center gap-2">
|
||||||
<Train className="w-5 h-5 text-primary" /> Cómo Llegar
|
<Train className="w-5 h-5 text-primary" /> Cómo Llegar
|
||||||
</h3>
|
</h3>
|
||||||
<div className="space-y-3">
|
<div className="space-y-3">
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ const ScheduleSection = () => (
|
|||||||
viewport={{ once: false, amount: 0.15 }}
|
viewport={{ once: false, amount: 0.15 }}
|
||||||
className="text-center mb-12"
|
className="text-center mb-12"
|
||||||
>
|
>
|
||||||
<h2 className="font-display text-4xl md:text-5xl font-bold text-gradient mb-4">
|
<h2 className="font-display text-6xl md:text-7xl font-bold pt-4 pb-10 leading-[1.8] text-gradient">
|
||||||
Programa
|
Programa
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-muted-foreground max-w-2xl mx-auto">
|
<p className="text-muted-foreground max-w-2xl mx-auto">
|
||||||
@@ -46,7 +46,7 @@ const ScheduleSection = () => (
|
|||||||
viewport={{ once: false, amount: 0.15 }}
|
viewport={{ once: false, amount: 0.15 }}
|
||||||
transition={{ delay: di * 0.15 }}
|
transition={{ delay: di * 0.15 }}
|
||||||
>
|
>
|
||||||
<h3 className="font-display text-xl font-bold text-foreground mb-6 pb-3 border-b-2 border-primary">
|
<h3 className="font-display text-4xl pt-3 pb-5 leading-[1.6] font-bold text-foreground mb-4 pb-3 border-b-2 border-primary">
|
||||||
{day.day}
|
{day.day}
|
||||||
</h3>
|
</h3>
|
||||||
<div className="space-y-3">
|
<div className="space-y-3">
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ const StaffSection = () => {
|
|||||||
className="flex items-end justify-between gap-4 mb-6 md:mb-8"
|
className="flex items-end justify-between gap-4 mb-6 md:mb-8"
|
||||||
>
|
>
|
||||||
<div className="text-center md:text-left w-full">
|
<div className="text-center md:text-left w-full">
|
||||||
<h2 className="font-display text-4xl md:text-5xl font-bold text-gradient mb-2">
|
<h2 className="font-display text-6xl md:text-7xl font-bold pt-4 pb-6 leading-normal text-gradient mb-2">
|
||||||
Staff del Evento
|
Staff del Evento
|
||||||
</h2>
|
</h2>
|
||||||
<p className="text-muted-foreground max-w-2xl mx-auto md:mx-0">
|
<p className="text-muted-foreground max-w-2xl mx-auto md:mx-0">
|
||||||
@@ -110,7 +110,7 @@ const StaffSection = () => {
|
|||||||
{member.role}
|
{member.role}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<h3 className="font-display text-lg font-bold text-foreground mb-2">
|
<h3 className="font-display text-3xl pt-3 pb-5 leading-[1.6] font-bold text-foreground mb-1">
|
||||||
{member.name}
|
{member.name}
|
||||||
</h3>
|
</h3>
|
||||||
<p className="text-sm text-muted-foreground mb-4">
|
<p className="text-sm text-muted-foreground mb-4">
|
||||||
|
|||||||
@@ -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 base;
|
||||||
@tailwind components;
|
@tailwind components;
|
||||||
@@ -120,6 +120,9 @@
|
|||||||
-webkit-background-clip: text;
|
-webkit-background-clip: text;
|
||||||
-webkit-text-fill-color: transparent;
|
-webkit-text-fill-color: transparent;
|
||||||
background-clip: text;
|
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 */
|
/* Tropical gradient background */
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ export default {
|
|||||||
},
|
},
|
||||||
extend: {
|
extend: {
|
||||||
fontFamily: {
|
fontFamily: {
|
||||||
display: ['"Noto"', "system-ui", "sans-serif"],
|
display: ['"Pacifico"', "cursive"],
|
||||||
|
hero: ['"Noto Sans"', "sans-serif"],
|
||||||
body: ['"Inter"', "system-ui", "sans-serif"],
|
body: ['"Inter"', "system-ui", "sans-serif"],
|
||||||
},
|
},
|
||||||
colors: {
|
colors: {
|
||||||
|
|||||||
35
update_sizes.mjs
Normal file
35
update_sizes.mjs
Normal file
@@ -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}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
23
update_sizes_2.mjs
Normal file
23
update_sizes_2.mjs
Normal file
@@ -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}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user