From cd0e1128d90ad2db7c3c57eeb61a1f2a2ee8f086 Mon Sep 17 00:00:00 2001 From: Valentin Maerten Date: Mon, 17 Aug 2026 11:29:40 +0200 Subject: [PATCH 1/5] feat(website): add sponsor tooltips and dark logo variants Fork VPSponsorsGrid so a sponsor entry can carry a description, shown as a tooltip, and a dedicated logo for dark backgrounds. A sponsor providing its own dark logo opts out of the grid's invert filter, and falls back to the light logo on hover, where the tile turns white. --- .../.vitepress/components/VPSponsorsGrid.vue | 54 +++++++++++++++++++ website/.vitepress/config.ts | 6 +++ website/.vitepress/sponsors.ts | 16 +++++- website/.vitepress/theme/custom.css | 17 ++++++ 4 files changed, 91 insertions(+), 2 deletions(-) create mode 100644 website/.vitepress/components/VPSponsorsGrid.vue diff --git a/website/.vitepress/components/VPSponsorsGrid.vue b/website/.vitepress/components/VPSponsorsGrid.vue new file mode 100644 index 0000000000..95c15a1245 --- /dev/null +++ b/website/.vitepress/components/VPSponsorsGrid.vue @@ -0,0 +1,54 @@ + + + diff --git a/website/.vitepress/config.ts b/website/.vitepress/config.ts index c17d73edea..7bf78562be 100644 --- a/website/.vitepress/config.ts +++ b/website/.vitepress/config.ts @@ -316,6 +316,12 @@ export default defineConfig({ replacement: fileURLToPath( new URL('./components/VPTeamMembersItem.vue', import.meta.url) ) + }, + { + find: /^.*\/VPSponsorsGrid\.vue$/, + replacement: fileURLToPath( + new URL('./components/VPSponsorsGrid.vue', import.meta.url) + ) } ] } diff --git a/website/.vitepress/sponsors.ts b/website/.vitepress/sponsors.ts index fa8e43c25b..ed54010bca 100644 --- a/website/.vitepress/sponsors.ts +++ b/website/.vitepress/sponsors.ts @@ -1,4 +1,15 @@ -export const sponsors = [ +export interface Sponsor { + name: string; + url: string; + img: string; + // Logo variant for dark backgrounds. Sponsors that set one keep their own + // colours instead of being inverted by the sponsor grid. + imgDark?: string; + // Tooltip explaining what this sponsor gives the project. + description?: string; +} + +export const sponsors: { tier: string; size: string; items: Sponsor[] }[] = [ { tier: 'Gold Sponsors', size: 'big', @@ -27,7 +38,8 @@ export const sponsors = [ { name: 'Cloudsmith', url: 'https://cloudsmith.com/', - img: '/img/cloudsmith.svg' + img: '/img/cloudsmith.svg', + description: 'Hosts the deb and rpm package registries for free' } ] } diff --git a/website/.vitepress/theme/custom.css b/website/.vitepress/theme/custom.css index 6e5c2b163c..d47471adb1 100644 --- a/website/.vitepress/theme/custom.css +++ b/website/.vitepress/theme/custom.css @@ -145,3 +145,20 @@ img[src*='custom-icon-badges.demolab.com'] { .VPTeamPage > .VPTeamPageTitle { padding-top: 0 } + +/* A sponsor shipping its own dark-background logo already reads correctly on + dark, so it opts out of the grid's invert treatment. On hover the grid turns + the tile white, so it falls back to the light logo like every other tile. */ +.vp-sponsor-grid-item.has-dark-logo .vp-sponsor-grid-image { + filter: none; +} + +.dark .vp-sponsor-grid-item.has-dark-logo .logo-light, +.dark .vp-sponsor-grid-item.has-dark-logo:hover .logo-dark, +html:not(.dark) .vp-sponsor-grid-item .logo-dark { + display: none; +} + +.dark .vp-sponsor-grid-item.has-dark-logo:hover .logo-light { + display: block; +} From d10e5f6c783047f3a2b90b38426000b6c3951d3b Mon Sep 17 00:00:00 2001 From: Valentin Maerten Date: Mon, 17 Aug 2026 11:29:46 +0200 Subject: [PATCH 2/5] feat(website): show sponsor logos in colour in light mode --- website/.vitepress/theme/custom.css | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/website/.vitepress/theme/custom.css b/website/.vitepress/theme/custom.css index d47471adb1..0c7456e0f9 100644 --- a/website/.vitepress/theme/custom.css +++ b/website/.vitepress/theme/custom.css @@ -146,6 +146,13 @@ img[src*='custom-icon-badges.demolab.com'] { padding-top: 0 } +/* VitePress greys out sponsor logos by default. Show them in their brand + colours in light mode; dark mode keeps the inversion so black wordmarks + stay readable. */ +html:not(.dark) .vp-sponsor-grid-image { + filter: none; +} + /* A sponsor shipping its own dark-background logo already reads correctly on dark, so it opts out of the grid's invert treatment. On hover the grid turns the tile white, so it falls back to the light logo like every other tile. */ From dc5afffdb42fd463163d64f93b9a1b7ee2c54b84 Mon Sep 17 00:00:00 2001 From: Valentin Maerten Date: Mon, 17 Aug 2026 11:29:59 +0200 Subject: [PATCH 3/5] docs: credit JetBrains for the open source licenses JetBrains provides the maintainers with free All Products Pack licenses through its open source program, and asks that the support be visible on the project website or README. Three logo files, per the JetBrains brand guidelines: the primary one for light backgrounds, a white-wordmark variant for the README in dark mode, and a monochrome one so the sponsor grid stays consistent in dark mode. --- README.md | 13 +++++++++++++ website/.vitepress/sponsors.ts | 8 ++++++++ website/src/public/img/jetbrains-dark.svg | 13 +++++++++++++ website/src/public/img/jetbrains-mono.svg | 13 +++++++++++++ website/src/public/img/jetbrains.svg | 13 +++++++++++++ 5 files changed, 60 insertions(+) create mode 100644 website/src/public/img/jetbrains-dark.svg create mode 100644 website/src/public/img/jetbrains-mono.svg create mode 100644 website/src/public/img/jetbrains.svg diff --git a/README.md b/README.md index c39303b5ab..7ae58aaf47 100644 --- a/README.md +++ b/README.md @@ -46,4 +46,17 @@ + +

Powered by

+ +

+ + + + JetBrains logo + + +

+ +

Tooling provided by JetBrains.

diff --git a/website/.vitepress/sponsors.ts b/website/.vitepress/sponsors.ts index ed54010bca..1927a36cf4 100644 --- a/website/.vitepress/sponsors.ts +++ b/website/.vitepress/sponsors.ts @@ -40,6 +40,14 @@ export const sponsors: { tier: string; size: string; items: Sponsor[] }[] = [ url: 'https://cloudsmith.com/', img: '/img/cloudsmith.svg', description: 'Hosts the deb and rpm package registries for free' + }, + { + name: 'JetBrains', + url: 'https://jb.gg/OpenSource', + img: '/img/jetbrains.svg', + imgDark: '/img/jetbrains-mono.svg', + description: + 'Provides free All Products Pack licenses to the maintainers' } ] } diff --git a/website/src/public/img/jetbrains-dark.svg b/website/src/public/img/jetbrains-dark.svg new file mode 100644 index 0000000000..521da3fd60 --- /dev/null +++ b/website/src/public/img/jetbrains-dark.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/website/src/public/img/jetbrains-mono.svg b/website/src/public/img/jetbrains-mono.svg new file mode 100644 index 0000000000..b4c8d83c27 --- /dev/null +++ b/website/src/public/img/jetbrains-mono.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/website/src/public/img/jetbrains.svg b/website/src/public/img/jetbrains.svg new file mode 100644 index 0000000000..cb3a2a0e58 --- /dev/null +++ b/website/src/public/img/jetbrains.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + From 59b596c7c553ef3ca4cae1b63d4c9da5f78a418f Mon Sep 17 00:00:00 2001 From: Valentin Maerten Date: Mon, 17 Aug 2026 11:33:48 +0200 Subject: [PATCH 4/5] feat(website): style the sponsor tooltip The native title attribute took a second to appear and ignored keyboard focus. The tooltip now lives in the tile, since the sponsor grid clips anything that overflows it. --- .../.vitepress/components/VPSponsorsGrid.vue | 47 ++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/website/.vitepress/components/VPSponsorsGrid.vue b/website/.vitepress/components/VPSponsorsGrid.vue index 95c15a1245..aca38773bf 100644 --- a/website/.vitepress/components/VPSponsorsGrid.vue +++ b/website/.vitepress/components/VPSponsorsGrid.vue @@ -30,7 +30,6 @@ useSponsorsGrid({ el, size: props.size }); :href="sponsor.url" target="_blank" rel="sponsored noopener" - :title="sponsor.description" >

{{ sponsor.name }}

@@ -49,6 +48,52 @@ useSponsorsGrid({ el, size: props.size }); />
+ + + {{ sponsor.description }} + + + From 56b8699d779b6ba74d4c81c5008e8bd9c69a47bd Mon Sep 17 00:00:00 2001 From: Valentin Maerten Date: Mon, 17 Aug 2026 11:37:10 +0200 Subject: [PATCH 5/5] docs: say what each community sponsor provides Cloudsmith and JetBrains both give the project a service rather than money, so the README now names what each one covers, on its own table row so the captions line up. --- README.md | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 7ae58aaf47..8ddcde97ca 100644 --- a/README.md +++ b/README.md @@ -44,19 +44,22 @@ + + + + + JetBrains logo + + + + + + + Package hosting provided by Cloudsmith. + + + Tooling provided by JetBrains. + - -

Powered by

- -

- - - - JetBrains logo - - -

- -

Tooling provided by JetBrains.