feat: rinomina sezione Programmi in Servizi (route, tag, migrazione DB)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-05 20:23:48 +02:00
parent c975dcac12
commit 8ceea9b16f
20 changed files with 226 additions and 118 deletions
+3 -3
View File
@@ -19,9 +19,9 @@ const year = new Date().getFullYear();
<T tag="footer.col.training-title" as="h4" />
{site.footerTraining.map((l, i) => <a href={l.href}>{t(`footer.training.${i + 1}.label`)}</a>)}
</nav>
<nav aria-label="programmi">
<T tag="footer.col.programs-title" as="h4" />
{site.footerPrograms.map((l, i) => <a href={l.href}>{t(`footer.programs.${i + 1}.label`)}</a>)}
<nav aria-label="servizi">
<T tag="footer.col.services-title" as="h4" />
{site.footerServices.map((l, i) => <a href={l.href}>{t(`footer.services.${i + 1}.label`)}</a>)}
</nav>
<div>
<T tag="footer.col.contact-title" as="h4" />
+1 -1
View File
@@ -19,7 +19,7 @@ const blocks = [
<div class="feat__text" data-reveal={b.reverse ? 'left' : 'right'}>
<T tag={`home.feature.${b.key}.title`} as="h2" />
<T tag={`home.feature.${b.key}.body`} as="p" />
<a class="btn" href="/programs">{t(`home.feature.${b.key}.cta`)}</a>
<a class="btn" href="/services">{t(`home.feature.${b.key}.cta`)}</a>
</div>
</div>
))}
+1 -1
View File
@@ -13,7 +13,7 @@ const slides = [
<div class="container hero__in">
<div class="hero__text">
<h1>{s.titleTags.map((tag) => <T tag={tag} as="span" class="hero__line" />)}</h1>
<a class="btn" href="/programs">{t('home.hero.cta')}</a>
<a class="btn" href="/services">{t('home.hero.cta')}</a>
</div>
<TImg tag="home.hero.image" src={s.image} alt={s.alt} class="hero__img" widths={[600, 1000, 1400]} sizes="(max-width: 991px) 100vw, 60vw" loading="eager" />
</div>
+1 -1
View File
@@ -15,7 +15,7 @@ const cols = await Promise.all([
---
<section class="info" aria-label="pilastri">
{cols.map((c, i) => (
<a class="info__col" href="/programs" style={`background-image:url(${c.bg});--reveal-delay:${i * 0.15}s`} data-reveal="fade" data-tag={c.imageTag}>
<a class="info__col" href="/services" style={`background-image:url(${c.bg});--reveal-delay:${i * 0.15}s`} data-reveal="fade" data-tag={c.imageTag}>
<T tag={c.titleTag} as="span" class="info__title" />
</a>
))}
@@ -1,20 +1,20 @@
---
import { programs } from '../../data/programs';
import { programIcons as icons } from '../../data/program-icons';
import { services } from '../../data/services';
import { serviceIcons as icons } from '../../data/service-icons';
import T from '../content/T.astro';
---
<section class="section">
<div class="container">
<div class="section-heading" data-reveal>
<T tag="home.programs.title" as="h2" />
<T tag="home.programs.body" as="p" />
<T tag="home.services.title" as="h2" />
<T tag="home.services.body" as="p" />
</div>
<div class="pgrid">
{programs.map((p, i) => (
<a class="pgrid__item" href={`/programs/${p.slug}`} data-reveal style={`--reveal-delay:${(i % 3) * 0.15}s`}>
{services.map((p, i) => (
<a class="pgrid__item" href={`/services/${p.slug}`} data-reveal style={`--reveal-delay:${(i % 3) * 0.15}s`}>
<svg viewBox="0 0 24 24" fill="none" stroke="var(--c-accent-dark)" stroke-width="1.4" width="52" height="52" aria-hidden="true"><path d={icons[p.slug]} /></svg>
<T tag={`program.${p.slug}.title`} as="h3" />
<T tag={`program.${p.slug}.subtitle`} as="p" />
<T tag={`service.${p.slug}.title`} as="h3" />
<T tag={`service.${p.slug}.subtitle`} as="p" />
</a>
))}
</div>