nextui.dev
Home
Docs
Saved
Pricing
Components37
  • Forms & inputs7
  • Cards13
  • Buttons, badges & avatars8
  • Feedback & display6
  • Effects3
Agents17
  • Chat inputNew
  • Task checklistNew
  • ReasoningNew
  • Tool callNew
  • Tool approvalNew
  • SourcesNew
  • Agent timelineNew
  • Artifact panelNew
  • Streaming messageNew
  • Conversation shellNew
  • Voice agentNew
  • Voice orbNew
  • Thinking ring
  • Thinking waveNew
  • Thinking sparkle
  • Thinking bot
  • Prompt deckNew
Blocks20
  • Agent chatNew
  • Pill heroNew
  • Grid hero
  • Moodboard generatorNew
  • Waitlist heroNew
  • Intro bannerNew
  • Creative home heroNew
  • Chat heroNew
  • App shelfNew
  • Usage card
  • Design resultsNew
  • Pricing tiers
  • Dashboard home
  • The shiftNew
  • Launch perksNew
  • Testimonials
  • Quote
  • Team
  • Leads tableNew
  • Sign in
Pages10
  • ASCII workspace$49
  • CRM overviewNew
  • Marketing dashboardNew
  • Developer portfolio$49
  • Particle landing$49
  • Particle story$49
  • Statement converter$49
  • AI photo studio$49
  • Group card launch$49
  • Month-end storyNew
Themes9
  • Default
  • Ember
  • Ocean
  • Forest
  • Grape
  • Rose
  • Amber
  • Clay
  • Brutal
Upgrade
nextui.dev

nextui components, blocks and themes you install with one command.

Product

  • Components
  • Blocks
  • Themes
  • Pricing

Resources

  • Docs
  • Roadmap
  • GitHub

Legal

  • License
  • Privacy
  • Terms
  • Refunds

nextUI

[ 200 OK ] · nextUI

© 2026 NEXTUI • All rights reserved.

Upgrade
BlocksPricing tiers
Copy promptCopy prompt

Customize

Fraction taken off the monthly price when billed annually

0.33

Symbol before the price

Text after the price

First toggle option

Second toggle option

Line above the featured plan

Heading above each feature list

Billing period on first render

JSX · copied with Copy prompt

<ThreeTierPricing />

Pricing tiers

Three plans with a monthly/annual toggle, usage chips and a framed recommended tier.

Installation

Set your access key from API keys as NEXTUI_TOKEN in .env.local and add the @nextui namespace below to components.json once. Then every item installs by name. Each install counts as a copy on a free account.

$pnpm dlx shadcn@latest add @nextui/pricing-tiers
1{
2 "registries": {
3 "@nextui": {
4 "url": "https://nextui.dev/r/{name}.json",
5 "headers": { "Authorization": "Bearer ${NEXTUI_TOKEN}" }
6 }
7 }
8}

Usage

1"use client";
2
3import { ThreeTierPricing } from "@/components/blocks/pricing-tiers";
4
5export function Pricing() {
6 return (
7 <ThreeTierPricing
8 annualDiscount={0.2}
9 plans={[
10 { name: "Hobby", body: "For side projects.", monthly: 0, usage: ["1 project", "1 seat"], features: ["Community support"], cta: "Start free", href: "/signup" },
11 { name: "Team", body: "For small teams.", monthly: 29, usage: ["10 projects", "5 seats"], features: ["Analytics", "SSO"], cta: "Start trial", featured: true },
12 { name: "Scale", body: "For larger orgs.", monthly: 89, usage: ["Unlimited", "25 seats"], features: ["Audit log", "SLA"], cta: "Contact sales", href: "/contact" },
13 ]}
14 onSelect={(plan, period) => console.log(plan.name, period)}
15 />
16 );
17}

API reference

Edit props live in the preview above, or see all 14 props
PropTypeDefaultDescription
plansPricingPlan[]Starter, Pro, BusinessPlans: name, body, monthly price, usage lines, features, cta, href, featured
annualDiscountnumber0.33Fraction taken off the monthly price when billed annually
currencystring"$"Symbol before the price
periodLabelstring"/month"Text after the price
monthlyLabelstring"Monthly"First toggle option
annualLabelstring"Annual"Second toggle option
discountLabelstring"33% off"Badge on the annual option; derived from the discount
recommendedLabelstring"Recommended for you"Line above the featured plan
includedLabelstring"What's included"Heading above each feature list
period"monthly" | "annual"–Controlled billing period
defaultPeriod"monthly" | "annual""monthly"Billing period on first render
onPeriodChange(period: BillingPeriod) => void–The toggle changed
onSelect(plan: PricingPlan, period: BillingPeriod) => void–A plan button was clicked
classNamestring–Extra classes on the section

Related

All blocks

Usage card

Design resultsNew

Sign in to see the code

Preview it freely. A free account copies code and prompts a few times a day.

Sign in