Skip to content
Block

Pricing Section

Three pricing tiers with an animated billing switch and prices that glide between periods.

Simple pricing that scales with you

Prices glide between billing periods instead of snapping, so the comparison never loses context.

Starter

/ month

For side projects and trying things out.

  • Up to 3 projects
  • Community support
  • Basic analytics
Start for free

Pro

Popular

/ month

For teams shipping to production.

  • Unlimited projects
  • Priority support
  • Advanced analytics
  • Custom domains
  • Team roles
Start free trial

Scale

/ month

For organizations with custom needs.

  • Everything in Pro
  • SSO and audit logs
  • Dedicated support
  • Custom contracts
Contact sales

Installation

The CLI installs the block with the shadcn button plus Animated Number and Blur Fade from this registry.

terminal
npx shadcn@latest add https://ui.thilina.dev/r/pricing-section.json

Usage

app/page.tsx
import { PricingSection } from "@/components/blocks/pricing-section";

export default function Page() {
  return <PricingSection />;
}

Tiers live in the TIERS array at the top of the file: name, monthly and yearly price, feature list, and a featured flag that highlights one card. When the billing period switches, prices glide to their new value instead of snapping, so the comparison keeps its context.

Accessibility

The billing switch is a real radio group (role="radiogroup" with aria-checked on each option), animated prices expose only their final value to screen readers, and the entrance stagger disappears under prefers-reduced-motion.

Command Palette

Search for a command to run...