Skip to content

Comments

feat: add new sections to about page#1630

Open
alexdln wants to merge 9 commits intonpmx-dev:mainfrom
alexdln:feat/new-sections-about-page
Open

feat: add new sections to about page#1630
alexdln wants to merge 9 commits intonpmx-dev:mainfrom
alexdln:feat/new-sections-about-page

Conversation

@alexdln
Copy link
Member

@alexdln alexdln commented Feb 24, 2026

🔗 Linked issue

Resolves #1623

🧭 Context

Adding Sponsors and OSS Partners sections

Screenshots image

📚 Description

Added new sections. No major design changes yet, just using the approaches we already use. Also slightly adjusted the indents and styles on the page to make it more accessible and easier to use:

  • Fixed indents in contributors grid
  • fixed rounding in contributor cards for focus state
  • changed headings color
  • removed new tab icon from content links
  • added padding for back button

@vercel
Copy link

vercel bot commented Feb 24, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
npmx.dev Ready Ready Preview, Comment Feb 25, 2026 9:01am
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
docs.npmx.dev Ignored Ignored Preview Feb 25, 2026 9:01am
npmx-lunaria Ignored Ignored Feb 25, 2026 9:01am

Request Review

@github-actions
Copy link

github-actions bot commented Feb 24, 2026

Lunaria Status Overview

🌕 This pull request will trigger status changes.

Learn more

By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.

You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

File Note
lunaria/files/en-GB.json Localization changed, will be marked as complete.
lunaria/files/en-US.json Source changed, localizations will be marked as outdated.
Warnings reference
Icon Description
🔄️ The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.

Comment on lines 3 to 12
import LogoVercel from '~/assets/logos/sponsors/vercel.svg'
import LogoVoidZero from '~/assets/logos/sponsors/void-zero.svg'
import LogoNuxt from '~/assets/logos/oss-partners/nuxt.svg'
import LogoOpenSourcePledge from '~/assets/logos/oss-partners/open-source-pledge.svg'
import LogoOxC from '~/assets/logos/oss-partners/oxc.svg'
import LogoRolldown from '~/assets/logos/oss-partners/rolldown.svg'
import LogoStorybook from '~/assets/logos/oss-partners/storybook.svg'
import LogoVite from '~/assets/logos/oss-partners/vite.svg'
import LogoVitest from '~/assets/logos/oss-partners/vitest.svg'
import LogoVue from '~/assets/logos/oss-partners/vue.svg'
Copy link
Member

Choose a reason for hiding this comment

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

we could probably just drop these in the public/ directory and reference them without importing them (importing them makes them part of the build, which is probably unnecessary)

Copy link
Member Author

Choose a reason for hiding this comment

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

In public they will be cached and here the question is whether we expect logos to change (like void zero changed for all its utilities) 🤔

Copy link
Member

@danielroe danielroe left a comment

Choose a reason for hiding this comment

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

looks great! ❤️

@danielroe danielroe added this pull request to the merge queue Feb 24, 2026
@alexdln alexdln removed this pull request from the merge queue due to a manual request Feb 24, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 24, 2026

📝 Walkthrough

Walkthrough

Adds Sponsors and OSS Partners sections to the about page: imports SPONSORS and OSS_PARTNERS logo data, adds LogoImg and LogoList components, and renders those lists with separators and theme-aware logo variants. Replaces several LinkBase usages with plain anchor elements and introduces a deprecated noNewTabIcon prop on Link/Base.vue to suppress the external-link icon. Minor visual change in CallToAction.vue (heading color class). Adds i18n entries and updates i18n schema for the new sections.

Possibly related PRs

Suggested reviewers

  • danielroe
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description check ✅ Passed The PR description is directly related to the changeset, clearly describing the addition of Sponsors and OSS Partners sections with accessibility improvements.
Linked Issues check ✅ Passed The PR successfully implements all coding requirements from #1623: adds Sponsors and OSS Partners sections with logo rendering, supports both light and dark theme variants, and includes accessibility improvements.
Out of Scope Changes check ✅ Passed All changes are scoped to implementing the Sponsors and OSS Partners sections with supporting accessibility improvements. No unrelated modifications detected in the changeset.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@alexdln
Copy link
Member Author

alexdln commented Feb 24, 2026

Sorry, I forgot about the light theme 🫠

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1


ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between c52d259 and e8d03c7.

⛔ Files ignored due to path filters (10)
  • app/assets/logos/oss-partners/nuxt.svg is excluded by !**/*.svg
  • app/assets/logos/oss-partners/open-source-pledge.svg is excluded by !**/*.svg
  • app/assets/logos/oss-partners/oxc.svg is excluded by !**/*.svg
  • app/assets/logos/oss-partners/rolldown.svg is excluded by !**/*.svg
  • app/assets/logos/oss-partners/storybook.svg is excluded by !**/*.svg
  • app/assets/logos/oss-partners/vite.svg is excluded by !**/*.svg
  • app/assets/logos/oss-partners/vitest.svg is excluded by !**/*.svg
  • app/assets/logos/oss-partners/vue.svg is excluded by !**/*.svg
  • app/assets/logos/sponsors/vercel.svg is excluded by !**/*.svg
  • app/assets/logos/sponsors/void-zero.svg is excluded by !**/*.svg
📒 Files selected for processing (7)
  • app/components/CallToAction.vue
  • app/components/Link/Base.vue
  • app/pages/about.vue
  • i18n/locales/en.json
  • i18n/schema.json
  • lunaria/files/en-GB.json
  • lunaria/files/en-US.json

@alexdln alexdln marked this pull request as draft February 24, 2026 22:51
@codecov
Copy link

codecov bot commented Feb 24, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ All tests successful. No failed tests found.

📢 Thoughts on this report? Let us know!

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

♻️ Duplicate comments (1)
app/pages/about.vue (1)

141-141: ⚠️ Potential issue | 🟡 Minor

Remove the per-button focus-visible utility class.

Line 141 adds focus-visible:outline-accent/70 on a <button>, which conflicts with the global focus-visible pattern and creates inconsistent focus styling.

Suggested fix
-            class="cursor-pointer inline-flex items-center gap-2 p-1.5 -mx-1.5 font-mono text-sm text-fg-muted hover:text-fg transition-colors duration-200 rounded focus-visible:outline-accent/70 shrink-0"
+            class="cursor-pointer inline-flex items-center gap-2 p-1.5 -mx-1.5 font-mono text-sm text-fg-muted hover:text-fg transition-colors duration-200 rounded shrink-0"

Based on learnings, in this project button/select focus-visible styling is handled globally in app/assets/main.css, and per-element utilities like focus-visible:outline-accent/70 should not be added.


ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e8d03c7 and deb9db9.

📒 Files selected for processing (1)
  • app/pages/about.vue

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ Duplicate comments (2)
app/pages/about.vue (1)

62-62: Already flagged: remove inline focus-visible:outline-accent/70 from the back button.

This duplicates prior feedback; the project’s global button focus-visible style should be used instead.

Based on learnings, in the npmx.dev project button/select focus-visible styling is defined globally in app/assets/main.css, and per-element utility focus styles should be avoided.

app/components/About/LogoList.vue (1)

24-24: ⚠️ Potential issue | 🟡 Minor

Reset list spacing in both logo <ul> elements.

list-none removes bullets only; padding/margins can still cause indentation in prose layouts.

Suggested fix
-  <ul class="flex items-center flex-wrap gap-4 md:gap-x-6 md:gap-y-4 list-none">
+  <ul class="flex items-center flex-wrap gap-4 md:gap-x-6 md:gap-y-4 list-none p-0 m-0">
...
-        <ul class="flex items-center justify-center h-full gap-0.5 list-none">
+        <ul class="flex items-center justify-center h-full gap-0.5 list-none p-0 m-0">

Also applies to: 49-49


ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3e2d478 and d69d11e.

⛔ Files ignored due to path filters (3)
  • app/assets/logos/oss-partners/open-source-pledge-light.svg is excluded by !**/*.svg
  • app/assets/logos/sponsors/vercel-light.svg is excluded by !**/*.svg
  • app/assets/logos/sponsors/void-zero-light.svg is excluded by !**/*.svg
📒 Files selected for processing (5)
  • app/assets/logos/oss-partners/index.ts
  • app/assets/logos/sponsors/index.ts
  • app/components/About/LogoImg.vue
  • app/components/About/LogoList.vue
  • app/pages/about.vue
✅ Files skipped from review due to trivial changes (1)
  • app/assets/logos/sponsors/index.ts

Comment on lines +2 to +9
const props = defineProps<{
src:
| string
| {
dark: string
light: string
}
}>()
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Add alt support to AboutLogoImg and bind it on every <img>.

Right now the rendered logo images have no alt, so linked logos do not expose a reliable accessible name.

Suggested fix
 <script setup lang="ts">
 const props = defineProps<{
   src:
     | string
     | {
         dark: string
         light: string
       }
+  alt: string
 }>()
 </script>
 <template>
   <div v-if="typeof src === 'string'">
-    <img :src="src" loading="lazy" height="36" class="w-auto block h-9" />
+    <img :src="src" :alt="alt" loading="lazy" height="36" class="w-auto block h-9" />
   </div>
   <div v-else-if="src.light === 'auto'">
     <img
       :src="src.dark"
+      :alt="alt"
       loading="lazy"
       height="36"
       class="w-auto block light:invert light:grayscale h-9"
     />
   </div>
   <div v-else>
-    <img :src="src.dark" loading="lazy" height="36" class="w-auto block light:hidden h-9" />
-    <img :src="src.light" loading="lazy" height="36" class="w-auto block hidden light:block h-9" />
+    <img :src="src.dark" :alt="alt" loading="lazy" height="36" class="w-auto block light:hidden h-9" />
+    <img :src="src.light" :alt="alt" loading="lazy" height="36" class="w-auto block hidden light:block h-9" />
   </div>
 </template>

Also applies to: 12-26

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.

OSS Partners and Sponsors on /about

2 participants