Skip to content

feat(drawer): grouped-card reskin for drawers and popup menus - #2992

Open
ElMagnea wants to merge 5 commits into
mainfrom
feat/drawer-revamp
Open

feat(drawer): grouped-card reskin for drawers and popup menus#2992
ElMagnea wants to merge 5 commits into
mainfrom
feat/drawer-revamp

Conversation

@ElMagnea

@ElMagnea ElMagnea commented Jul 23, 2026

Copy link
Copy Markdown
Collaborator

Visuals

Screenshot 2026-07-23 at 11 50 40 Screenshot 2026-07-23 at 11 50 52 Screenshot 2026-07-23 at 11 55 52 Screenshot 2026-07-23 at 11 56 15 Screenshot 2026-07-23 at 11 57 04

What & why

The drawers and popup menus were visually dated — filled "pill" rows with gaps, no shared surface, inconsistent chrome. This reskins them into a single grouped card language (elevated surface, flush hairline-divided rows, subtle hover/press, eyebrow titles) applied consistently across the app.

The reusable primitive

Every menu now routes through one of two components instead of hand-rolling its own list:

  • DropdownGroup — grouped card that flattens child DropdownItems (filled pills → flush divided rows). Containers pass items as opaque snippets, so the flatten is done via scoped overrides in one place.
  • OptionList / OptionListItem — the same card as first-class components (icon · title · optional subtitle · trailing slot), used where items aren't DropdownItems.

Coverage

Surface Treatment
Card "···" / recommendation / action menus (mobile drawer + desktop portal) — PopupMenu grouped card
Profile overflow, streaming-service, subscription menus grouped card
Summary "···" menu (mobile drawer + desktop slider) grouped card
Manage Lists grouped card (bookmark stays trailing)
Track… (mark-as-watched) grouped card
Watch-until-here mode picker grouped card, active row shows a ✓
Sort drawer grouped card via OptionList + two-line subtitles

Audited every component with 2+ DropdownItems — no ungrouped menu containers remain.

Also in here

  • Shared Drawer: eyebrow title as the default (titleStyle="prominent" opt-out for content-name titles like show/episode names, auto-forced when a drilldown title is set); refined drag handle; more handle-to-title spacing.
  • Desktop dropdowns no longer scroll/clip — always show every option.
  • Opaque card surface so floating menus don't turn transparent over artwork.
  • Light-theme contrast pass: distinct near-white surface + defining border (new --color-option-list-border) so cards don't read as white/transparent.
  • New tokens in both themes: --color-drawer-drag-handle, --color-option-list-background / -border / -separator / -highlight.
  • 4 new i18n subtitle keys for the up-next sort options.

Verification

deno fmt clean · svelte-check 0 errors / 0 warnings · vitest 2414 passed / 7 skipped.

Screenshots

To be added.

🤖 Generated with Claude Code

@ElMagnea ElMagnea added this to the Reloaded milestone Jul 23, 2026
@ElMagnea ElMagnea self-assigned this Jul 23, 2026
@ElMagnea
ElMagnea requested a review from seferturan July 23, 2026 10:06
@trakt-bot
trakt-bot Bot enabled auto-merge (rebase) July 23, 2026 10:06
@ElMagnea
ElMagnea force-pushed the feat/drawer-revamp branch from 2076b04 to 328f172 Compare July 23, 2026 10:32
@vladjerca

Copy link
Copy Markdown
Contributor

@ElMagnea can we also reorder actions on recommendations for example?

Not have to "why this?" Next to "ignore"

Please do this on a separate PR 🙏

@Marius-TV
Marius-TV force-pushed the main branch 3 times, most recently from d6ed106 to 637bdc2 Compare August 2, 2026 05:08
seferturan pushed a commit that referenced this pull request Aug 5, 2026
Move "View recommendation sources" to the start of the action menu so users can first understand why a recommendation appears, followed by the main actions (watchlist, watched, list), and the destructive "Hide recommendation" action at the end.

Addresses feedback from PR #2992 about action ordering clarity.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
trakt-bot Bot pushed a commit that referenced this pull request Aug 5, 2026
Move "View recommendation sources" to the start of the action menu so users can first understand why a recommendation appears, followed by the main actions (watchlist, watched, list), and the destructive "Hide recommendation" action at the end.

Addresses feedback from PR #2992 about action ordering clarity.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@ElMagnea
ElMagnea force-pushed the feat/drawer-revamp branch from 328f172 to c76c259 Compare August 5, 2026 16:04
@deepsource-io

deepsource-io Bot commented Aug 5, 2026

Copy link
Copy Markdown

DeepSource Code Review

We reviewed changes in 4c8dac5...c557d4d on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Coverage  

Code Review Summary

Analyzer Status Updated (UTC) Details
JavaScript Aug 18, 2026 5:52p.m. Review ↗
Code coverage Aug 18, 2026 5:52p.m. Review ↗

Code Coverage Summary

Language Line Coverage (Overall)
Aggregate
69.2%
Javascript
69.2%

➟ Additional coverage metrics may have been reported. See full coverage report ↗


Important

AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.

@seferturan
seferturan force-pushed the feat/drawer-revamp branch 2 times, most recently from 30e8fa7 to 3202a3c Compare August 18, 2026 17:50
ElMagnea and others added 5 commits August 18, 2026 19:51
Wider bar is easier to grab. Colour and hit area stay as they were.
Adds DropdownGroup, which flattens the DropdownItems inside it into one
elevated card with hairline-divided rows. Items resolve their layout and
surface through configuration tokens, so the group sets those on the list
instead of overriding items from the outside.

Adopts it in the action menus: popup menus on mobile, manage lists, track,
watch until here, and the summary actions.
Each sort option carries an optional description, rendered as a subtitle in
the sort drawer, so the difference between smart, release date and remaining
is readable without guessing.
The restyling rule assumes reachable props; Snippet children have none. Points
at the fallback-carrying custom property instead of a :global() override.
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.

3 participants