Loading...
Loading...
> A terminal-style pricing display component for checkout flows and landing pages. Features urgency messaging, discount display, and flexible CTA slot.
1import { PricingCard } from "@/components/ui/pricing-card"
OFFER ENDS SOON!
$299
$199
SAVE $100 Instantly!
ONE TIME PAYMENT
✓ NO SUBSCRIPTION
✓ UNLIMITED PROJECTS
✓ PRODUCTION-READY
30-day money-back guarantee. No questions asked.
1<PricingCard2 price="$199"3 regularPrice="$299"4 discountMessage="SAVE $100 Instantly!"5 urgencyMessage="OFFER ENDS SOON!"6 highlights={['NO SUBSCRIPTION', 'UNLIMITED PROJECTS', 'PRODUCTION-READY']}7 trustLine="30-day money-back guarantee. No questions asked."8>9 <Button className="...">10 GET ACCESS — $19911 <ArrowRight className="h-5 w-5" />12 </Button>13</PricingCard>
$49
PER MONTH
✓ CANCEL ANYTIME
✓ ALL FEATURES
1<PricingCard2 price="$49"3 title="MONTHLY ACCESS"4 priceSubtext="PER MONTH"5 highlights={['CANCEL ANYTIME', 'ALL FEATURES']}6>7 <Button className="...">8 SUBSCRIBE NOW9 </Button>10</PricingCard>
CUSTOM
TAILORED FOR YOUR TEAM
✓ VOLUME LICENSING
✓ PRIORITY SUPPORT
✓ CUSTOM INTEGRATIONS
Schedule a call with our enterprise team.
1<PricingCard2 price="CUSTOM"3 title="ENTERPRISE LICENSE"4 priceSubtext="TAILORED FOR YOUR TEAM"5 headerCode="0xEE"6 highlights={['VOLUME LICENSING', 'PRIORITY SUPPORT', 'CUSTOM INTEGRATIONS']}7 trustLine="Schedule a call with our enterprise team."8>9 <Button variant="outline" className="...">10 CONTACT SALES11 </Button>12</PricingCard>
$588
$399
2 MONTHS FREE!
BILLED YEARLY
✓ BEST VALUE
✓ ALL FEATURES
✓ PRIORITY SUPPORT
1<PricingCard2 price="$399"3 regularPrice="$588"4 discountMessage="2 MONTHS FREE!"5 title="ANNUAL PLAN"6 priceSubtext="BILLED YEARLY"7 highlights={['BEST VALUE', 'ALL FEATURES', 'PRIORITY SUPPORT']}8>9 <Button>START ANNUAL PLAN</Button>10</PricingCard>
| Prop | Type | Default | Description |
|---|---|---|---|
| price* | string | - | Main price to display (e.g., "$199" or "CUSTOM"). |
| regularPrice | string | - | Original price shown crossed out. |
| discountMessage | string | - | Discount callout text (e.g., "SAVE $100!"). |
| title | string | "ONE-TIME LIFETIME ACCESS" | Header title text. |
| urgencyMessage | string | - | Pulsing urgency text (e.g., "OFFER ENDS SOON!"). |
| priceSubtext | string | "ONE TIME PAYMENT" | Subtext below the price. |
| highlights | string[] | [] | Array of highlight badges. |
| trustLine | string | - | Trust/guarantee text at bottom. |
| headerCode | string | "0x41" | Terminal header code identifier. |
| children | React.ReactNode | - | CTA button or checkout component. |
| className | string | - | Additional CSS classes. |
Integrate with Stripe for payment processing:
1'use client';23import { PricingCard } from '@/components/ui/pricing-card';4import { Button } from '@/components/ui/button';5import { ArrowRight } from 'lucide-react';67export function CheckoutCard() {8 const handleCheckout = async () => {9 const res = await fetch('/api/stripe/checkout', {10 method: 'POST',11 headers: { 'Content-Type': 'application/json' },12 body: JSON.stringify({ priceId: 'price_xxx' }),13 });14 const { url } = await res.json();15 window.location.href = url;16 };1718 return (19 <PricingCard20 price="$199"21 regularPrice="$299"22 discountMessage="SAVE $100!"23 urgencyMessage="LAUNCH SPECIAL!"24 highlights={['LIFETIME ACCESS', 'ALL UPDATES']}25 trustLine="30-day money-back guarantee."26 >27 <Button onClick={handleCheckout} className="w-full">28 BUY NOW — $199 <ArrowRight className="ml-2 h-4 w-4" />29 </Button>30 </PricingCard>31 );32}
Using Polar.sh for payment:
1import { PricingCard } from '@/components/ui/pricing-card';2import { PolarCheckoutButton } from '@/components/polar/checkout-button';34export function PolarPricingCard() {5 return (6 <PricingCard7 price="$199"8 highlights={['NO SUBSCRIPTION', 'UNLIMITED PROJECTS']}9 >10 <PolarCheckoutButton className="w-full">11 GET ACCESS — $19912 </PolarCheckoutButton>13 </PricingCard>14 );15}
Link to Calendly or contact form:
1import { PricingCard } from '@/components/ui/pricing-card';2import { Button } from '@/components/ui/button';3import Link from 'next/link';45export function EnterpriseCard() {6 return (7 <PricingCard8 price="CUSTOM"9 title="ENTERPRISE"10 priceSubtext="VOLUME LICENSING"11 headerCode="0xEE"12 highlights={['DEDICATED SUPPORT', 'CUSTOM SLA', 'ONBOARDING']}13 trustLine="Talk to our team about your requirements."14 >15 <Link href="https://calendly.com/your-link" target="_blank">16 <Button variant="outline" className="w-full">17 SCHEDULE A CALL18 </Button>19 </Link>20 </PricingCard>21 );22}
Display multiple tiers together:
1<div className="grid gap-6 md:grid-cols-2 lg:grid-cols-3">2 {/* Starter */}3 <PricingCard4 price="$49"5 title="STARTER"6 priceSubtext="PER MONTH"7 highlights={['5 PROJECTS', 'BASIC SUPPORT']}8 >9 <Button variant="outline">SELECT STARTER</Button>10 </PricingCard>1112 {/* Pro - Featured */}13 <PricingCard14 price="$199"15 regularPrice="$299"16 title="PRO"17 urgencyMessage="MOST POPULAR"18 highlights={['UNLIMITED', 'PRIORITY SUPPORT']}19 >20 <Button>SELECT PRO</Button>21 </PricingCard>2223 {/* Enterprise */}24 <PricingCard25 price="CUSTOM"26 title="ENTERPRISE"27 priceSubtext="CONTACT SALES"28 highlights={['VOLUME PRICING', 'DEDICATED REP']}29 >30 <Button variant="outline">CONTACT SALES</Button>31 </PricingCard>32</div>