Components
A comprehensive pricing section component that combines animated tabs and pricing cards. Originally built for Dub.co's pricing page.
Features
npx shadcn@latest add https://21st.dev/r/aymanch-03/pricing-sectionLoading preview...
import { PricingSection } from "@/components/blocks/pricing-section"
export const PAYMENT_FREQUENCIES = ["monthly", "yearly"]
export const TIERS = [
{
id: "individuals",
name: "Individuals",
price: {
monthly: "Free",
yearly: "Free",
},
description: "For your hobby projects",
features: [
"Free email alerts",
"3-minute checks",
"Automatic data enrichment",
"10 monitors",
"Up to 3 seats",
],
cta: "Get started",
},
{
id: "teams",
name: "Teams",
price: {
monthly: 90,
yearly: 75,
},
description: "Great for small businesses",
features: [
"Unlimited phone calls",
"30 second checks",
"Single-user account",
"20 monitors",
"Up to 6 seats",
],
cta: "Get started",
popular: true,
},
{
id: "organizations",
name: "Organizations",
price: {
monthly: 120,
yearly: 100,
},
description: "Great for large businesses",
features: [
"Unlimited phone calls",
"15 second checks",
"Single-user account",
"50 monitors",
"Up to 10 seats",
],
cta: "Get started",
},
{
id: "enterprise",
name: "Enterprise",
price: {
monthly: "Custom",
yearly: "Custom",
},
description: "For multiple teams",
features: [
"Everything in Organizations",
"Up to 5 team members",
"100 monitors",
"15 status pages",
"200+ integrations",
],
cta: "Contact Us",
highlighted: true,
},
]
export function PricingSectionDemo() {
return (
<div className="relative flex justify-center items-center w-full mt-20 scale-90">
<div className="absolute inset-0 -z-10">
<div className="h-full w-full bg-[linear-gradient(to_right,#4f4f4f2e_1px,transparent_1px),linear-gradient(to_bottom,#4f4f4f2e_1px,transparent_1px)] bg-[size:35px_35px] opacity-30 [mask-image:radial-gradient(ellipse_80%_50%_at_50%_0%,#000_70%,transparent_110%)]" />
</div>
<PricingSection
title="Simple Pricing"
subtitle="Choose the best plan for your needs"
frequencies={PAYMENT_FREQUENCIES}
tiers={TIERS}
/>
</div>
);
}