Skip to content

Line up plan card buttons on the Choose a plan page#1198

Merged
RhysSullivan merged 1 commit into
mainfrom
fix/billing-card-button-alignment
Jun 29, 2026
Merged

Line up plan card buttons on the Choose a plan page#1198
RhysSullivan merged 1 commit into
mainfrom
fix/billing-card-button-alignment

Conversation

@RhysSullivan

Copy link
Copy Markdown
Owner

What

On the Choose a plan billing page the three plan cards' call-to-action buttons sat on a ragged baseline: the Team card's button was about a line lower than Free's and Enterprise's.

Why

Only plans that offer a trial rendered a "14-day free trial, then $150 / month" line between the price and the button. That extra line pushed the trial card's button down while the others stayed put, so the row of buttons didn't line up.

Change

Remove the trial blurb line. Every card now has the same structure (price → button), so the buttons share a baseline. The trial is still surfaced: the action button itself reads Start free trial.

Single-file change to apps/cloud/src/routes/app/billing_.plans.tsx (also drops the now-unused trialLabel helper).

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jun 29, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
executor-marketing 843b690 Commit Preview URL

Branch Preview URL
Jun 29 2026, 12:22 AM

The Team card rendered an extra '14-day free trial, then $150 / month'
line between the price and the action button, which only trial plans
have. That pushed Team's button about a line lower than Free's and
Enterprise's, so the row of CTAs no longer lined up.

Remove the blurb so every card has the same structure and the buttons
share a baseline. The trial is still surfaced: the button itself reads
"Start free trial".
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jun 29, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
executor-cloud 843b690 Jun 29 2026, 12:24 AM

@RhysSullivan RhysSullivan force-pushed the fix/billing-card-button-alignment branch from 62dd436 to 843b690 Compare June 29, 2026 00:20
@RhysSullivan RhysSullivan merged commit 4600a21 into main Jun 29, 2026
12 of 14 checks passed
@RhysSullivan RhysSullivan deleted the fix/billing-card-button-alignment branch June 29, 2026 00:21
@greptile-apps

greptile-apps Bot commented Jun 29, 2026

Copy link
Copy Markdown

Greptile Summary

This PR removes the per-card trial blurb ("14-day free trial, then $150/month") that appeared between the price and the CTA button on the billing plans page. With the blurb gone, all three plan cards have identical structure (price → button), so their buttons share a visual baseline. The trial is still surfaced through the button label ("Start free trial") when a trial is available.

  • Deletes the trialLabel helper function and its JSX call site; freeTrial and trialOffered variables are retained and remain in use for the button label logic.
  • No functional change to trial eligibility or the attach() checkout flow — only the pre-click UI copy is affected.

Confidence Score: 5/5

Safe to merge — the change is additive layout cleanup with no modification to billing logic, state, or network calls.

The only code removed is a display-only paragraph and its dead helper function. The trial eligibility computation, button label derivation, and attach() checkout call are all untouched. No data flow, API behavior, or auth path is affected.

No files require special attention.

Important Files Changed

Filename Overview
apps/cloud/src/routes/app/billing_.plans.tsx Removes the trialLabel helper and the conditional trial blurb paragraph; remaining freeTrial/trialOffered variables are still actively used for the button label. Change is isolated to UI copy with no functional side-effects.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Plan card render] --> B{isCurrent && !isCanceling\nor isScheduled?}
    B -- Yes --> C[Static badge: Current plan / Scheduled]
    B -- No --> D{isEnterprise?}
    D -- Yes --> E[EnterpriseContactDialog]
    D -- No --> F{isCanceling?}
    F -- Yes --> G[Button: Resume]
    F -- No --> H[Compute label]
    H --> I{isCanceling?}
    I -- Yes --> J[label = Resume]
    I -- No --> K{trialOffered?}
    K -- Yes --> L[label = Start free trial]
    K -- No --> M[label = ACTION_LABELS lookup]
    L --> N[Button with computed label]
    J --> N
    M --> N
Loading
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
    A[Plan card render] --> B{isCurrent && !isCanceling\nor isScheduled?}
    B -- Yes --> C[Static badge: Current plan / Scheduled]
    B -- No --> D{isEnterprise?}
    D -- Yes --> E[EnterpriseContactDialog]
    D -- No --> F{isCanceling?}
    F -- Yes --> G[Button: Resume]
    F -- No --> H[Compute label]
    H --> I{isCanceling?}
    I -- Yes --> J[label = Resume]
    I -- No --> K{trialOffered?}
    K -- Yes --> L[label = Start free trial]
    K -- No --> M[label = ACTION_LABELS lookup]
    L --> N[Button with computed label]
    J --> N
    M --> N
Loading

Reviews (1): Last reviewed commit: "Line up plan card buttons by dropping th..." | Re-trigger Greptile

@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Cloudflare preview

Torn down — the PR is closed.

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