Pricing Table

Pricing tier cards

Marketing BlockPricing

Overview

A compound component with a billing period toggle (Switch) and a responsive grid of PricingTable.Tier cards. The displayed price updates automatically when the billing toggle changes.

Usage

import { PricingTable } from "@leanicon/web-builder-library";

Default (three tiers)

Three tier cards with a monthly/annual billing toggle. The "Pro" tier is highlighted as recommended.

MonthlyAnnual
Starter
$9/mo
Everything you need to get started.
  • 5 projects
  • 10 GB storage
  • Priority support
  • Custom domain
  • Advanced analytics
Most popular
Pro
$29/mo
For growing teams that need more power.
  • Unlimited projects
  • 100 GB storage
  • Priority support
  • Custom domain
  • Advanced analytics
Enterprise
$99/mo
For large organisations with advanced needs.
  • Unlimited projects
  • 1 TB storage
  • Priority support
  • Custom domain
  • Advanced analytics

Two tiers

MonthlyAnnual
Free
$0/mo
For side projects and experiments.
  • 3 projects
  • 1 GB storage
  • Community support
  • Custom domain
  • API access
Most popular
Pro
$29/mo
For growing teams that need more power.
  • Unlimited projects
  • 100 GB storage
  • Priority support
  • Custom domain
  • API access

No highlighted tier

All tiers equal — no "Most popular" badge or ring.

MonthlyAnnual
Starter
$9/mo
Everything you need to get started.
  • 5 projects
  • 10 GB storage
  • Priority support
Pro
$29/mo
For growing teams.
  • Unlimited projects
  • 100 GB storage
  • Priority support
Enterprise
$99/mo
For large organisations.
  • Unlimited projects
  • 1 TB storage
  • Priority support

Custom billing labels

Pay monthlyPay yearly (save 20%)
Starter
$9/mo
Everything you need to get started.
  • 5 projects
  • 10 GB storage
  • Priority support
Most popular
Pro
$29/mo
For growing teams.
  • Unlimited projects
  • 100 GB storage
  • Priority support
Enterprise
$99/mo
For large organisations.
  • Unlimited projects
  • 1 TB storage
  • Priority support

Dollar prefix

Use currency="$" with currencyPosition="prefix" to render the symbol before the price.

MonthlyAnnual
Starter
$9/mo
Everything you need to get started.
  • 5 projects
  • 10 GB storage
  • Priority support
Most popular
Pro
$29/mo
For growing teams.
  • Unlimited projects
  • 100 GB storage
  • Priority support
Enterprise
$99/mo
For large organisations.
  • Unlimited projects
  • 1 TB storage
  • Priority support

Euro suffix

Use currency="€" with currencyPosition="suffix" to render the symbol after the price.

MonthlyAnnual
Starter
9€/mo
Everything you need to get started.
  • 5 projects
  • 10 GB storage
  • Priority support
Most popular
Pro
29€/mo
For growing teams.
  • Unlimited projects
  • 100 GB storage
  • Priority support
Enterprise
99€/mo
For large organisations.
  • Unlimited projects
  • 1 TB storage
  • Priority support

Dark mode

MonthlyAnnual
Starter
$9/mo
Everything you need to get started.
  • 5 projects
  • 10 GB storage
  • Priority support
  • Custom domain
  • Advanced analytics
Most popular
Pro
$29/mo
For growing teams that need more power.
  • Unlimited projects
  • 100 GB storage
  • Priority support
  • Custom domain
  • Advanced analytics
Enterprise
$99/mo
For large organisations with advanced needs.
  • Unlimited projects
  • 1 TB storage
  • Priority support
  • Custom domain
  • Advanced analytics

Two tiers — dark mode

MonthlyAnnual
Free
$0/mo
For side projects and experiments.
  • 3 projects
  • 1 GB storage
  • Community support
  • Custom domain
  • API access
Most popular
Pro
$29/mo
For growing teams that need more power.
  • Unlimited projects
  • 100 GB storage
  • Priority support
  • Custom domain
  • API access

Sub-components

Sub-component

Description

PricingTable.Tier

Individual pricing tier card

Props

PricingTable

Prop

Type

Default

Description

children

React.ReactNode

—

PricingTable.Tier elements

billingLabels

BillingLabels

{ monthly: "Monthly", annual: "Annual" }

Toggle switch labels

animation

PricingTableAnimation?

—

Stagger animation for tier cards

colorScheme

"light" | "dark"

—

Force light or dark mode

className

string

—

Additional CSS classes on root

PricingTable.Tier

Prop

Type

Default

Description

name

string

—

Tier name (required)

monthlyPrice

string

—

Monthly price text (required)

annualPrice

string

—

Annual price text (required)

description

string

—

Tier description (required)

features

Feature[]

—

Feature list with included/excluded status

cta

CTAButton

—

Call-to-action button (required)

highlighted

boolean

false

Highlight with ring, shadow, and "Most popular"

currency

string?

—

Currency symbol (e.g. "$", "€")

currencyPosition

"prefix" | "suffix"

"prefix"

Symbol before or after the price

Feature

Field

Type

Description

label

string

Feature text

included

boolean

Check icon if true, X if false

Notes

  • The billing toggle uses a Switch component and stores state internally.
  • The highlighted tier gets ring-2 ring-primary, shadow-lg, scale-105, and a "Most popular" badge.
  • Prices update automatically when the billing toggle changes.
  • The grid is responsive: 1 column on mobile, 2 on tablet, 3 on desktop.
  • Dark mode: pass colorScheme="dark" or place inside a .dark ancestor.