diff --git a/package.json b/package.json index b206121..63b6247 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "2026.es.pycon.org", - "version": "1.5.0", + "version": "1.6.0", "description": "", "main": "index.js", "scripts": { diff --git a/src/components/home/SectionDates.astro b/src/components/home/SectionDates.astro new file mode 100644 index 0000000..5320bce --- /dev/null +++ b/src/components/home/SectionDates.astro @@ -0,0 +1,78 @@ +--- +import { texts } from '@/i18n/home' + +interface Props { + lang: string +} + +const { lang } = Astro.props +const t = texts[lang as keyof typeof texts] + +const dates = [ + { + emoji: '🎫', + label: t['tickets.earlybird.label'], + date: t['tickets.earlybird.date'], + accentBg: 'bg-pycon-orange/10', + accentBorder: 'border-pycon-orange/25', + accentText: 'text-pycon-orange', + bar: 'bg-pycon-orange', + }, + { + emoji: '🎟️', + label: t['tickets.general.label'], + date: t['tickets.general.date'], + accentBg: 'bg-amber-400/10', + accentBorder: 'border-amber-400/25', + accentText: 'text-amber-400', + bar: 'bg-amber-400', + }, +] +--- + +
+
+ {/* Gradient accent bar at top — visual separator */} + + + {/* Background gradient — different from glassmorphism CTAs */} +
+
+ +

+ {t['tickets.title']} +

+
+ +
+ { + dates.map((d) => ( +
+ + + {d.label} + + + {d.date} + +
+ )) + } +
+
+
+
diff --git a/src/components/index.astro b/src/components/index.astro index bb3e050..4b37e8b 100644 --- a/src/components/index.astro +++ b/src/components/index.astro @@ -1,6 +1,7 @@ --- import Layout from '@/layouts/Layout.astro' import SectionMain from './home/SectionMain.astro' +import SectionDates from './home/SectionDates.astro' import SectionCTAs from './home/SectionCTAs.astro' import SectionSponsors from './home/SectionSponsors.astro' @@ -14,6 +15,7 @@ const { lang } = Astro.props
+
diff --git a/src/i18n/home.ts b/src/i18n/home.ts index 6ebf626..f533be1 100644 --- a/src/i18n/home.ts +++ b/src/i18n/home.ts @@ -27,6 +27,11 @@ export const texts = { 'cta.reviewers.description': 'Buscamos personas que nos ayuden a revisar las propuestas que recibamos. Tu experiencia y criterio son clave para garantizar la calidad del programa. Si querés colaborar con la organización y ayudar a seleccionar las mejores charlas y talleres, ¡necesitamos tu ayuda!', 'cta.reviewers.button': 'Quiero ser revisor/a', + 'tickets.title': '🎟️ Entradas', + 'tickets.earlybird.label': 'Early Bird', + 'tickets.earlybird.date': '5 de junio', + 'tickets.general.label': 'Venta General', + 'tickets.general.date': '19 de junio', }, en: { 'index.initializing': 'Initialising system...', @@ -57,6 +62,11 @@ export const texts = { 'cta.reviewers.description': 'We are looking for people to help us review the proposals we receive. Your experience and judgement are key to ensuring the quality of the programme. If you want to collaborate with the organisation and help select the best talks and workshops, we need your help!', 'cta.reviewers.button': 'I want to be a reviewer', + 'tickets.title': '🎟️ Tickets', + 'tickets.earlybird.label': 'Early Bird', + 'tickets.earlybird.date': 'June 5', + 'tickets.general.label': 'General Sale', + 'tickets.general.date': 'June 19', }, ca: { 'index.initializing': 'Inicialitzant sistema...', @@ -87,5 +97,10 @@ export const texts = { 'cta.reviewers.description': "Busquem persones que ens ajudin a revisar les propostes que rebem. La teva experiència i criteri són clau per garantir la qualitat del programa. Si vols col·laborar amb l'organització i ajudar a seleccionar les millors xerrades i tallers, necessitem la teva ajuda!", 'cta.reviewers.button': 'Vull ser revisor/a', + 'tickets.title': '🎟️ Entrades', + 'tickets.earlybird.label': 'Early Bird', + 'tickets.earlybird.date': '5 de juny', + 'tickets.general.label': 'Venda General', + 'tickets.general.date': '19 de juny', }, } as const