Add "Explain This" page, UI primitives, Inter font, and assorted UI fixes

✅ merged · #15 · foolish-bandit/gary ← foolish-bandit/gary · opened 19d ago by foolish-bandit · merged 19d ago by foolish-bandit · self · +113-15 across 10 files · ↗ on GitHub

From the PR description

Motivation

  • Provide a lightweight "Explain This" flow to let users paste legal language and get a structured plain-English explanation.
  • Introduce small reusable UI primitives to avoid repetitive markup and support new pages and components.
  • Replace custom font variables with the Inter stack and load it via @fontsource for consistent typography.
  • Surface clearer UX states when the backend is not connected and add a dev auth bypass indicator.

Description

  • Adds a new page at src/app/(pages)/explain/page.tsx implementing the Explain This UI and prompt composition.
  • Adds multiple lightweight UI primitives under src/components/ui/ including alert, card, label, separator, skeleton, tabs, and textarea.
  • Updates globals.css to import Inter via @fontsource and switch font CSS variables to use the Inter stack, and adjusts .font-eb-garamond to reference the new --font-serif.
  • Removes next/font/google usage from src/app/layout.tsx and updates the <body> class to use the new font setup.
  • Adds @fontsource/inter to frontend/package.json dependencies.
  • Adds an Explain action to the assistant initial view and expands the action grid to five columns, plus shows upload errors inline and tracks upload error state.
  • Changes user-facing error text in draft and review flows to the backend-unavailable message: "This will be available once GaryOSS is connected to the backend."
  • Adds a dev auth bypass notice to login/page.tsx and signup/page.tsx when NEXT_PUBLIC_GARY_SKIP_AUTH is true.
  • Fixes a sidebar persistence bug by storing sidebarOpen using the desktop state variable and adjusts related layout logic.
  • Renames the sidebar assistant label to "Ask Gary" and wires up navigation for the new Explain page.

Testing

  • Ran npm run lint (eslint) on the frontend changes and there were no lint failures.
  • Ran npm run build (Next.js build) and the frontend build completed successfully.
  • Verified the new explain route renders and the new UI components mount without runtime errors in a local dev run.

Codex Task

Our analysis

Add Explain This flow and shadcn/ui primitives — read the full analysis →

Think the analysis missed something the PR description covers?

Commits in this PR (2)

SHA Subject Author Date
58ef971c Add shadcn/ui foundation components Zack Brenner 2026-05-07 ↗ GitHub
ad2c41de Merge branch 'main' into codex/create-pr-#10-frontend-polish-and-bugfix-x4l6hb Zack Brenner 2026-05-07 ↗ GitHub

Capture this PR into my fork

Download a Markdown prompt that tells Claude how to port every commit in this PR into your working tree. Run it via claude -p < capture-pull-15.md from inside the repo you want the changes in.

⬇ Download capture-pull-15.md