feat: tag contenuti pagina about e timeline

This commit is contained in:
2026-07-05 16:29:55 +02:00
parent 34fd3d2e18
commit d5b19f2c39
3 changed files with 140 additions and 68 deletions
+62 -55
View File
@@ -2,28 +2,29 @@
import Base from '../layouts/Base.astro';
import PageHero from '../components/PageHero.astro';
import Timeline from '../components/about/Timeline.astro';
import { Image } from 'astro:assets';
import { team } from '../data/team';
import { site } from '../data/site';
import T from '../components/content/T.astro';
import TImg from '../components/content/TImg.astro';
import { t } from '../lib/content';
const images = import.meta.glob<{ default: ImageMetadata }>('../assets/img/*.{jpg,png}', { eager: true });
const imgOf = (name: string) => Object.entries(images).find(([p]) => p.includes(name))?.[1]?.default;
const founders = team.filter((m) => m.founder);
const staff = team.filter((m) => !m.founder);
export const prerender = true;
---
<Base title="Insanitylab" description="Mission, storia, team e metodo di InsanityLab: un laboratorio esclusivo dove movimento, prevenzione e performance convivono in un approccio personalizzato.">
<PageHero title="Insanitylab" />
<Base title={t('about.meta.title')} description={t('about.meta.description')}>
<PageHero title={t('about.hero.title')} />
<section class="section">
<div class="container">
<div class="about-img-row">
<div class="about-img-row__text section-heading">
<h2>Mission</h2>
<p>In InsanityLab crediamo che il movimento non debba essere vissuto come un obbligo o un sacrificio, ma come una forma autentica di cura di sé. La nostra missione è accompagnare ogni persona in un percorso di consapevolezza, aiutandola a riscoprire il benessere fisico e mentale attraverso un approccio sostenibile, concreto e duraturo.</p>
<T tag="about.mission.title" as="h2" />
<T tag="about.mission.body" as="p" />
</div>
{imgOf('about-training-group') && (
<div class="about-img-row__img">
<Image src={imgOf('about-training-group')!} alt="Training group InsanityLab" widths={[600, 900]} sizes="(max-width:767px) 100vw, 50vw" />
<TImg tag="about.mission.image" src={imgOf('about-training-group')!} alt="Training group InsanityLab" widths={[600, 900]} sizes="(max-width:767px) 100vw, 50vw" />
</div>
)}
</div>
@@ -33,14 +34,14 @@ export const prerender = true;
<section class="section section--alt">
<div class="container about-2col">
<div>
<h2>Direzione</h2>
<p>Non ci limitiamo ad allenare il corpo: creiamo percorsi personalizzati che uniscono movimento, equilibrio e benessere, attraverso il supporto di professionisti qualificati, programmi su misura e un approccio centrato sulla persona e su risultati duraturi.</p>
<a class="btn" href="/programs">Scopri</a>
<T tag="about.direzione.title" as="h2" />
<T tag="about.direzione.body" as="p" />
<a class="btn" href="/programs">{t('about.direzione.cta')}</a>
</div>
<div>
<h2>Approccio</h2>
<p>InsanityLab si distingue per un approccio serio e personalizzato al benessere, basato su competenze specializzate, costanza e cura quotidiana, rivolto a chiunque voglia migliorare il proprio stile di vita in modo consapevole e duraturo.</p>
<a class="btn btn--dark" href="/contact">Contattaci</a>
<T tag="about.approccio.title" as="h2" />
<T tag="about.approccio.body" as="p" />
<a class="btn btn--dark" href="/contact">{t('about.approccio.cta')}</a>
</div>
</div>
</section>
@@ -49,12 +50,12 @@ export const prerender = true;
<div class="container">
<div class="about-img-row about-img-row--reverse">
<div class="about-img-row__text section-heading">
<h2>About</h2>
<p>InsanityLab nasce con l'obiettivo di unire fitness e salute in un unico percorso dedicato al benessere globale, superando il concetto tradizionale di palestra. Un laboratorio esclusivo, guidato da osteopati e chinesiologi e professionisti specializzati, dove movimento, prevenzione e performance convivono all'interno di un approccio personalizzato e consapevole.</p>
<T tag="about.about.title" as="h2" />
<T tag="about.about.body" as="p" />
</div>
{imgOf('about-pushup') && (
<div class="about-img-row__img about-img-row__img--native">
<Image src={imgOf('about-pushup')!} alt="Allenamento InsanityLab" widths={[320, 640]} sizes="320px" />
<TImg tag="about.about.image" src={imgOf('about-pushup')!} alt="Allenamento InsanityLab" widths={[320, 640]} sizes="320px" />
</div>
)}
</div>
@@ -66,18 +67,18 @@ export const prerender = true;
<section class="section section--dark">
<div class="container">
<div class="section-heading">
<h2>Convenzioni</h2>
<p>InsanityLab collabora con aziende, enti e organizzazioni che desiderano investire concretamente nel benessere delle proprie persone, attraverso programmi dedicati alla salute, al movimento e alla qualità della vita. Le convenzioni nascono con l'obiettivo di portare il valore del benessere anche all'interno del contesto professionale, creando percorsi che favoriscano equilibrio fisico, prevenzione e performance quotidiana.</p>
<T tag="about.convenzioni.title" as="h2" />
<T tag="about.convenzioni.body" as="p" />
</div>
<ul class="conv">
<li>Le realtà convenzionate possono accedere a programmi di welfare aziendale personalizzati, con percorsi individuali, small group training e classi di gruppo seguiti da professionisti qualificati.</li>
<li>Ogni collaborazione parte da una consulenza gratuita preliminare per analizzare esigenze e obiettivi, così da sviluppare soluzioni efficaci e sostenibili.</li>
<li>Le convenzioni vengono definite su misura insieme a InsanityLab, in base alle caratteristiche e alle necessità dell'azienda partner.</li>
<T tag="about.convenzioni.item1" as="li" />
<T tag="about.convenzioni.item2" as="li" />
<T tag="about.convenzioni.item3" as="li" />
</ul>
<p class="conv__cta">Per ricevere maggiori informazioni o attivare una convenzione: {site.email} · {site.phone}</p>
<p class="conv__cta">{t('about.convenzioni.cta-text')} {t('global.contact.email')} · {t('global.contact.phone')}</p>
{imgOf('about-conventions') && (
<div class="round-img">
<Image src={imgOf('about-conventions')!} alt="Convenzioni aziendali" widths={[360, 720]} sizes="360px" />
<TImg tag="about.convenzioni.image" src={imgOf('about-conventions')!} alt="Convenzioni aziendali" widths={[360, 720]} sizes="360px" />
</div>
)}
</div>
@@ -86,29 +87,35 @@ export const prerender = true;
<section class="section">
<div class="container">
<div class="section-heading">
<h2>Team</h2>
<p>Il team di InsanityLab riunisce professionisti specializzati in allenamento, salute e benessere, con un approccio multidisciplinare basato su competenza, personalizzazione e attenzione alla persona.</p>
<T tag="about.team.title" as="h2" />
<T tag="about.team.body" as="p" />
</div>
<div class="tgrid tgrid--founders">
{founders.map((m) => (
<article class="tcard">
{m.imageAbout && imgOf(m.imageAbout) && <Image src={imgOf(m.imageAbout)!} alt={m.name} widths={[300, 500]} sizes="(max-width:767px) 100vw, 33vw" />}
<h3>{m.shortName}</h3>
<p class="tcard__role">{m.role}</p>
<p>{m.bio}</p>
</article>
))}
{founders.map((m) => {
const slug = m.shortName.toLowerCase();
return (
<article class="tcard">
{m.imageAbout && imgOf(m.imageAbout) && <TImg tag={`team.${slug}.image-about`} src={imgOf(m.imageAbout)!} alt={m.name} widths={[300, 500]} sizes="(max-width:767px) 100vw, 33vw" />}
<h3>{m.shortName}</h3>
<T tag={`team.${slug}.role`} as="p" class="tcard__role" />
<T tag={`team.${slug}.bio`} as="p" />
</article>
);
})}
</div>
<p class="section-heading" style="margin-top:60px">Accanto ai fondatori opera un team in continua crescita composto da trainer e professionisti con specializzazioni complementari:</p>
<p class="section-heading" style="margin-top:60px">{t('about.team.staff-intro')}</p>
<div class="tgrid">
{staff.map((m) => (
<article class="tcard">
{m.imageAbout && imgOf(m.imageAbout) && <Image src={imgOf(m.imageAbout)!} alt={m.name} widths={[300, 500]} sizes="(max-width:767px) 100vw, 33vw" />}
<h3>{m.shortName}</h3>
<p class="tcard__role">{m.role}</p>
<p>{m.bio}</p>
</article>
))}
{staff.map((m) => {
const slug = m.shortName.toLowerCase();
return (
<article class="tcard">
{m.imageAbout && imgOf(m.imageAbout) && <TImg tag={`team.${slug}.image-about`} src={imgOf(m.imageAbout)!} alt={m.name} widths={[300, 500]} sizes="(max-width:767px) 100vw, 33vw" />}
<h3>{m.shortName}</h3>
<T tag={`team.${slug}.role`} as="p" class="tcard__role" />
<T tag={`team.${slug}.bio`} as="p" />
</article>
);
})}
</div>
</div>
</section>
@@ -116,16 +123,16 @@ export const prerender = true;
<section class="section section--alt">
<div class="container">
<div class="section-heading">
<h2>Metodo</h2>
<p>Il team InsanityLab lavora con un approccio empatico e personalizzato, seguendo ogni persona in un percorso continuo e su misura. Unisce competenze multidisciplinari in allenamento, prevenzione, riabilitazione e performance, supportate da formazione costante. Il metodo si basa su sinergia, condivisione e qualità, per generare risultati concreti e duraturi.</p>
<T tag="about.metodo.title" as="h2" />
<T tag="about.metodo.body" as="p" />
</div>
<div class="about-img-row">
<div class="about-img-row__text section-heading">
<p>In poche parole, il team di InsanityLab è composto da professionisti che credono profondamente in ciò che fanno: un gruppo unito da valori condivisi, formato per eccellere e guidato dalla convinzione che il movimento sia uno strumento di benessere, equilibrio e qualità della vita.</p>
<T tag="about.metodo.closing" as="p" />
</div>
{imgOf('about-team-group') && (
<div class="round-img">
<Image src={imgOf('about-team-group')!} alt="Il team InsanityLab" widths={[360, 720]} sizes="360px" />
<TImg tag="about.metodo.image" src={imgOf('about-team-group')!} alt="Il team InsanityLab" widths={[360, 720]} sizes="360px" />
</div>
)}
</div>
@@ -136,14 +143,14 @@ export const prerender = true;
<div class="container">
<div class="about-img-row">
<div class="about-img-row__text section-heading">
<h2>In-Sanity Studios</h2>
<p>IN-SANITY STUDIOS è il nuovo spazio professionale nato dall'evoluzione di InsanityLab, dedicato ai professionisti della salute, del benessere e della performance. Più che un semplice insieme di studi professionali, rappresenta un ecosistema multidisciplinare pensato per favorire collaborazione, qualità del servizio e integrazione tra competenze diverse.</p>
<p>Il progetto nasce con l'obiettivo di offrire a liberi professionisti uno spazio elegante, riservato e già attrezzato, in cui poter svolgere la propria attività all'interno di un contesto consolidato e altamente qualificato, senza dover affrontare i costi e le complessità di una struttura indipendente.</p>
<p>IN-SANITY STUDIOS si rivolge a figure specializzate nel settore salute e wellness, come fisioterapisti, osteopati, psicologi, nutrizionisti, massaggiatori e altri professionisti dedicati alla cura della persona. Ogni studio è progettato per garantire comfort, professionalità e continuità operativa, all'interno di un ambiente coerente con la filosofia di InsanityLab: mettere il benessere globale della persona al centro del percorso.</p>
<T tag="about.studios.title" as="h2" />
<T tag="about.studios.body1" as="p" />
<T tag="about.studios.body2" as="p" />
<T tag="about.studios.body3" as="p" />
</div>
{imgOf('about-studios') && (
<div class="about-img-row__img">
<Image src={imgOf('about-studios')!} alt="In-Sanity Studios" widths={[600, 900]} sizes="(max-width:767px) 100vw, 50vw" />
<TImg tag="about.studios.image" src={imgOf('about-studios')!} alt="In-Sanity Studios" widths={[600, 900]} sizes="(max-width:767px) 100vw, 50vw" />
</div>
)}
</div>
@@ -155,13 +162,13 @@ export const prerender = true;
<div class="about-img-row">
{imgOf('about-vision') && (
<div class="round-img">
<Image src={imgOf('about-vision')!} alt="La comunità InsanityLab" widths={[360, 720]} sizes="360px" />
<TImg tag="about.vision.image" src={imgOf('about-vision')!} alt="La comunità InsanityLab" widths={[360, 720]} sizes="360px" />
</div>
)}
<div class="about-img-row__text section-heading">
<h2>Vision</h2>
<p>InsanityLab nasce con l'obiettivo di aiutare le persone a ritrovare energia ed equilibrio attraverso il movimento, promuovendo un approccio autentico, scientifico e umano al benessere. La sua visione va oltre l'estetica e la performance: allenarsi significa prendersi cura di sé, costruendo abitudini sane, sostenibili e orientate alla longevità, alla prevenzione e alla qualità della vita.</p>
<p>L'obiettivo è diventare un punto di riferimento capace di lasciare un impatto reale nella comunità, trasformando il movimento in uno strumento di salute, consapevolezza e identità.</p>
<T tag="about.vision.title" as="h2" />
<T tag="about.vision.body1" as="p" />
<T tag="about.vision.body2" as="p" />
</div>
</div>
</div>