Skip to content

feat: surface funder logos (NLnet/NGI Zero PET, Mozilla MOSS) prominently - #102

Merged
ronaldtse merged 12 commits into
mainfrom
feat/sponsor-logos
Jul 28, 2026
Merged

feat: surface funder logos (NLnet/NGI Zero PET, Mozilla MOSS) prominently#102
ronaldtse merged 12 commits into
mainfrom
feat/sponsor-logos

Conversation

@ronaldtse

Copy link
Copy Markdown
Contributor

Summary

Surfaces RNP's funder logos prominently across the site. Verified funding history:

  • NLnet Foundation — NGI Zero PET (Next Generation Internet → Privacy & Trust Enhancing Technologies). The 2021 GSOD blog post already credits this stream for RNP. Provenance note: the publicly-visible NLnet grant to Ribose is project "RNP Confium" — Confium is a project that grew out from that grant, so crediting NLnet/NGI Zero PET as a direct RNP funder is historically accurate.
  • Mozilla Open Source Support (MOSS) — Foundational Technology + Secure Open Source funds. Linked to github.com/mozilla/moss-directory (the program page at mozilla.org/en-US/moss/ is winding down).

Changes

  • New component src/components/Sponsors.astro — single source of truth with three variants (band / strip / inline).
  • Home page — new "Supported by" band between the LibrePGP gold ribbon and § 01 Software, with NLnet / NGI Zero PET / Mozilla logos + EU emblem and the line "Funded by the European Union — Next Generation Internet".
  • Global footer — compact "Funded by" attribution strip above the copyright row, visible on every page.
  • About page — funder panel upgraded from text-only links to logo cards; Ribose retained as a separate text card.
  • New sponsor assets in public/assets/sponsors/:
    • nlnet.svg — NLnet hex (source: nlnet.nl/logo)
    • ngi-zero-pet.svg — NGI Zero PET tag (source: nlnet.nl/logo)
    • mozilla.svg — Mozilla wordmark (source: Wikimedia Commons, CC-BY-SA; trademark — nominative use)
    • eu-flag.svg — EU emblem (source: Wikimedia Commons, public domain)

Test plan

  • npm run build — 66 pages built, no errors
  • npm run check:links — all internal href/src targets exist
  • External funder URLs return 200 (nlnet.nl, nlnet.nl/thema/NGIZeroPET.html, github.com/mozilla/moss-directory, ngi.eu)
  • All four sponsor SVGs serve from /assets/sponsors/ (preview server, 200)
  • Visual review on preview deploy — confirm band reads well in both light and dark mode, and that the multicolor NLnet/NGI logos render correctly against the teal band background
  • Full external link check npm run check:links:external in CI

Notes

  • Mozilla wordmark is a trademark; CC-BY-SA SVG from Wikimedia is used for nominative purposes ("Mozilla MOSS awardee"). If a different source is preferred (e.g. mozilla.design), swap public/assets/sponsors/mozilla.svg.
  • Per AGENTS.md convention, no dark: variants on semantic utilities; logos render on a light teal band (home) or as text links (footer).

ronaldtse added 12 commits July 28, 2026 15:39
…ntly

Add a "Supported by" band below the hero on the home page, a compact
"Funded by" attribution strip in the global footer, and upgrade the
About page funder panel from text-only links to logo cards. Each
placement includes the EU acknowledgement line as required by NGI Zero PET.

Single source of truth is the new Sponsors.astro component with three
variants (band / strip / inline). Sponsor SVGs staged under
public/assets/sponsors/ from upstream sources:
- NLnet hex (nlnet.nl/logo)
- NGI Zero PET tag (nlnet.nl/logo)
- Mozilla wordmark (Wikimedia Commons, CC-BY-SA)
- EU emblem (Wikimedia Commons, public domain)

Verified: build passes (66 pages), internal link check clean, all four
external funder URLs return 200.
Shorten the home "Supported by" strip to a single horizontal row
(label + logos + EU line). Multicolor NLnet/NGI marks sit on light
plates so brand colors stay legible in dark mode; Mozilla swaps to a
white wordmark under .dark. Drop the muddy band-teal wash in favour
of a neutral surface gradient.
Multicolor marks sit bare on the band in light mode; white plates
only kick in under .dark so brand colors stay legible.
NLnet/NGI brand marks read fine bare in both themes; keep only the
Mozilla light/dark wordmark swap.
Match the home band: no white plate behind marks, and Mozilla swaps
to the white wordmark in dark mode.
Stage the geometric Ribose logo (black + white) and render it at a
modest size beside the creator/maintainer blurb, matching the other
funder cards and swapping to white under .dark.
Stage official partner SVGs (Mozilla already in place; g10 Code
rebuilt from official PNG into a clean path; Intevation via the
project's own /logo/intevation-logo-text.svg + darkmode variant;
NLnet/NGI swapped to the wider banners already used on the Confium
project site). Each renders bare in light mode and swaps to a white
mark under .dark.

Update partners array + render block on /about/ to the same logo-card
pattern used for funders.
The funders cards were rendering the mozilla `<img>` with
`class="h-5 w-auto w-auto dark:hidden"` — caused by the inline
variant's class:list template-literal appending a second ` w-auto`
to `f.logoClass` (which already ended in w-auto). Visible glitch:
MOSS/funder cards stacked vertically in some browsers; partner cards
(using the same markup but via direct template literals) rendered fine.

Switch g10 Code partner logo to the official `g10-logo.svg` (same
asset in both light and dark mode per the brand — green banner +
white wordmark). g10-logo.pdf kept as the original source.
Replace the Wikimedia-sourced mozilla SVGs with Mozilla Logo Library
wordmarks (704x146, clean viewBox — the old sources used a negative
viewBox which the browser clipped). Bump logo heights:
- Mozilla: h-7 (partners), h-6 (funders)
- g10 Code: h-8
- Intevation: h-7
- NLnet (funders inline): h-12
- NGI Zero PET (funders inline): h-10

Drop the fixed `w-28` on the logo container; it was clipping wide
wordmarks. Container now grows to fit the image, keeps `h-12`,
adds a small right-padding.
The Mozilla partner card is now a featured full-row card so the
official lockup has room to breathe at h-16. Auto-fit viewBoxes
rewritten on both lockup SVGs (996×239 black, 996×239 white) so
the wordmark content fills the rendered area instead of floating in
a 1080×1080 canvas with 80% whitespace.

g10 Code → "Developers of GnuPG", Intevation → "Developers of
Gpg4win". The community statement is now a featured blockquote ABOVE
the partners / funders columns, with the small inline copy removed.
Killed the featured/non-featured conditional that produced nested
anchor tags on the Mozilla card. All three cards now render through
one rendering path: one wrapping `<a>`, fixed logo container
(`h-12 w-32`), flex-1 text column. Only the logo size and dark-mode
swap vary per partner — structure is identical.
The Mozilla partner card had a nested `<a href="thunderbird.net">`
inside an outer wrapping `<a href="mozilla.org">` — HTML5 parser
auto-closes the outer anchor on seeing the inner one, breaking the
card layout (the heading and description dropped out of the card).

Restructure all partner and funder cards the same way:
- Outer `<div class="card card-hover group flex items-center gap-5 p-5">`
- `<a>` around just the logo (with aria-label)
- `<a>` around just the heading text
- `<p>` description (with any inline `<a>` for related links)

All funders and partners share the same `h-12 w-32` logo container
and `h-7 w-auto` (NGI/Mozilla/Ribose) or `h-9`/`h-10` (NLnet/g10)
logo heights for visual balance. Sponsors.astro inline variant uses
the same structure so both columns on /about/ align identically.
@ronaldtse
ronaldtse merged commit 322d90a into main Jul 28, 2026
6 checks passed
@ronaldtse
ronaldtse deleted the feat/sponsor-logos branch July 28, 2026 14:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant