crucıble

Pricing

A full premium-dark pricing page: eyebrow + headline + subhead header with a real keyboard-operable monthly/annual toggle that live-updates every price, a three-tier plan-card row with one accent-ringed most-popular card and per-tier feature checklists and CTAs, a grouped feature-comparison table with check/dash cells, an FAQ accordion composed from Fold, and a closing CTA band — every string, tier, comparison row, and FAQ a prop, one cool-indigo accent knob.

motionpro

Installation

CLI

npx shadcn@latest add @crucible/pricing

Manual — install dependencies, then copy the source

npm install motion

Props

PropTypeDefaultDescription
eyebrowstring"Pricing"Small uppercase kicker above the headline.
headlineReact.ReactNode"Pricing that scales with you."Headline.
subheadReact.ReactNodeSupporting line under the headline.
currencystring"$"Currency symbol prefixed to every numeric price.
tiersPricingTier[]The three (or more) plan cards.
savingsLabelstring"Save 20%"Copy for the annual savings pill beside the toggle.
defaultPeriodPricingPeriod"monthly"Which cadence is selected on mount.
comparisonPricingComparisonGroup[]Feature comparison groups rendered in the table below the cards.
comparisonHeadingReact.ReactNode"Compare every plan"Heading above the comparison table.
faqsFoldItem[]FAQ question/answer pairs (rendered through the Fold accordion).
faqHeadingReact.ReactNode"Questions, answered"Heading above the FAQ accordion.
ctaHeadlineReact.ReactNodeClosing CTA-band headline.
ctaSubheadReact.ReactNodeClosing CTA-band supporting line.
ctaPrimaryPricingActionPrimary action in the closing CTA band.
ctaSecondaryPricingActionSecondary action in the closing CTA band.
accentstring"#818cf8" (cool indigo)Signature hue, any CSS color.
Also accepts all props of Omit<React.ComponentPropsWithoutRef<"main">, "children" | "title">they pass through to the underlying element.

Honors prefers-reduced-motion with a designed static fallback, and passes className through.