Refresh Maple pricing page design - #601
Conversation
📝 WalkthroughWalkthroughUpdates pricing plan feature icon styling to maple-success/maple-error classes in pricingConfig.tsx, and refactors pricing.tsx's page layout, introducing hero/FAQ/skeleton subcomponents, restyled loading/error states, payment banners, promotion banner, pricing cards, price display, and CTA/bottom controls. ChangesPricing page and config restyle
Estimated code review effort: 3 (Moderate) | ~25 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Deploying maple with
|
| Latest commit: |
136b293
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://056984ef.maple-ca8.pages.dev |
| Branch Preview URL: | https://codex-maple-pricing-design-m.maple-ca8.pages.dev |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
frontend/src/routes/pricing.tsx (1)
855-859: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueMinor: use
cn()for consistency with other dynamic classNames.This is the only dynamic className built with a template literal instead of
cn(...), which is used elsewhere in this same file for conditional classes (e.g. lines 930-937, 1085-1089).♻️ Optional refactor
- <div - className={`mx-auto grid w-full max-w-7xl grid-cols-1 ${gridColumns} gap-5 px-4 pt-6 sm:px-6 lg:px-8`} - > + <div + className={cn( + "mx-auto grid w-full max-w-7xl grid-cols-1 gap-5 px-4 pt-6 sm:px-6 lg:px-8", + gridColumns + )} + >🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@frontend/src/routes/pricing.tsx` around lines 855 - 859, The dynamic className in the pricing route is built with a template literal instead of the shared cn() helper, unlike the other conditional className usages in this file. Update the JSX in the relevant pricing layout block to use cn() for composing the static classes with gridColumns so the pattern stays consistent with the other dynamic className expressions in pricing.tsx.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@frontend/src/routes/pricing.tsx`:
- Around line 726-730: The pricing loading skeleton and the loaded grid switch
to different column counts at different breakpoints, causing a layout shift
between the placeholder and real content. Update the skeleton grid in the
pricing route so its responsive column classes match the same breakpoint logic
used by the loaded plans grid via gridColumns in the pricing page, keeping the
4-column switch aligned at lg instead of md. Verify the responsive classes
around FullPageMain and the pricing plans container use the same behavior for
all viewport sizes.
---
Nitpick comments:
In `@frontend/src/routes/pricing.tsx`:
- Around line 855-859: The dynamic className in the pricing route is built with
a template literal instead of the shared cn() helper, unlike the other
conditional className usages in this file. Update the JSX in the relevant
pricing layout block to use cn() for composing the static classes with
gridColumns so the pattern stays consistent with the other dynamic className
expressions in pricing.tsx.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 9b38841a-c170-45e9-89b1-e2cf75b936a9
📒 Files selected for processing (2)
frontend/src/config/pricingConfig.tsxfrontend/src/routes/pricing.tsx
| <FullPageMain className={pricingPageClassName}> | ||
| <PricingReturnButton isLoggedIn={isLoggedIn} onClick={() => navigate({ to: "/" })} /> | ||
| <PricingHero /> | ||
|
|
||
| <div className="pt-8 w-full max-w-7xl mx-auto grid grid-cols-1 md:grid-cols-4 gap-4 md:gap-4 lg:gap-6 px-4 sm:px-6 lg:px-8"> | ||
| <div className="mx-auto grid w-full max-w-7xl grid-cols-1 gap-5 px-4 pt-6 sm:px-6 md:grid-cols-4 lg:px-8"> |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Skeleton and real grid switch to 4 columns at different breakpoints.
Loading skeleton uses md:grid-cols-4 (line 730), but the actual pricing grid uses gridColumns from filteredPlans.length === 4 ? "lg:grid-cols-4" : "lg:grid-cols-3" (line 858) — switching at lg, not md. Between 768px and 1024px viewport widths, the skeleton will render 4 columns while the loaded content collapses to 1 column, causing a visible layout shift when data arrives.
🔧 Proposed fix: align skeleton breakpoint with real grid
- <div className="mx-auto grid w-full max-w-7xl grid-cols-1 gap-5 px-4 pt-6 sm:px-6 md:grid-cols-4 lg:px-8">
+ <div className="mx-auto grid w-full max-w-7xl grid-cols-1 gap-5 px-4 pt-6 sm:px-6 lg:grid-cols-4 lg:px-8">Also applies to: 858-858
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@frontend/src/routes/pricing.tsx` around lines 726 - 730, The pricing loading
skeleton and the loaded grid switch to different column counts at different
breakpoints, causing a layout shift between the placeholder and real content.
Update the skeleton grid in the pricing route so its responsive column classes
match the same breakpoint logic used by the loaded plans grid via gridColumns in
the pricing page, keeping the 4-column switch aligned at lg instead of md.
Verify the responsive classes around FullPageMain and the pricing plans
container use the same behavior for all viewport sizes.
Summary
Homewhen signed out andChatwhen signed inValidation
http://127.0.0.1:35432/pricingin Chrome using Computer Usenix develop -c bash -c 'cd frontend && bunx prettier --check src/routes/pricing.tsx src/config/pricingConfig.tsx && git diff --check'\n-nix develop -c just lint(passes with 13 existing warnings outside this change)\n-nix develop -c just buildSummary by CodeRabbit
UI Improvements
Bug Fixes