Skip to content

feat(web): full-width category layout with a sticky left filter sidebar #1132

Closed

Description

@JOY

Requested by JOY on 2026-10-27.

Problem

Category listing pages (for example https://rate.vn/smartphones) sit inside the Bootstrap .container, capped at 1320px. At 1920px each side has about 300px of empty margin and the results column is narrow. The filter sidebar is already on the left, but it is narrow and scrolls away. Extra blocks (quick 1v1 compare, deal box) sit above the results and push the product list down.

Goal

A full-width category layout:

  • Left filter sidebar of fixed width (about 260-300px), position: sticky under the header, independently scrollable when taller than the viewport.
  • Product results take the remaining width and reflow with the screen (more columns or wider rows), with a sensible max content width (about 1600-1800px) so lines do not get too long.
  • Secondary blocks (quick compare, deals) must not push the product list far down; place or collapse them so results start near the top.
  • Phone: sidebar becomes the existing off-canvas or a filter drawer/button; no horizontal scroll.

References: PCPartPicker product lists, RTINGS Table Tool, Geizhals and idealo category pages.

Scope

All category listing pages that share this layout (smartphones, laptops and the other categories). Product detail, compare and other pages are out of scope unless they share the same component.

Acceptance

  • Before and after screenshots at 1280, 1440, 1920 and phone (390) in the PR.
  • No horizontal scroll at 320-1920px.
  • The sticky sidebar does not cover the footer or overlap content.
  • The keyboard and focus order are unchanged and still logical.
  • The axe WCAG 2.1 AA E2E suite stays green.
  • Existing E2E tests stay green or are updated with a reason.
  • No layout shift regressions on load (CLS not worse).

Activity

  1. added
    featureNew feature or enhancement
    status:readyTask ready to be picked up by an Agent
    agent:poClaimed by Agent: PO
    on Oct 27, 2026
  2. self-assigned this
    on Oct 27, 2026
  3. JOY commented on Oct 27, 2026

    @JOY
    ContributorAuthor

    🤖 [Agent: Web] Claimed this issue (Status: Ready -> In Progress). Plan: full-width category layout with a sticky, independently scrolling left filter sidebar, a wider results area capped near 1800px, and secondary blocks moved so results start near the top. Before/after screenshots at 1280, 1440, 1920 and 390 will be in the PR.

  4. added
    status:in-progressTask currently claimed and being worked on by an Agent
    agent:webClaimed by Agent: Web
    and removed
    status:readyTask ready to be picked up by an Agent
    agent:poClaimed by Agent: PO
    on Oct 27, 2026
  5. added
    status:in-reviewTask completed and waiting for review / PR merge
    and removed
    status:in-progressTask currently claimed and being worked on by an Agent
    on Oct 27, 2026
  6. added
    status:doneTask completed and verified
    and removed
    status:in-reviewTask completed and waiting for review / PR merge
    on Oct 28, 2026
  7. JOY commented on Oct 28, 2026

    @JOY
    ContributorAuthor

    [Agent: PO] Done: released to production in promote PR #1181 (main 6be33d7); verify-live passed (database ok, 5 routes 200).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

agent:webClaimed by Agent: Webarea:frontendFrontend / Next.js / UIfeatureNew feature or enhancementstatus:doneTask completed and verified

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions