Docs

Pricing Cards

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

Discover

Our flat
Pricing

most popular
Monthly
Gives you the most freedom. Perfect if you want to try the membership out.
$25/yr.

pause or cancel anytime

What's included

  • Unlimited requests
  • Unlimited brands
  • 1 Bruno Talent (Designer, Developer...)
  • Shared Slack channel
  • Pause or cancel anytime
Quarterly
Our clients' favorite! For companies of all sizes, who know what they need.
$15/yr.

paid quarterly

What's included

  • Unlimited requests
  • Unlimited brands
  • 1 Bruno Talent (Designer, Developer...)
  • 1 Project Manager
  • Shared Slack channel
Yearly
The most cost-effective option. For a long-term relationship with us. Perfect for established businesses.
$9/yr.

paid annually

What's included

  • Unlimited requests
  • Unlimited brands
  • 1 Bruno Talent (Designer, Developer...)
  • 1 Project Manager
  • Shared Slack channel

Are you interested in a quoted project?

If your project doesn't fit in the above plans, or if you'd like to discuss before making up your mind, book a call with us.

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

import { PricingCards } from "@/registry/components/pricing-cards"
const plans = [
{
id: "basic",
name: "Basic",
description: "Perfect for getting started",
price: { monthly: 9, yearly: 90, currency: "$" },
features: [
{ text: "Up to 1,000 API calls", included: true },
{ text: "Basic support", included: true },
{ text: "Advanced analytics", included: false },
],
cta: { text: "Get Started" },
},
{
id: "pro",
name: "Pro",
description: "Best for growing businesses",
price: { monthly: 29, yearly: 290, currency: "$" },
features: [
{ text: "Up to 10,000 API calls", included: true },
{ text: "Priority support", included: true },
{ text: "Advanced analytics", included: true },
],
cta: { text: "Start Free Trial" },
popular: true,
},
]
export function Component() {
return (
<PricingCards
plans={plans}
onPlanSelect={(planId) => console.log("Selected:", planId)}
/>
)
}

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.

Discover

Our flat
Pricing

most popular
Monthly
Gives you the most freedom. Perfect if you want to try the membership out.
$25/yr.

pause or cancel anytime

What's included

  • Unlimited requests
  • Unlimited brands
  • 1 Bruno Talent (Designer, Developer...)
  • Shared Slack channel
  • Pause or cancel anytime
Quarterly
Our clients' favorite! For companies of all sizes, who know what they need.
$15/yr.

paid quarterly

What's included

  • Unlimited requests
  • Unlimited brands
  • 1 Bruno Talent (Designer, Developer...)
  • 1 Project Manager
  • Shared Slack channel
Yearly
The most cost-effective option. For a long-term relationship with us. Perfect for established businesses.
$9/yr.

paid annually

What's included

  • Unlimited requests
  • Unlimited brands
  • 1 Bruno Talent (Designer, Developer...)
  • 1 Project Manager
  • Shared Slack channel

Are you interested in a quoted project?

If your project doesn't fit in the above plans, or if you'd like to discuss before making up your mind, book a call with us.