position:fixed pinned the popover to the viewport layer, so scrolling
the page could never reveal off-screen content. Revert to absolute
positioning (scrolls with the page) and dynamically compute max-height
based on available viewport space so the popover fits and scrolls
internally when content exceeds the available area.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Switch popover from position:absolute to position:fixed to avoid
scroll-offset math and simplify viewport clamping.
- Add max-height + overflow-y:auto so the popover scrolls internally
instead of overflowing the viewport.
- Remove the reposition call after picker opens — this was causing
the popover to flash and jump when the picker changed its height.
- Improve edge clamping: if neither above nor below fits, clamp to
viewport bottom rather than flipping unpredictably.
- Remove the CSS arrow (::before) which was mispositioned when the
popover appeared above the badge or near edges.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Popover: call positionPopover() after opening the picker so the
popover flips above the badge if it would clip the viewport bottom.
- Popup: debounce saveFromControls() calls during picker drag (200ms)
to avoid dozens of storage writes per gesture.
Co-authored-by: Cursor <cursoragent@cursor.com>
Without this, new subreddit entries would not persist their color
overrides because _dirtyModes was never set when picking via the
custom color picker.
Co-authored-by: Cursor <cursoragent@cursor.com>
Replace native color inputs with swatch divs wired to the shared
tabbed picker widget for global and per-subreddit color controls.
Co-authored-by: Cursor <cursoragent@cursor.com>
Address six gaps found during review:
- Fix subreddit name extraction bug (gear icon text in textContent)
- Prevent gear icon layout shift via absolute positioning
- Handle native color picker dialog in click-outside detection
- Make per-subreddit overrides mode-aware (light/dark)
- Replace badge hover opacity with filter: brightness
- Split popover logic into separate file
Co-authored-by: Cursor <cursoragent@cursor.com>
- Default subreddit badge background from transparent to opaque fill
(light: #fde8e0, dark: #3d2518) so page highlights don't bleed through
- Remove lingering "to" text node from tagline when subreddit is hidden
- Hide the <li> wrapping the comments link (not just the <a>) to
eliminate leftover whitespace in the flat-list
- Simplify popup: subreddit bg fields are now color pickers (no longer
need transparent text-input workaround)
Co-authored-by: Cursor <cursoragent@cursor.com>
Four tasks: extension skeleton, badge CSS, DOM manipulation, settings popup.
Each task has exact file paths, complete code, and verification steps.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Use div.thing.link selector to exclude comment nodes
- Fix shared module loading (manifest content_scripts array)
- Add FOUC mitigation via CSS-only manifest injection
- Switch to storage.local to avoid sync quota limits
- Add MutationObserver for RES dark mode toggle detection
- Use fallback chain for MutationObserver target container
- Clarify comment count text handling (zero = "0 comments")
- Simplify teardown to page reload on master toggle
- Expand test checklist to cover new behaviors
Co-authored-by: Cursor <cursoragent@cursor.com>