Web & UI pack
Claude Skill

Pricing Page Builder

Generates a pricing page: 3-tier cards, comparison table, FAQ, monthly/annual toggle, popular plan highlight.

What it does

Produces a pricing page in HTML+Tailwind: 3-tier card layout with a highlighted recommended plan, monthly/annual toggle with savings indicator, full feature comparison table, FAQ, and final CTA. Honest about what each tier includes.

When to use

  • You have pricing decided and need the page built
  • Existing pricing page is unclear and conversions are low
  • Adding a new tier or restructuring pricing

When not to use

  • You haven't decided pricing yet — pricing strategy first, page second
  • Single-tier pricing — this is overkill, embed pricing in the landing page
  • Highly negotiated enterprise pricing only — show "Contact us" with calendar link

Install

Download the .zip, then unzip into your Claude skills folder.

mkdir -p ~/.claude/skills
unzip ~/Downloads/pricing-page-builder.zip -d ~/.claude/skills/

# Restart Claude Code session.
# Skill is now available — Claude will use it when relevant.

SKILL.md

SKILL.md
---
name: pricing-page-builder
description: Use when generating a pricing page with tiers, toggle, comparison table, and FAQ. Triggers on "pricing page", "build pricing", "tier comparison page".
---

# Pricing Page Builder

Pricing pages are conversion-critical. Most fail because they're either deceptive (cheap headline price hides usage charges), confusing (12 plans), or evasive ("Contact sales" for $100/mo SMB tools). Be direct.

## Required inputs

1. **Tiers** — 2-4 plans (3 is the sweet spot). For each: name, monthly price, annual price (or % savings), 5-8 included features, target user persona.
2. **Recommended plan** — which tier you want most users on (highlight it)
3. **Cycle toggle** — monthly + annual (default annual selected if it saves money)
4. **Feature comparison table** — 8-15 rows of feature × tier with check / dash / "Unlimited" / number
5. **Add-ons or usage pricing** — anything beyond the base tier
6. **FAQ** — 5-8 questions buyers actually ask (refunds, plan changes, taxes, seat-based or feature-based?, free trial, custom plans)

If your "Pro" tier doesn't have a clear ICP, push back. Tiers without personas confuse buyers.

## Output format

Single HTML file or React component, Tailwind styling. Mobile-first.

## Layout structure

1. **Header** (`text-center`) — H1: "Pricing", sub: positioning sentence ("Start free. Pay as you grow.")
2. **Toggle** — monthly / annual segmented control. Annual shows "Save 20%" badge.
3. **Tier cards** — `grid md:grid-cols-3 gap-6` (or 4 cols if 4 tiers)
4. **Feature comparison table** — full breakdown. Sticky header on long tables.
5. **Logos / social proof** — "Trusted by..." strip
6. **FAQ** — `<details>` accordion
7. **Final CTA** — "Still not sure? Talk to us" with calendar link

## Tier card pattern

```
<div class="rounded-2xl border bg-white p-8 [&[data-popular=true]]:ring-2 [&[data-popular=true]]:ring-indigo-600">
  <header>
    <h3 class="text-lg font-semibold text-gray-900">Pro</h3>
    <p class="mt-1 text-sm text-gray-500">For growing teams</p>
  </header>
  <p class="mt-6">
    <span class="text-5xl font-semibold tracking-tight text-gray-900 tabular-nums">$29</span>
    <span class="text-base text-gray-500">/mo</span>
  </p>
  <p class="text-sm text-gray-500">Billed annually. $35/mo billed monthly.</p>
  <a href="/signup?plan=pro" class="mt-8 block rounded-lg bg-indigo-600 px-4 py-3 text-center text-sm font-medium text-white hover:bg-indigo-700">
    Start free trial
  </a>
  <ul class="mt-8 space-y-3 text-sm text-gray-700">
    <li class="flex gap-2"><CheckIcon /> Unlimited projects</li>
    <li class="flex gap-2"><CheckIcon /> 10 team members</li>
    ...
  </ul>
</div>
```

## Highlighting the recommended plan

- `ring-2 ring-indigo-600` on the card
- Optional: `scale-105` on desktop only (`md:scale-105`)
- Badge at top: "Most popular" or "Recommended"
- DON'T also make it the cheapest — recommend the tier you actually want them on

## Monthly / annual toggle

- Segmented control with two pills, ARIA: `role="tablist"` or `role="radiogroup"`
- Default to annual if it saves money (anchoring effect)
- Show savings: "Save 20%" or "$58 saved/year" — actual numbers convert better than %
- Update prices in place; don't navigate

## Comparison table

- Sticky header at `top-14` (under main nav)
- Group rows by category (`<tr><th colspan="N">Collaboration</th></tr>`)
- Cells: ✓ for "included", "—" for "not included", number/quota where applicable
- "Unlimited" in plain text — don't symbol it
- Mobile: convert to per-tier sections (each tier shows its features as a list)

## Enterprise / custom tier

- "Contact sales" instead of a price IF the deal is genuinely custom
- Even then, show a starting point: "Custom plans starting at $X/yr"
- CTA: "Book a call" with a calendar widget, not "Submit form, we'll get back to you"

## FAQ — the questions buyers actually ask

Avoid softballs. Address:
- Can I switch plans later?
- What's included in the free trial?
- Do you charge per user or per workspace?
- Are there setup fees / overage fees / hidden fees?
- What if I exceed my limits?
- Do you offer refunds?
- Is the price in USD? With tax?
- Discounts for non-profits / startups / annual prepay?

## Accessibility

- Toggle: `role="radiogroup"` with `<input type="radio">` underneath, label associated
- Each tier card is a `<section aria-labelledby="tier-pro">` with the tier name as the heading
- Comparison table: `<caption class="sr-only">Pricing tier feature comparison</caption>`
- Check / dash icons: `aria-label="included"` or `aria-label="not included"` (don't rely on shape alone)
- Color: green check + red dash isn't enough; use shape too

## Anti-patterns

- **Cheapest plan in the middle, recommended**: erodes trust. Recommend the right tier; price the cheap one elsewhere.
- **Hidden usage costs**: "$0/mo" tier with "$0.50/request after 100" buried in fine print. Be upfront.
- **5+ tiers**: nobody reads them. Cap at 4. If you genuinely have many SKUs, build a configurator.
- **Toggle that hides annual savings**: anchor on annual; show monthly equivalent below.
- **"Contact sales" for sub-$100/mo plans**: friction without justification.
- **Table with "Standard / Pro / Enterprise" and feature rows that are all checks**: useless. Differentiate.
- **No "Most popular" highlighted**: leaves the choice to the user. Help them.

## Output

Return the pricing page (HTML/React) + comparison table + FAQ section. Top comment lists:
- Tiers shown
- Toggle behavior (default cycle, savings %)
- Highlighted plan
- A11y checks (toggle semantics, table caption, icon labels)

Example prompts

Once installed, try these prompts in Claude:

  • Build a pricing page: Free, Pro $29/mo, Business $99/mo, Enterprise (contact). Annual saves 20%. Feature table with 12 rows, 6 FAQs.
  • Pricing page for a usage-based API: Free 10k req/mo, Pro $50 + $0.001/req, Enterprise. Annotate quotas clearly.