Note: This project is still in development and has not been publicly released. Coming soon.
Docs
Pricing Cards
Pricing Cards

A comprehensive pricing display component with billing toggles, feature comparisons, and contact options for SaaS and subscription services.

0 views
0 downloads
Loading...

Overview

The Pricing Cards component streamlines subscription plan presentation with clear feature comparisons and pricing options, making it essential for converting visitors into customers. It supports monthly/yearly billing toggles, popular plan highlighting, and contact cards for enterprise inquiries, reducing decision friction and improving conversion rates. Perfect for SaaS landing pages, subscription services, and any business with tiered pricing models.

Installation

pnpm dlx shadcn@latest add https://deltacomponents.dev/r/pricing-cards.json

Usage

1import { PricingCards } from "@/registry/components/pricing-cards"
2
3const plans = [
4 {
5 id: "basic",
6 name: "Basic",
7 description: "Perfect for getting started",
8 price: { monthly: 9, yearly: 90, currency: "$" },
9 features: [
10 { text: "Up to 1,000 API calls", included: true },
11 { text: "Basic support", included: true },
12 { text: "Advanced analytics", included: false },
13 ],
14 cta: { text: "Get Started" },
15 },
16 {
17 id: "pro",
18 name: "Pro",
19 description: "Best for growing businesses",
20 price: { monthly: 29, yearly: 290, currency: "$" },
21 features: [
22 { text: "Up to 10,000 API calls", included: true },
23 { text: "Priority support", included: true },
24 { text: "Advanced analytics", included: true },
25 ],
26 cta: { text: "Start Free Trial" },
27 popular: true,
28 },
29]
30
31export function Component() {
32 return (
33 <PricingCards
34 plans={plans}
35 onPlanSelect={(planId) => console.log("Selected:", planId)}
36 />
37 )
38}

API Reference

Props

PricingCards

PropTypeDefaultDescription
plansPricingPlan[]-Array of pricing plans to display (required)
defaultBillingCycle"monthly" | "yearly""yearly"Default billing cycle selection
showBillingTogglebooleantrueWhether to show monthly/yearly toggle
yearlyDiscountnumber20Discount percentage for yearly billing
onPlanSelect(planId: string) => voidundefinedCallback when a plan is selected
contactCardContactCardundefinedOptional contact card for enterprise plans
classNamestring""Additional CSS classes

PricingPlan

PropTypeDefaultDescription
idstring-Unique identifier for the plan (required)
namestring-Plan name (required)
descriptionstringundefinedBrief plan description
price{ monthly: number, yearly: number, currency: string }undefinedPricing information
customPrice{ label: string, sublabel?: string }undefinedCustom pricing display (e.g., "Contact Us")
featuresPricingFeature[]-List of plan features (required)
cta{ text: string, variant?: string }-Call-to-action button configuration (required)
popularbooleanfalseWhether this is the popular/recommended plan
badgestringundefinedOptional badge text (e.g., "Most Popular")
billingNotestringundefinedAdditional billing information

PricingFeature

PropTypeDefaultDescription
textstring-Feature description (required)
includedboolean-Whether feature is included in plan (required)

Examples

Complete Pricing Layout

A full pricing section with multiple plans, billing toggle, and contact option.

Loading...