From c789cbb4801714b66bf9c7876b8ebfb10f1c5cfd Mon Sep 17 00:00:00 2001 From: itziarZG Date: Tue, 17 Feb 2026 13:02:12 +0100 Subject: [PATCH 1/6] feat: change mastodon to twitter --- src/i18n/sponsors/ca.ts | 2 +- src/i18n/sponsors/en.ts | 2 +- src/i18n/sponsors/es.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/i18n/sponsors/ca.ts b/src/i18n/sponsors/ca.ts index c79e085..2f56e9c 100644 --- a/src/i18n/sponsors/ca.ts +++ b/src/i18n/sponsors/ca.ts @@ -414,7 +414,7 @@ export const ca = { items: [ { icon: '🦋', label: 'Bluesky', url: 'https://bsky.app/profile/es.pycon.org' }, { icon: '🐙', label: 'GitHub', url: 'https://github.com/python-spain' }, - { icon: '🐘', label: 'Mastodon', url: 'https://fosstodon.org/@pycones' }, + { icon: '𝕏', label: '', url: 'https://x.com/PyConES' }, { icon: '💼', label: 'LinkedIn', url: 'https://www.linkedin.com/company/pycones' }, { icon: '📸', label: 'Instagram', url: 'https://www.instagram.com/pycon_es' }, ], diff --git a/src/i18n/sponsors/en.ts b/src/i18n/sponsors/en.ts index 5093c07..0fcd26b 100644 --- a/src/i18n/sponsors/en.ts +++ b/src/i18n/sponsors/en.ts @@ -414,7 +414,7 @@ export const en = { items: [ { icon: '🦋', label: 'Bluesky', url: 'https://bsky.app/profile/es.pycon.org' }, { icon: '🐙', label: 'GitHub', url: 'https://github.com/python-spain' }, - { icon: '🐘', label: 'Mastodon', url: 'https://fosstodon.org/@pycones' }, + { icon: '𝕏', label: '', url: 'https://x.com/PyConES' }, { icon: '💼', label: 'LinkedIn', url: 'https://www.linkedin.com/company/pycones' }, { icon: '📸', label: 'Instagram', url: 'https://www.instagram.com/pycon_es' }, ], diff --git a/src/i18n/sponsors/es.ts b/src/i18n/sponsors/es.ts index 328880c..d1dcc1c 100644 --- a/src/i18n/sponsors/es.ts +++ b/src/i18n/sponsors/es.ts @@ -414,7 +414,7 @@ export const es = { items: [ { icon: '🦋', label: 'Bluesky', url: 'https://bsky.app/profile/es.pycon.org' }, { icon: '🐙', label: 'GitHub', url: 'https://github.com/python-spain' }, - { icon: '🐘', label: 'Mastodon', url: 'https://fosstodon.org/@pycones' }, + { icon: '𝕏', label: '', url: 'https://x.com/PyConES' }, { icon: '💼', label: 'LinkedIn', url: 'https://www.linkedin.com/company/pycones' }, { icon: '📸', label: 'Instagram', url: 'https://www.instagram.com/pycon_es' }, ], From 17315e4436b5b496e97193938095d0d0e9bfea5b Mon Sep 17 00:00:00 2001 From: itziarZG Date: Thu, 5 Mar 2026 23:10:59 +0100 Subject: [PATCH 2/6] feat: add footer --- src/components/Nav.astro | 27 ---------- src/components/home/SectionMain.astro | 2 +- src/components/index.astro | 2 +- src/{pages => }/constants.ts | 0 src/i18n/sponsors/ca.ts | 2 + src/i18n/sponsors/en.ts | 4 +- src/i18n/sponsors/es.ts | 22 +++++---- src/layouts/Layout.astro | 12 +++-- src/layouts/components/Footer.astro | 49 +++++++++++++++++++ src/layouts/components/Header/Header.astro | 13 +++++ .../Header}/components/LanguagePicker.astro | 2 +- .../Header}/components/Navigation.astro | 2 +- .../Header}/components/ResponsiveToggle.astro | 0 src/pages/[lang]/index.astro | 2 +- src/pages/[lang]/sponsors.astro | 28 ++--------- src/pages/index.astro | 2 +- tsconfig.json | 8 ++- 17 files changed, 103 insertions(+), 74 deletions(-) delete mode 100644 src/components/Nav.astro rename src/{pages => }/constants.ts (100%) create mode 100644 src/layouts/components/Footer.astro create mode 100644 src/layouts/components/Header/Header.astro rename src/{ => layouts/components/Header}/components/LanguagePicker.astro (98%) rename src/{ => layouts/components/Header}/components/Navigation.astro (99%) rename src/{ => layouts/components/Header}/components/ResponsiveToggle.astro (100%) diff --git a/src/components/Nav.astro b/src/components/Nav.astro deleted file mode 100644 index efeecc1..0000000 --- a/src/components/Nav.astro +++ /dev/null @@ -1,27 +0,0 @@ ---- -import Navigation from './Navigation.astro' - -/** - * Nav Component - * - * @description Main navigation wrapper that uses the accessible Navigation component - * This component provides professional-level accessibility following WCAG 2.1 guidelines - * - * Keyboard behaviors (inherited from Navigation.astro): - * - ArrowLeft/ArrowRight: Navigate between top-level menu items - * - ArrowDown: Open dropdown and navigate down through items - * - ArrowUp: Navigate up through dropdown items - * - Escape: Close dropdown/mobile menu and return focus to trigger - * - Tab: Standard tab navigation with proper focus management - */ - -interface Props { - lang?: string -} - -const { lang } = Astro.props ---- - -
- -
diff --git a/src/components/home/SectionMain.astro b/src/components/home/SectionMain.astro index d2104d8..8d55f49 100644 --- a/src/components/home/SectionMain.astro +++ b/src/components/home/SectionMain.astro @@ -1,5 +1,5 @@ --- -import { texts } from '../../i18n/home' +import { texts } from '@/i18n/home' interface Props { lang: string diff --git a/src/components/index.astro b/src/components/index.astro index 7cb9cfd..0ebe207 100644 --- a/src/components/index.astro +++ b/src/components/index.astro @@ -1,5 +1,5 @@ --- -import Layout from '../layouts/Layout.astro' +import Layout from '@/layouts/Layout.astro' import SectionMain from './home/SectionMain.astro' interface Props { diff --git a/src/pages/constants.ts b/src/constants.ts similarity index 100% rename from src/pages/constants.ts rename to src/constants.ts diff --git a/src/i18n/sponsors/ca.ts b/src/i18n/sponsors/ca.ts index 2f56e9c..527a212 100644 --- a/src/i18n/sponsors/ca.ts +++ b/src/i18n/sponsors/ca.ts @@ -414,11 +414,13 @@ export const ca = { items: [ { icon: '🦋', label: 'Bluesky', url: 'https://bsky.app/profile/es.pycon.org' }, { icon: '🐙', label: 'GitHub', url: 'https://github.com/python-spain' }, + { icon: '🐘', label: 'Mastodon', url: 'https://fosstodon.org/@pycones' }, { icon: '𝕏', label: '', url: 'https://x.com/PyConES' }, { icon: '💼', label: 'LinkedIn', url: 'https://www.linkedin.com/company/pycones' }, { icon: '📸', label: 'Instagram', url: 'https://www.instagram.com/pycon_es' }, ], }, + contact: { title: 'T’hi apuntes?', body: 'T’ho posem fàcil. Escriu-nos explicant-nos quin nivell de patrocini t’interessa o quin pressupost teniu al cap. Nosaltres et guiarem en el procés, resoldrem els teus dubtes i veurem com encaixar la teva marca de la millor forma possible.', diff --git a/src/i18n/sponsors/en.ts b/src/i18n/sponsors/en.ts index 0fcd26b..8db4952 100644 --- a/src/i18n/sponsors/en.ts +++ b/src/i18n/sponsors/en.ts @@ -410,15 +410,17 @@ export const en = { ], }, socialLinks: { - title: 'Follow us', + title: 'Follow us on social media', items: [ { icon: '🦋', label: 'Bluesky', url: 'https://bsky.app/profile/es.pycon.org' }, { icon: '🐙', label: 'GitHub', url: 'https://github.com/python-spain' }, + { icon: '🐘', label: 'Mastodon', url: 'https://fosstodon.org/@pycones' }, { icon: '𝕏', label: '', url: 'https://x.com/PyConES' }, { icon: '💼', label: 'LinkedIn', url: 'https://www.linkedin.com/company/pycones' }, { icon: '📸', label: 'Instagram', url: 'https://www.instagram.com/pycon_es' }, ], }, + contact: { title: 'Interested?', body: 'We make it easy. Write to us mentioning which sponsorship level interests you or what budget you have in mind. We will guide you through the process and help your brand fit in the best possible way.', diff --git a/src/i18n/sponsors/es.ts b/src/i18n/sponsors/es.ts index d1dcc1c..0341392 100644 --- a/src/i18n/sponsors/es.ts +++ b/src/i18n/sponsors/es.ts @@ -30,6 +30,17 @@ export const es = { sunday: 'Domingo', sundayBody: 'Más charlas, "charlas relámpago" y la despedida final.', }, + socialLinks: { + title: 'Síguenos en redes', + items: [ + { icon: '🦋', label: 'Bluesky', url: 'https://bsky.app/profile/es.pycon.org' }, + { icon: '🐙', label: 'GitHub', url: 'https://github.com/python-spain' }, + { icon: '🐘', label: 'Mastodon', url: 'https://fosstodon.org/@pycones' }, + { icon: '𝕏', label: '', url: 'https://x.com/PyConES' }, + { icon: '💼', label: 'LinkedIn', url: 'https://www.linkedin.com/company/pycones' }, + { icon: '📸', label: 'Instagram', url: 'https://www.instagram.com/pycon_es' }, + ], + }, stats: { title: 'La PyConES en números', items: [ @@ -409,16 +420,7 @@ export const es = { }, ], }, - socialLinks: { - title: 'Síguenos en redes', - items: [ - { icon: '🦋', label: 'Bluesky', url: 'https://bsky.app/profile/es.pycon.org' }, - { icon: '🐙', label: 'GitHub', url: 'https://github.com/python-spain' }, - { icon: '𝕏', label: '', url: 'https://x.com/PyConES' }, - { icon: '💼', label: 'LinkedIn', url: 'https://www.linkedin.com/company/pycones' }, - { icon: '📸', label: 'Instagram', url: 'https://www.instagram.com/pycon_es' }, - ], - }, + contact: { title: '¿Te apuntas?', body: 'Te lo ponemos fácil. Escríbenos contándonos qué nivel de patrocinio te interesa o qué presupuesto tenéis en mente. Nosotros te guiaremos en el proceso, resolveremos tus dudas y veremos cómo encajar tu marca de la mejor forma posible.', diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index 3f3d264..a3ae659 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -1,6 +1,7 @@ --- -import Nav from '../components/Nav.astro' -import '../style/global.css' +import Header from './components/Header/Header.astro' +import Footer from './components/Footer.astro' +import '@/style/global.css' import '@fontsource-variable/jetbrains-mono' import '@fontsource-variable/outfit' import { ClientRouter } from 'astro:transitions' @@ -30,16 +31,17 @@ const { title, description = 'PyconES 2026' } = Astro.props - +
- diff --git a/src/layouts/components/Header/components/ThemeToggle.astro b/src/layouts/components/Header/components/ThemeToggle.astro new file mode 100644 index 0000000..794d98a --- /dev/null +++ b/src/layouts/components/Header/components/ThemeToggle.astro @@ -0,0 +1,93 @@ +--- +/** + * ThemeToggle Component + * + * @description A button to toggle between light and dark modes. + * Features an animated icon and localized tooltips. + */ +--- + + + + diff --git a/src/pages/[lang]/sponsors.astro b/src/pages/[lang]/sponsors.astro index 6183931..612dc31 100644 --- a/src/pages/[lang]/sponsors.astro +++ b/src/pages/[lang]/sponsors.astro @@ -520,26 +520,6 @@ const {

{SPONSORS_EMAIL}

- - -
-

{socialLinks.title}

-
- { - socialLinks.items.map((link: { url: string; label: string; icon: string }) => ( - - {link.icon} - {link.label} - - )) - } -
-
diff --git a/src/style/global.css b/src/style/global.css index cb4e5d5..fadb44c 100644 --- a/src/style/global.css +++ b/src/style/global.css @@ -105,4 +105,11 @@ html { --bg-symbol: url('/images/symbol-black-dark.svg'); color-scheme: dark; } + + :root.light { + --bg-color: #ffffff; + --text-color: #1d1d1b; + --bg-symbol: url('/images/symbol-black-light.svg'); + color-scheme: light; + } } From 95cae73052119e6e063aa8c02cb2bb45fbaf2b1e Mon Sep 17 00:00:00 2001 From: itziarZG Date: Tue, 17 Mar 2026 16:59:18 +0100 Subject: [PATCH 4/6] feat: fix footer in sponsors layout --- src/constants.ts | 1 + src/layouts/components/Footer.astro | 20 ++++++++++---------- src/pages/[lang]/sponsors.astro | 3 +-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/constants.ts b/src/constants.ts index 6857489..efb50d5 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1 +1,2 @@ export const SPONSORS_EMAIL = 'sponsors@2026.es.pycon.org' +export const CONTACT_EMAIL = 'contacto@2026.es.pycon.org' diff --git a/src/layouts/components/Footer.astro b/src/layouts/components/Footer.astro index 82354a2..ee4683d 100644 --- a/src/layouts/components/Footer.astro +++ b/src/layouts/components/Footer.astro @@ -50,7 +50,7 @@ const collaborators = [ ---