Skip to content

Commit e43016e

Browse files
authored
Fix logo size of sponsor (#2401)
AirBnB's logo was rendering very small due to embedded padding. This PR renders logos with updated viewBox so that padding is removed to give logos equivalent sizes in the same tier. It also matches the rank of the silver and open source sponsor tiers, and improves padding between the logos and the tier division lines. I've also noted why we couldn't do the same treatment to Meta.
1 parent 41126bd commit e43016e

1 file changed

Lines changed: 16 additions & 23 deletions

File tree

src/app/conf/2026/components/sponsors.tsx

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import Apollo from "public/img/conf/Sponsors/Apollo.svg?svgr"
55
import Wundergraph from "public/img/conf/Sponsors/WunderGraph-graded.svg?svgr"
66
import Grafast from "public/img/conf/Sponsors/Grafast.svg?svgr"
77
import Chillicream from "public/img/conf/Sponsors/Chillicream.svg?svgr"
8+
import Airbnb from "public/img/conf/Sponsors/airbnb.svg?svgr"
89

910
interface Sponsor {
1011
icon:
@@ -18,6 +19,9 @@ interface Sponsor {
1819
const sponsorPlatinum: Sponsor[] = [
1920
{
2021
icon: (props: React.HTMLAttributes<HTMLDivElement>) => (
22+
// When attempting to render the Meta logo with SVGR, the image becomes
23+
// corrupted (something to do with a `clip-path`?); this means we need to
24+
// render as an `<img>` and prevents us updating the viewBox.
2125
<div
2226
{...props}
2327
className={clsx(props.className, "relative aspect-video flex-shrink-0")}
@@ -105,6 +109,7 @@ const sponsorBronze: Sponsor[] = [
105109
icon: (props: React.SVGProps<SVGElement>) => (
106110
<Grafast
107111
{...props}
112+
viewBox="2.5 4 80 24"
108113
className={clsx(
109114
props.className,
110115
"[&_path]:fill-[#15252D] dark:[&_path]:fill-white",
@@ -118,26 +123,8 @@ const sponsorBronze: Sponsor[] = [
118123

119124
const sponsorCommunity: Sponsor[] = [
120125
{
121-
icon: (props: React.HTMLAttributes<HTMLDivElement>) => (
122-
<div
123-
{...props}
124-
className={clsx(props.className, "relative aspect-video flex-shrink-0")}
125-
>
126-
<img
127-
src={
128-
new URL("/public/img/conf/Sponsors/airbnb.svg", import.meta.url)
129-
.href
130-
}
131-
className="absolute inset-0 size-full object-contain dark:hidden"
132-
/>
133-
<img
134-
src={
135-
new URL("/public/img/conf/Sponsors/airbnb.svg", import.meta.url)
136-
.href
137-
}
138-
className="absolute inset-0 hidden size-full object-contain dark:block"
139-
/>
140-
</div>
126+
icon: (props: React.SVGProps<SVGElement>) => (
127+
<Airbnb {...props} viewBox="567 570 1979.77 660.012" />
141128
),
142129
name: "Airbnb",
143130
link: "https://www.airbnb.com/",
@@ -149,28 +136,34 @@ export interface SponsorsProps {
149136
}
150137

151138
interface Tier {
139+
rank: number
152140
name: string
153141
items: Sponsor[]
154142
}
155143

156144
const sponsorTiers: Tier[] = [
157145
{
146+
rank: 0,
158147
name: "Platinum",
159148
items: sponsorPlatinum,
160149
},
161150
{
151+
rank: 1,
162152
name: "Gold",
163153
items: sponsorGold,
164154
},
165155
{
156+
rank: 2,
166157
name: "Silver",
167158
items: sponsorSilver,
168159
},
169160
{
161+
rank: 2,
170162
name: "Open Source Community Sponsor",
171163
items: sponsorCommunity,
172164
},
173165
{
166+
rank: 3,
174167
name: "Bronze",
175168
items: sponsorBronze,
176169
},
@@ -188,7 +181,7 @@ export function Sponsors({ heading }: SponsorsProps) {
188181
<Tier
189182
key={tier.name}
190183
tier={tier}
191-
logoHeight={236 - sponsorTiers.indexOf(tier) * 32}
184+
logoHeight={(7 - tier.rank) * 32}
192185
/>
193186
),
194187
)}
@@ -199,12 +192,12 @@ export function Sponsors({ heading }: SponsorsProps) {
199192

200193
function Tier({ tier, logoHeight }: { tier: Tier; logoHeight: number }) {
201194
return (
202-
<div className="flex gap-x-12 gap-y-4 border-t border-neu-200 py-4 dark:border-neu-50 max-md:flex-col">
195+
<div className="flex gap-x-12 gap-y-4 border-t border-neu-200 py-4 pb-12 dark:border-neu-50 max-md:flex-col">
203196
<h3 className="flex w-[80px] shrink-0 items-center gap-1 self-start whitespace-nowrap font-mono text-sm/none font-normal uppercase text-pri-base">
204197
<ChevronRight className="shrink-0 translate-y-[-0.5px]" />
205198
{tier.name}
206199
</h3>
207-
<div className="flex min-w-[70%] flex-wrap justify-center gap-y-4 lg:grid lg:w-full lg:grid-cols-2 lg:gap-4">
200+
<div className="flex min-w-[70%] flex-wrap justify-center gap-y-4 pt-6 lg:grid lg:w-full lg:grid-cols-2 lg:gap-4">
208201
{tier.items.map(({ link, icon: Icon, name }, i) => (
209202
<a
210203
key={i}

0 commit comments

Comments
 (0)