Skip to content

Commit 5a67ed9

Browse files
committed
Merge branch 'main' into feat_call_acttions
2 parents b172eb1 + 91a7191 commit 5a67ed9

23 files changed

Lines changed: 243 additions & 19 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,5 @@ dist/
1616
.vscode/
1717

1818
*.local
19+
20+
.claude

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "2026.es.pycon.org",
3-
"version": "1.2.1",
3+
"version": "1.3.0",
44
"description": "",
55
"main": "index.js",
66
"scripts": {

src/components/TeamsPage.astro

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
import { teamsTexts } from '../i18n/teams'
3+
4+
interface Props {
5+
lang: string
6+
}
7+
8+
const { lang } = Astro.props
9+
const t = teamsTexts[(lang || 'es') as keyof typeof teamsTexts]
10+
11+
const teams = (
12+
Object.values(import.meta.glob('../data/teams/*.md', { eager: true })) as {
13+
frontmatter: { name: string; description: string; contact: string }
14+
}[]
15+
).sort((a, b) => a.frontmatter.name.localeCompare(b.frontmatter.name))
16+
---
17+
18+
<div class="teams-container pb-20">
19+
<section class="mb-12" aria-labelledby="teams-heading">
20+
<h1 id="teams-heading" class="text-4xl md:text-6xl font-black text-white mb-6 uppercase tracking-tighter">
21+
{t.hero}
22+
</h1>
23+
</section>
24+
25+
<section aria-labelledby="teams-list-heading">
26+
<ul role="list" class="grid md:grid-cols-2 gap-8 list-none m-0 p-0">
27+
{
28+
teams.map(({ frontmatter: team }) => (
29+
<li class="bg-pycon-black/40 p-8 rounded-2xl border border-white/5 hover:border-pycon-orange/50 transition-all motion-safe:hover:-translate-y-2">
30+
<h2 class="text-xl font-bold text-pycon-orange mb-3">{team.name}</h2>
31+
<p class="text-pycon-gray-25 text-sm leading-relaxed mb-6">{team.description}</p>
32+
<a
33+
href={`mailto:${team.contact}`}
34+
aria-label={`${t.contact} ${team.name}: ${team.contact}`}
35+
class="inline-flex items-center gap-2 text-sm text-pycon-yellow hover:text-white transition-colors focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-pycon-yellow rounded"
36+
>
37+
<svg
38+
class="w-4 h-4 shrink-0"
39+
fill="none"
40+
stroke="currentColor"
41+
viewBox="0 0 24 24"
42+
aria-hidden="true"
43+
>
44+
<path
45+
stroke-linecap="round"
46+
stroke-linejoin="round"
47+
stroke-width="2"
48+
d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"
49+
/>
50+
</svg>
51+
<span aria-hidden="true">
52+
{t.contact}: {team.contact}
53+
</span>
54+
</a>
55+
</li>
56+
))
57+
}
58+
</ul>
59+
</section>
60+
</div>
61+
62+
<style>
63+
.teams-container {
64+
animation: fadeIn 0.8s ease-out;
65+
}
66+
67+
@keyframes fadeIn {
68+
from {
69+
opacity: 0;
70+
transform: translateY(20px);
71+
}
72+
to {
73+
opacity: 1;
74+
transform: translateY(0);
75+
}
76+
}
77+
78+
@media (prefers-reduced-motion: reduce) {
79+
.teams-container {
80+
animation: none;
81+
}
82+
}
83+
</style>

src/data/sponsors/eps.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
name: 'EuroPython Society'
3+
website: 'https://www.europython-society.org/'
4+
tier: 'gold'
5+
logobg: '#ffffff'
6+
logo: '/collaborators/europython.png'
7+
---

src/data/teams/catering.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
name: 'Catering'
3+
description: 'Aseguramos que nadie pase hambre en la PyConES2026, para que los asistentes puedan recargar energía entre charla y charla.'
4+
contact: 'contacto@2026.es.pycon.org'
5+
---

src/data/teams/diversity.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
name: 'Diversidad y becas'
3+
description: 'Hacemos que el evento sea accesible para toda la comunidad, para que nadie se quede fuera por razones económicas o de representación.'
4+
contact: 'diversidadybecas@2026.es.pycon.org'
5+
---

src/data/teams/merch.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
name: 'Merch'
3+
description: 'Diseñamos el merchandising oficial de la PyConES 2026 para que el evento se quede contigo mucho después de que termine'
4+
contact: 'contacto@2026.es.pycon.org'
5+
---

src/data/teams/program.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
name: 'Programa'
3+
description: 'Nos encargamos de seleccionar charlas, keynotes y otras sesiones, además de la confección del horario'
4+
contact: 'charlas@2026.es.pycon.org'
5+
---

src/data/teams/rrss.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
name: 'RRSS & Comms'
3+
description: 'Gestionamos la presencia digital y la comunicación oficial de la PyConES 2026 para que nadie se pierda nada y que la comunidad Python esté siempre informada'
4+
contact: 'comm@es.pycon.org'
5+
---

src/data/teams/social.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
name: 'Fiestas y Social'
3+
description: 'Organizamos los momentos de conexión fuera del escenario: las fiestas y eventos sociales de la PyConES 2026 donde la comunidad Python se reúne, celebra y crea vínculos.'
4+
contact: 'contacto@2026.es.pycon.org'
5+
---

0 commit comments

Comments
 (0)