From ef943c863a5408fbb7f06e34a0a9cbcfce17ec9c Mon Sep 17 00:00:00 2001 From: Niko Date: Thu, 15 May 2025 19:54:53 +0200 Subject: [PATCH 01/14] Add missing aria-labels. --- src/components/header/header-logo.astro | 4 ++-- src/components/sections/hero/hero.astro | 1 + src/components/sections/subscribe.astro | 15 ++++++++------- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/components/header/header-logo.astro b/src/components/header/header-logo.astro index 9c54a8240..3b1a9cbc9 100644 --- a/src/components/header/header-logo.astro +++ b/src/components/header/header-logo.astro @@ -4,6 +4,6 @@ interface Props { } --- - - + + EuroPython logo diff --git a/src/components/sections/hero/hero.astro b/src/components/sections/hero/hero.astro index 3bc454ee0..41b203089 100644 --- a/src/components/sections/hero/hero.astro +++ b/src/components/sections/hero/hero.astro @@ -89,6 +89,7 @@ const action2 = "/sponsorship/sponsor/"; src="/logo.png" height="188" width="188" + alt="EuroPython logo" />

- {socialLinks.map(({ href, icon }) => ( + {socialLinks.map(({ href, icon, label }) => ( From fa219113f7508a7aa7abf5a133021578b3db4667 Mon Sep 17 00:00:00 2001 From: Niko Date: Thu, 15 May 2025 20:10:08 +0200 Subject: [PATCH 02/14] Cleanup: Clean remove Title component. --- .../hero-section/title-with-cta.astro | 4 +- .../sponsor-tiers/sponsor-tiers.astro | 14 +--- .../ticket-tiers/ticket-tiers.astro | 6 +- src/components/typography/title.tsx | 50 ------------- src/components/ui/Headline.astro | 73 +------------------ 5 files changed, 12 insertions(+), 135 deletions(-) delete mode 100644 src/components/typography/title.tsx diff --git a/src/components/hero-section/title-with-cta.astro b/src/components/hero-section/title-with-cta.astro index 491bb87fc..baeab2571 100644 --- a/src/components/hero-section/title-with-cta.astro +++ b/src/components/hero-section/title-with-cta.astro @@ -1,6 +1,6 @@ --- import Button from "@ui/Button.astro"; -import { Title } from "../typography/title"; +import Headline from "@ui/Headline.astro"; interface Props { title: string; @@ -13,7 +13,7 @@ const { title, subtitle, buttonText, buttonUrl } = Astro.props; ---
- {title} +

{subtitle}

{ diff --git a/src/components/sponsor-tiers/sponsor-tiers.astro b/src/components/sponsor-tiers/sponsor-tiers.astro index f78f2b3b4..1e24852b1 100644 --- a/src/components/sponsor-tiers/sponsor-tiers.astro +++ b/src/components/sponsor-tiers/sponsor-tiers.astro @@ -1,5 +1,5 @@ --- -import { Title } from "../typography/title"; +import Headline from "@ui/Headline.astro"; import Ribbon from "./ribbon.astro"; import Button from "@ui/Button.astro"; @@ -207,9 +207,7 @@ const formatPrice = (price: number | string) => { className={`absolute -right-6 -top-8 ${getRibbonClass(tier.title)}`} style={{ zIndex: "-1", top: "-55px" }} /> - - {tier.title} - +
{formatPrice(tier.price)}
{tier.slotsLeft ? ( @@ -263,9 +261,7 @@ const formatPrice = (price: number | string) => { className={`absolute -right-6 -top-8 ${getRibbonClass(tier.title)}`} style={{ zIndex: "-1", top: "-55px" }} /> - - {tier.title} - +
{formatPrice(tier.price)}
{tier.slotsLeft === "Exclusive" ? ( @@ -321,9 +317,7 @@ const formatPrice = (price: number | string) => { className={`absolute -right-6 -top-8 ${getRibbonClass(tier.title)}`} style={{ zIndex: "-1", top: "-55px" }} /> - - {tier.title} - +
{formatPrice(tier.price)}
{tier.slotsLeft ? ( diff --git a/src/components/ticket-tiers/ticket-tiers.astro b/src/components/ticket-tiers/ticket-tiers.astro index 820319d81..5ff960ba3 100644 --- a/src/components/ticket-tiers/ticket-tiers.astro +++ b/src/components/ticket-tiers/ticket-tiers.astro @@ -1,5 +1,5 @@ --- -import { Title } from "../typography/title"; +import Headline from "@ui/Headline.astro"; interface Props { ticketShopLink: string; @@ -139,9 +139,7 @@ const formatPrice = (price: number | string) => { tiers.map((tier) => (
- - {tier.title} - +
diff --git a/src/components/typography/title.tsx b/src/components/typography/title.tsx deleted file mode 100644 index d1ccfceb9..000000000 --- a/src/components/typography/title.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import clsx from "clsx"; -import type { JSX } from "react/jsx-runtime"; - -export const Title = ({ - children, - highlighted = false, - level = 1, - className, - ...props -}: { - children: React.ReactNode; - highlighted?: boolean; - level?: 1 | 2 | 3 | 4 | 5 | 6; - className?: string; -}) => { - const Tag = `h${level}` as keyof JSX.IntrinsicElements; - - return ( - a]:border-0 [&>a]:text-inherit text-pretty", - { - "text-4xl md:text-7xl": level === 1, - "text-3xl md:text-5xl": level === 2, - "text-2xl md:text-4xl": level === 3, - "text-xl md:text-3xl": level === 4, - "text-lg md:text-2xl": level === 5, - "text-lg md:text-xl": level === 6, - }, - className - )} - {...props} - > - {highlighted ? ( - - ) : null} - - {children} - - ); -}; diff --git a/src/components/ui/Headline.astro b/src/components/ui/Headline.astro index 2f3ba4ecb..1237dbd79 100644 --- a/src/components/ui/Headline.astro +++ b/src/components/ui/Headline.astro @@ -9,82 +9,17 @@ const isCenter = center ? "text-center" : ""; --- - {isAnchor && ( + {isAnchor ? ( {Title} - )} + ): + <>{Title} + } {isLink && {Title} } diff --git a/src/content/pages/sponsorship/sponsor.mdx b/src/content/pages/sponsorship/sponsor.mdx index 5d7bc2043..3e465bbe6 100644 --- a/src/content/pages/sponsorship/sponsor.mdx +++ b/src/content/pages/sponsorship/sponsor.mdx @@ -10,14 +10,15 @@ toc: false # Why Sponsor EuroPython? Stand out in the heart of Europe’s Python ecosystem and connect with ~1,500 Python professionals - **~1,500** participants from **~50** countries - **24th** edition – the world’s **longest-running** Python conference - **190+** speakers across diverse Python topics - **40K+** social media followers - **34K** YouTube subscribers and **4M+** YouTube views - **25%** of participants from underrepresented groups in tech +- **~1,500** participants from **~50** countries +- **24th** edition – the world’s **longest-running** Python conference +- **190+** speakers across diverse Python topics +- **40K+** social media followers +- **34K** YouTube subscribers and **4M+** YouTube views +- **25%** of participants from underrepresented groups in tech + Join **EuroPython 2025 from 14 – 20 July** at the Prague Congress Centre (PCC) to connect, showcase your company, and shape the future of Python! diff --git a/src/pages/[...slug].astro b/src/pages/[...slug].astro index 74b5fcd3f..4257ea540 100644 --- a/src/pages/[...slug].astro +++ b/src/pages/[...slug].astro @@ -5,8 +5,7 @@ import Layout from "@layouts/MarkdownLayout.astro"; import Separator from "@ui/Separator.astro"; import Map from "@components/Map.astro"; import YouTube from "@ui/YouTube.astro"; -import HighlightCard from "@components/highlight-list/highlight-card.astro"; -import HighlightItem from "@components/highlight-list/highlight-item.astro"; +import HighlightCard from "@components/markdown/HighlightCard.astro"; import Note from "@ui/Note.astro"; import SponsorTiers from "@components/sponsor-tiers/sponsor-tiers.astro"; import Accordion from "@components/ui/Accordion.astro"; @@ -61,7 +60,6 @@ const description = post.data.subtitle; Map, YouTube, HighlightCard, - HighlightItem, Note, SponsorTiers, hr: Separator, From 9bab566a98332288dd3f5edcacecbaf310249a01 Mon Sep 17 00:00:00 2001 From: Niko Date: Thu, 15 May 2025 21:12:20 +0200 Subject: [PATCH 12/14] Cleanup: Prose. --- src/components/sessions/list-sessions.astro | 4 ++-- src/components/{ => sessions}/session-speakers.astro | 0 src/pages/session/[slug].astro | 2 +- src/pages/sessions.astro | 8 ++++---- src/pages/speaker/[slug].astro | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) rename src/components/{ => sessions}/session-speakers.astro (100%) diff --git a/src/components/sessions/list-sessions.astro b/src/components/sessions/list-sessions.astro index 1a99a4ce8..8d09444a7 100644 --- a/src/components/sessions/list-sessions.astro +++ b/src/components/sessions/list-sessions.astro @@ -1,8 +1,8 @@ --- const { sessions } = Astro.props; -import Prose from "../prose/prose.astro"; +import Prose from "@ui/Prose.astro"; import Tag from "@ui/Tag.astro"; -import SessionSpeakers from "../session-speakers.astro"; +import SessionSpeakers from "./session-speakers.astro"; type Session = { data: { diff --git a/src/components/session-speakers.astro b/src/components/sessions/session-speakers.astro similarity index 100% rename from src/components/session-speakers.astro rename to src/components/sessions/session-speakers.astro diff --git a/src/pages/session/[slug].astro b/src/pages/session/[slug].astro index 733a8cb3f..d7f851105 100644 --- a/src/pages/session/[slug].astro +++ b/src/pages/session/[slug].astro @@ -1,7 +1,7 @@ --- import { getCollection, getEntries } from "astro:content"; import Layout from "@layouts/Layout.astro"; -import Prose from "@components/prose/prose.astro"; +import Prose from "@ui/Prose.astro"; import Separator from "@ui/Separator.astro"; import { formatInTimeZone } from "date-fns-tz"; import { YouTube } from "@astro-community/astro-embed-youtube"; diff --git a/src/pages/sessions.astro b/src/pages/sessions.astro index e15b8f05c..5a98906af 100644 --- a/src/pages/sessions.astro +++ b/src/pages/sessions.astro @@ -1,10 +1,10 @@ --- import { getCollection } from "astro:content"; -import Layout from "../layouts/Layout.astro"; -import Prose from "../components/prose/prose.astro"; +import Layout from "@layouts/Layout.astro"; +import Prose from "@ui/Prose.astro"; import Headline from "@ui/Headline.astro" -import Filter from "../components/sessions/filter.astro"; -import ListSessions from "../components/sessions/list-sessions.astro"; +import Filter from "@components/sessions/filter.astro"; +import ListSessions from "@components/sessions/list-sessions.astro"; import Section from "@ui/Section.astro"; const sessions = await getCollection("sessions"); diff --git a/src/pages/speaker/[slug].astro b/src/pages/speaker/[slug].astro index a11fef7aa..9f9639c82 100644 --- a/src/pages/speaker/[slug].astro +++ b/src/pages/speaker/[slug].astro @@ -1,7 +1,7 @@ --- import { getCollection, getEntries } from "astro:content"; -import Layout from "../../layouts/Layout.astro"; -import Prose from "../../components/prose/prose.astro"; +import Layout from "@layouts/Layout.astro"; +import Prose from "@ui/Prose.astro"; import { Image } from "astro:assets"; import Markdown from "@ui/Markdown.astro"; import Headline from "@ui/Headline.astro"; From f70bb059923eccacc842c3ebf2fb04954136b738 Mon Sep 17 00:00:00 2001 From: Niko Date: Thu, 15 May 2025 22:27:53 +0200 Subject: [PATCH 13/14] Cleanup: Update in Prose and headline. --- src/components/ui/Headline.astro | 67 ++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/src/components/ui/Headline.astro b/src/components/ui/Headline.astro index 1237dbd79..12f0f887f 100644 --- a/src/components/ui/Headline.astro +++ b/src/components/ui/Headline.astro @@ -20,6 +20,73 @@ const isCenter = center ? "text-center" : "";