Scoop UI Refactor
Scope
- •Project root:
/home/bender/classwork/Thesis - •Frontend:
frontend/appandfrontend/components
Required outcomes
- •Preserve all existing features (view modes, filters, research, modals).
- •Increase density and reduce empty vertical space.
- •Make globe selection flow clear and usable.
- •Have grid view have snap scroll.
- •Keep feed snap-scroll while preserving global header visibility.
- •Remove emojis from UI, logs, and docs.
Workflow
- •Review primary surfaces
- •
frontend/app/page.tsx(home layout) - •
frontend/components/globe-view.tsxandfrontend/components/interactive-globe.tsx - •
frontend/app/search/page.tsx(research UI) - •
frontend/app/globals.css(theme tokens)
- •Home layout refactor
- •Compress the lead story into title + summary + action row.
- •Move big narrative blocks into a compact summary card.
- •Convert long "Contact" sections into short action rows.
- •Keep view mode controls and filters visible and separated.
- •Globe view UX
- •Add a clear country focus header.
- •Show source count and top sources for the selected country.
- •Keep a clear "reset" action visible.
- •Remove all country flag emojis and any emoji usage.
- •Research workspace
- •Use a top query bar.
- •Add Brief and Flow modes (Flow shows reasoning steps in sequence).
- •Move history or chat list into a sidebar.
- •Ensure research visuals are distinct from the main feed styling.
- •No-emoji enforcement
- •Use ripgrep to find emoji usage and remove it.
- •Replace emoji with icons or labels.
- •Apply to UI strings, logs, and docs.
- •Feed view snap-scroll (TikTok style)
- •Use full-viewport sections (
h-screen,snap-start) within a scroll container that hassnap-y snap-mandatory scroll-smooth. - •Keep the global header visible by only calling
event.preventDefault()on wheel/touch when a snap transition actually occurs; allow default scrolling when at the first/last item. - •Track
activeIndexand anisAnimatingguard; callscrollIntoViewfor the next/previous section and clear the guard after a short timeout. - •Support wheel, touch (deltaY threshold), and arrow keys; debounce small deltas to avoid accidental snaps.
- •Retain modals, bookmarks, likes, and favorites behavior; do not regress existing feed actions.
Checks
- •Confirm view modes still switch correctly.
- •Confirm modals and source filters still work.
- •Confirm research results still render with embedded sources.
- •Confirm feed snap-scroll still works on wheel, touch, and arrow keys, and that the header remains accessible at top-level scroll.
Recent context
- •Snap-scroll feed clips lower content if sections are fixed to
h-screenwithout accounting for surrounding layout; prefer a flex parent (flex-1 h-full min-h-0) and per-sectionh-full min-h-full snap-startinside the scroll container so each article uses the available viewport height without hiding titles. - •Lint currently fails with pre-existing warnings/errors across the frontend (unused vars, hook ordering, explicit
any); fixes are pending and not related to snap-scroll layout.