Skip to content

showcase: shared gradient layer + testimonials masonry fix#214

Closed
aryanmehrotra wants to merge 1 commit into
mainfrom
feat/showcase-gradient-and-testimonials-fix
Closed

showcase: shared gradient layer + testimonials masonry fix#214
aryanmehrotra wants to merge 1 commit into
mainfrom
feat/showcase-gradient-and-testimonials-fix

Conversation

@aryanmehrotra
Copy link
Copy Markdown
Member

Summary

  • New ShowcaseGradient component — three pointer-events-none cyan+indigo orbs distributed down the page, matching the vocabulary the Hero already uses. Drop inside any relative overflow-x-clip wrapper.
  • Wired into the framework's pitch surfaces only:
    • / — replaces the page's inline orb cluster
    • /why-gofr, /comparison/*, /migrate/* — via a new opt-in withGradient prop on MarketingPage
    • /showcase — composed directly into its custom layout
  • Reading-mode pages keep their calm canvas — /faq, /learn also use MarketingPage but don't pass withGradient. /docs/** is untouched.
  • Bug fix in Reviews.jsx: testimonials masonry was splitting tall cards across CSS-column boundaries on narrow viewports, rendering the two halves on top of each other. Added block break-inside-avoid w-full to each card and gap-x-6 between columns.

Test plan

  • npx next build succeeds (locally verified before commit).
  • All affected routes return 200 in dev (/, /why-gofr, /comparison, /comparison/gofr-vs-gin, /migrate, /migrate/from-gin, /showcase, /faq, /learn).
  • Visual check: gradient appears on the 4 pitch surfaces, absent on /faq and /learn.
  • Visual check: testimonial cards no longer overlap on tablet-width viewports (~700–1000px).

🤖 Generated with Claude Code

ShowcaseGradient is a small decorative orb layer (cyan + indigo,
matching the Hero's existing vocabulary). Drop it inside any
`relative overflow-x-clip` wrapper and three pointer-events-none
orbs distribute down the page at alternating sides.

Wired into the framework's pitch surfaces:
  - homepage (replaces the inline orb cluster)
  - /why-gofr, /comparison/*, /migrate/* via MarketingPage's new
    opt-in `withGradient` prop
  - /showcase (its custom layout doesn't use MarketingPage, so
    it composes ShowcaseGradient directly)

Reading-mode pages keep the calm canvas they had — /faq, /learn
also use MarketingPage but don't pass withGradient. /docs/** and
the rest of the site are untouched.

Also fixes the testimonials masonry on narrow viewports
(`Reviews.jsx`): added `block break-inside-avoid w-full` to each
card and `gap-x-6` between columns. Without break-inside-avoid,
CSS multi-column layout was splitting tall cards across the
column boundary, rendering the two halves on top of each other.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 5, 2026 18:19
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR introduces a reusable decorative gradient layer for marketing/showcase surfaces and updates the testimonials masonry styling to prevent card overlap on narrower viewports. It fits the site’s marketing-page architecture by making the gradient opt-in for SEO landing layouts while keeping calmer reference pages unchanged.

Changes:

  • Added a shared ShowcaseGradient component and wired it into the homepage, showcase page, and selected MarketingPage routes.
  • Extended MarketingPage with a withGradient prop so /why-gofr, /comparison/*, and /migrate/* can opt into the decorative layer.
  • Updated Reviews.jsx masonry card classes to avoid column splitting and add horizontal spacing.

Reviewed changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
src/components/ShowcaseGradient.jsx New shared decorative orb layer used by marketing/showcase pages.
src/components/Reviews.jsx Adjusts testimonial masonry/card classes to avoid split cards.
src/components/MarketingPage.jsx Adds opt-in gradient support for SEO/marketing page layouts.
src/components/HomePage.jsx Integrates the shared gradient into the homepage wrapper.
src/app/why-gofr/layout.jsx Enables gradient for /why-gofr.
src/app/showcase/page.jsx Adds the shared gradient to the showcase page layout.
src/app/migrate/layout.jsx Enables gradient for /migrate/*.
src/app/comparison/layout.jsx Enables gradient for /comparison/*.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +23 to +24
<div className="relative m-auto w-auto max-w-screen-2xl overflow-x-clip">
<ShowcaseGradient />
/>
<Image
aria-hidden="true"
className="pointer-events-none absolute -left-40 top-[80%] hidden select-none opacity-15 sm:block"
Comment on lines +17 to +20
// Why `unoptimized` is mandatory: the site builds with
// `output: 'export'`, which disables /_next/image. Without unoptimized,
// Next emits a /_next/image?url=... src that 404s in production and
// renders as a broken-image icon.
@aryanmehrotra
Copy link
Copy Markdown
Member Author

Superseded by #215 — all commits from this branch are stacked there as part of a single QA-bundle PR. Closing without deleting the branch.

@aryanmehrotra aryanmehrotra mentioned this pull request May 7, 2026
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.

2 participants