Description
This is a UI/UX issue. Most users filter by exactly one category, yet they must open the FiltersSidebar to do so. Surface category selection as a horizontally scrollable pill bar above the results grid, mirroring ALL_CATEGORIES from FiltersSidebar.tsx, with an "All" pill on the left.
Requirements and Context
- Reference:
src/pages/MarketplacePage.tsx, src/components/FiltersSidebar.tsx
- Pills toggle the same
selectedCategories Set as the sidebar
- Active pill uses
aria-pressed="true" and a distinct token-backed background
- Pill bar must overflow-scroll with visible scrollbar on hover for desktop
- Must be secure, tested, and documented
- Should be efficient and easy to review
Suggested Execution
- Fork the repo and create a branch
git checkout -b feature/category-pill-bar
- Implement changes
src/components/CategoryPills.tsx — accepts categories + selected set + toggle
src/pages/MarketplacePage.tsx — render above results
src/index.css — .pill-bar, .pill-bar__item--active
- Test and commit
- Toggle pills and confirm sidebar checkboxes stay in sync
- Verify scroll snap on a 360px viewport
Example commit message
feat: inline category pill bar on MarketplacePage
Acceptance Criteria
Guidelines
- Maintain 44x44 minimum target on mobile
- Use design tokens for all colors and radii
- Clear documentation and inline comments
- Timeframe: 96 hours
Description
This is a UI/UX issue. Most users filter by exactly one category, yet they must open the FiltersSidebar to do so. Surface category selection as a horizontally scrollable pill bar above the results grid, mirroring
ALL_CATEGORIESfromFiltersSidebar.tsx, with an "All" pill on the left.Requirements and Context
src/pages/MarketplacePage.tsx,src/components/FiltersSidebar.tsxselectedCategoriesSet as the sidebararia-pressed="true"and a distinct token-backed backgroundSuggested Execution
src/components/CategoryPills.tsx— accepts categories + selected set + togglesrc/pages/MarketplacePage.tsx— render above resultssrc/index.css—.pill-bar,.pill-bar__item--activeExample commit message
Acceptance Criteria
aria-pressedand tokenized colorGuidelines