Skip to content
GitHub ↗

Commerce / React + CSS

Pricing card

A billing toggle updates a crisp pricing summary and its next action.

Live preview
StudioFor small teams
$32/ month

$32 billed monthly

  • Shared projects
  • Component collections
  • Team feedback
Illustrative pricing · no checkout

Make it yours

Use to compare billing choices with an explicit total. The example pricing is illustrative, not TDP pricing. Connect onChoose to a real checkout only after validating prices server-side.

  1. Use a React project with CSS Modules support, such as Next.js or Vite.
  2. Save the JSX as PricingCard.jsx and the CSS as PricingCard.module.css in the same folder.
  3. Import PricingCard and connect its props to your application. Controlled components need parent state and change handlers.

No third-party component or animation package is required. Use the theme controls to adjust accent, corners, spacing, and type. Copy the Theme CSS into your stylesheet and wrap your components in <div className="tdp-components">. The theme applies to every component inside that wrapper. TDP defaults work without a theme file.

Props

PropTypeUse
namestringPlan label.
monthlynumberMonthly billed price in USD.
annualMonthlynumberMonthly equivalent for an annual plan.
onChoosefunctionReceives the selected plan and billing amount.

Accessibility & behavior

Annual billing is a named switch. The yearly total stays visible; the button does not imply a completed purchase. Price movement respects reduced motion.

Visible focus styles and reduced-motion support are included. Check labels, contrast, keyboard behavior, and screen-reader output again after adapting the component to your product.

Keep building