Skip to content

Polish UI and accessibility: search icon, result count, brand nav, a11y fixes - #733

Open
ParasxAgarwal wants to merge 4 commits into
firstcontributions:mainfrom
ParasxAgarwal:polish-ui-a11y
Open

Polish UI and accessibility: search icon, result count, brand nav, a11y fixes#733
ParasxAgarwal wants to merge 4 commits into
firstcontributions:mainfrom
ParasxAgarwal:polish-ui-a11y

Conversation

@ParasxAgarwal

Copy link
Copy Markdown

Summary

This PR makes several small, focused improvements to the web app UI:

🐛 Bug fixes

  • Fix duplicate CSS display property on .Card-Real-Link (had both block and flex — the latter overrides the former, but the duplicate is dead code)
  • Fix broken aria-labelledby on the filter <select> — it referenced #tag-selector-container which is a <div> with no label text, so the label was effectively empty. Replaced with aria-label.

♿ Accessibility

  • Meaningful alt text on project logos: changed from generic "the framework or language that the project is build upon" to "{name} logo" so screen readers announce the actual project name

✨ UX improvements

  • Search icon inside the search input (magnifying glass SVG) — visual affordance that users expect on search fields
  • Live result count — shows "Showing X of Y projects" when filtering, or "N projects" when viewing all. Displays a "No projects found" message when filters return empty results.
  • Site wordmark in the navbar — adds "First Contributions" brand text + favicon on the left side, with social links on the right. Collapses to icon-only on mobile.

Files changed

File Changes
src/components/Navbar.astro Added brand wordmark, restructured layout to left/right split
src/components/ProjectCard.astro Fixed duplicate CSS, meaningful alt text
src/components/ProjectList.astro Search icon, fixed aria, result count, no-results state

All changes are backward-compatible and maintain the existing dark theme aesthetic.

- Fix duplicate CSS display property on Card-Real-Link (both block and flex)
- Replace generic alt text on project logos with meaningful '{name} logo'
- Fix broken aria-labelledby on filter select (pointed to non-label div)
- Add search icon inside the search input for better UX affordance
- Add live result count showing 'X of Y projects' or total count
- Add 'no results' message when search/filter returns empty
- Add site wordmark and logo to navbar for brand identity
- Point ImgTouch card imageSrc at the new transparent app icon now hosted
  in the imgtouch repo (public/logo.png), replacing the GitHub avatar URL.
- Replace the CSS multi-column masonry (columns: 3) with CSS Grid
  (grid-template-columns: repeat(3, 1fr)). The columns layout
  mis-computed the container height so the SocialShare footer slid up
  under the last cards, and clipped tall cards via overflow:hidden which
  hid their 'Go to Project' button text. Grid sizes each card to its
  content and the container to its rows, fixing both. This also matches
  the existing code comment that already claimed grid was in use.
- Add a 2-column tablet breakpoint (<=980px); keep 1-column on mobile.
- Drop the now-redundant margin-bottom on .Card-Container (grid gap
  handles vertical spacing).
Revert .astro/* cache, the auto-generated pnpm-workspace.yaml
(allowBuilds: false, which would break CI builds), and the package.json
pnpm block that were only needed to coax a local pnpm install. The PR
now contains only the UI/source changes.
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.

2 participants