Skip to content

feat(web): complete visual overhaul - #3

Merged
Ammaar-Alam merged 10 commits into
mainfrom
feat/visual-overhaul
Sep 30, 2026
Merged

Ammaar-Alam merged 10 commits into
mainfrom
feat/visual-overhaul

Conversation

@Ammaar-Alam

@Ammaar-Alam Ammaar-Alam commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

(replaced vibecoded ai slop with better ai slop)

Summary

A full redesign of the TigerMap web app, plus new ways to explore campus: layer toggles, popular places, meal tabs, draggable mobile sheets, and recovery when data fails to load. The map stays central, search opens a place before asking for location, and every view works across desktop, tablet, phone portrait, and phone landscape.

Before and after

Before

tigermap-before.mp4

After

tigermap-after.mp4
Favicon before Favicon after
favicon-before favicon-after

New features

Exploring the map

  • Dining, Free food, and Clubs chips show or hide each live layer; Free food shows how many posts are active
  • Popular places panel with one-tap shortcuts to campus landmarks
  • Filter panel adds Select all alongside Clear all
  • Marker names appear on hover or keyboard focus, and the selected marker is highlighted
  • Reset button returns the map to campus

Search

  • ⌘K / Ctrl+K focuses search from anywhere
  • Clear message when no places match
  • Results are announced to screen readers as you move through them

Places, menus, and events

  • Dining menus open on the current meal, with tabs to switch meals
  • Escape closes any open panel or directions

Phone

  • Detail and directions sheets drag to expand, collapse, or dismiss; the handle also works from the keyboard
  • Expanding directions reveals the route steps

Reliability and accessibility

  • Retry for the map, campus places, and club events when they fail to load
  • A warning when live updates are unavailable, which clears once they recover
  • Focus moves into each panel and returns when it closes
  • Pinch zoom is enabled

Behavior changes

  • The map now opens with Dining, Free food, and Clubs shown instead of Restaurants
  • Screens narrower than 768px use bottom sheets; tablets between 700px and 767px previously used the side panel layout

Redesign

  • Warm, low-saturation campus basemap with smaller labels and noisy symbol layers hidden (utils/mapStyle.ts); sources, filters, and zoom visibility rules are unchanged
  • One marker style for places, dining, free food, and clubs (PlaceMarker); free food markers sit above their spot so posts at dining halls stay tappable
  • One shared DetailPanel for places, menus, free food, club events, and directions, with animated resizing and a single Directions action
  • Route framing follows each layout, including landscape phones where the panel sits on the right
  • Long titles are bounded so content and actions stay visible; club events show the full subject in the scrollable content
  • Search results stay above any open panel
  • New favicon, theme color, page description, and fonts (Bricolage Grotesque and Manrope via Google Fonts)

Development

  • TIGERMAP_API_PROXY points the Vite /api proxy at another backend, e.g. TIGERMAP_API_PROXY=https://map.tigerapps.org bun run --cwd apps/web dev to preview with live feeds; it defaults to the local server on port 3001
  • Shared JSON fetch and list parsing helpers (utils/api.ts)

Testing

  • bun run lint and bun run build
  • bun test apps/web/tests/mapStyle.test.ts validates the restyled style against the Mapbox style spec and checks that data and label visibility rules are preserved
  • Browser checks at 390×844, 640×390, 700–800px widths, and 1440×900:
    • selecting places, dining, free food, and clubs from markers, search, and popular places
    • directions with walking and cycling, and route framing in every layout
    • layer toggles, Select all and Clear all, Escape, and each retry path
  • apps/web/tests/mobileSheets.browser.js and apps/web/tests/panelResize.browser.js cover sheet gestures and animated resizing in an open panel

Follow-ups

  • The base map still loads from a former Princeton contractor's Mapbox account; migrate it to a TigerApps-owned style and data before that account is retired

(PR Automated by Codex)

Original user prompt: "Let's test the custom harness from my priv repo: use it to redesign tigermap, make it actually presentable instead of vibecoded slop"

TIGERMAP_API_PROXY points the Vite /api proxy at another backend (e.g. production feeds) and defaults to the local server on port 3001.
Adds the TigerMap favicon, theme color, description, and Bricolage Grotesque/Manrope fonts, and re-enables pinch zoom for accessibility.
polishMapStyle recolors fills, lines, and labels to the warm campus palette and hides noisy symbol layers while preserving sources, filters, and zoom visibility rules. Covered by a style-spec validation test.
- DetailPanel owns focus, resize animation, mobile sheet gestures, and the Directions footer for place, dining, free food, club, and directions views
- Map markers and panels share a single Selection type; CampusMap renders all markers through PlaceMarker
- New discovery panel, quick filters, and filter panel with select all and clear
- Shared JSON fetch and list parsing helpers in utils/api
- Browser checks for mobile sheet gestures and panel resizing
When Mapbox fails after the style loads, the mounted but transparent canvas covered the overlay and swallowed Retry clicks.
Short screens place the panel on the right, but the camera still reserved portrait sheet padding taller than the canvas, so fitBounds failed and left the route off-screen. Camera padding now follows each layout, with extra clearance above the portrait directions sheet.
Club events now show the club name in the header and the full subject in the scrollable content. Other panel titles clamp to three lines, or two on short screens, so content and actions stay visible.
- Switch to the bottom-sheet layout below 768px, since the tablet columns overlap until 752px and the panel covered search clear and filters
- Use range media queries so fractional widths from browser zoom never fall between the phone and tablet layouts
- Raise the search workspace while searching so results stay tappable above an open sheet
… warnings

- Free food markers sit above their spot and stack over other markers, so posts at dining halls or places no longer hide under a same-sized hit box
- A successful free food poll clears its earlier failure while one-time feed failures still show the warning
@Ammaar-Alam
Ammaar-Alam marked this pull request as ready for review September 30, 2026 19:46
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-30T19:49:14.502417Z f0fe870 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

Free food markers were always filled, which read the same as a selected marker. They now use the shared outlined style with a live dot, and fill only when selected.
@Ammaar-Alam
Ammaar-Alam merged commit 0cd2570 into main Sep 30, 2026
3 checks passed
@Ammaar-Alam
Ammaar-Alam deleted the feat/visual-overhaul branch September 30, 2026 21:54
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.

1 participant