Skip to content

feat(sponsors): center the sponsor image, ring + link the logos#485

Merged
Brooooooklyn merged 1 commit into
mainfrom
feat/sponsors-image-center-redesign
Jul 6, 2026
Merged

feat(sponsors): center the sponsor image, ring + link the logos#485
Brooooooklyn merged 1 commit into
mainfrom
feat/sponsors-image-center-redesign

Conversation

@Brooooooklyn

Copy link
Copy Markdown
Member

Follow-up polish on the sponsor image router (#483). Redesigns the card rendered at napi.rs/sponsors.svg / .png.

Changes

  • Centered layout — the NAPI-RS Sponsors header / napi.rs subtitle / divider are removed; the tiers, labels, and logo rows are all centered. Tier labels are flanked by short rules (── SPECIAL THANKS ──) with roomier vertical rhythm.
  • Avatar ring — a faint per-theme ring token is drawn around every avatar so a logo matching the background (a black circle on dark, a white wordmark on light) still reads as present instead of vanishing. Fixes the "no special thanks in dark mode" case.
  • Clickable sponsors — each avatar is wrapped in an <a href="https://github.com/<sponsor>" target="_blank">. satori strips <a> (it targets static images), so linkAvatars pairs the Nth rendered <image> with the Nth sponsor — order- and count-safe (anchors always == images, even when an avatar drops). Sponsors are clickable when the .svg is opened directly; README ![]() embeds render as flat images through Camo as before.

Verification

  • Rendered both themes from live sponsor data (satori → resvg); centered, rings legible on light + dark, header gone, links present.
  • Full suite green (275 tests; +3 for the link/ring behavior, updated the stale "header-only" test). tsc clean (only the pre-existing hreflang errors). vp build OK.

🤖 Generated with Claude Code

…ogos

- Center-align the whole card: the "NAPI-RS Sponsors" header/subtitle/divider
  are removed and the tiers, labels, and logo rows are all centered. Tier
  labels are flanked by short rules; roomier vertical rhythm.
- Add a faint per-theme `ring` token drawn around every avatar so a logo that
  matches the background (a black circle on dark, a white mark on light) still
  reads as present instead of vanishing.
- Wrap each avatar in an <a> to the sponsor's page. satori strips <a> (it
  targets static images), so linkAvatars pairs the Nth rendered <image> with
  the Nth sponsor (order- and count-safe). Sponsors are clickable when the .svg
  is opened directly; README `![]()` embeds render as flat images as before.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Brooooooklyn Brooooooklyn merged commit 1639b9a into main Jul 6, 2026
2 checks passed
@Brooooooklyn Brooooooklyn deleted the feat/sponsors-image-center-redesign branch July 6, 2026 10:49

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 2c23572c6a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines 164 to +167
style: {
display: 'flex',
color: t.fg,
fontSize: 30,
fontWeight: 700,
},
children: 'NAPI-RS Sponsors',
},
},
{
type: 'div',
props: {
style: {
display: 'flex',
color: t.accent,
fontSize: 15,
fontWeight: 500,
marginTop: 4,
flexWrap: 'wrap',
justifyContent: 'center',

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Constrain avatar rows before centering

When a tier has enough sponsors to wrap, this row is now an auto-width flex item inside a column that centers its children, so it can size to the total avatar width instead of the card width; flexWrap then never gets the card constraint and large tiers such as backers overflow or get clipped horizontally. Add an explicit width: '100%' (or another constraint) to the avatar row so wrapping happens within the 800px card.

Useful? React with 👍 / 👎.

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