Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Three Columns Pricing Block for React

The canonical three-column pricing section for a team knowledge base: Personal, Team and Company cells under a monthly and yearly switch, each outlined by hairlines that overshoot its corners, the recommended plan raised, one plan at a time on phones.

Framework
UI library

Preview

Preview width

Installation

Part of Pro
Pro unlocks the code and one-line install of every Pro button and text effect, plus the MCP for your AI editor.
Have Pro already? Sign in to open it.Opens here as soon as you're Pro.

Overview

Present the standard pricing layout with this three-column pricing section, shown for Wikiwell, a team knowledge base priced per user. A one-line header sits left of a Segment Group billing switch, over three cells of equal height, each drawn with hairlines that run a little past its corners: a free Personal plan, a Team plan raised on a card background with a soft shadow and an outline Best value badge, and a Company plan. Paid prices roll to their new amount with Sliding Number when the period changes, every cell has a Shine Button call to action, with Team's holding the one primary button, and the feature lists build on each other, with a few info buttons that open a Toggle Tooltip for the details. Below lg one plan shows at a time, picked from a second Segment Group with Team first, and its feature list is cut after five behind an "All 7 features" button. Built with Guides, Badge, Button, Segment Group, Sliding Number, Toggle Tooltip, Shine Button and Lucide icons, with CSS transitions only. For SaaS pricing pages, subscription products and any three-tier offer that should scan at a glance.

FAQ

How do I change the plans, prices and feature lists?

Edit the PLANS array at the top of the file. Each plan has its name, description, monthly price, yearly price (the monthly amount per user when billed yearly), a featureHeading such as "Everything in Personal, plus", features with an optional tooltip, the call to action's cta and href, an optional badge and popular. A plan whose prices are 0 shows Free and "Free forever" instead of a price. CURRENCY is the symbol written before every price. The billing state starts on "yearly"; start it at "monthly" to open on the higher prices.

How do I connect the plan buttons to checkout or sales?

Each call to action is a real link to its plan's href. It's a ShineButton with render set to an a element and nativeButton={false}. Point the paid plans at your checkout route with the billing period in the URL, for example /checkout?plan=team&billing=yearly, and Company's Contact sales at your sales form.

Are the info tooltips usable on touch screens and with a keyboard?

Yes. Each info icon is a real button named "More about" and the feature, and it opens a ToggleTooltip on click, tap, Enter or Space rather than on hover only, so it works on phones too. Escape or a click outside closes it. Keep the tooltip text supplementary: the feature itself is already written in the list.

How does it work on a phone?

Below lg a Plan switch (a radio group named "Plan", Team selected first) chooses which cell shows. The others are made invisible but keep their room, so nothing in them takes focus and switching plans moves nothing below. A feature list longer than five items is cut there, with a button ("All 7 features") that has aria-expanded and opens the rest. The call to action sits above the list, so it lands within the first screen and a half of an iPhone.

How does it read with a screen reader?

The billing switch and the Plan switch are radio groups: Tab reaches the selected option and the arrow keys change it. Plans are h3 headings under the section's h2, features are lists with decorative check icons, and each price says "per user per month" in visually hidden text. Every call to action names its plan, as in "Start 14-day trial, Team plan". Prices aren't a live region, so switching the period doesn't interrupt what's being read.

When should I use three columns instead of a comparison table?

Use three columns for two or three tiers whose features build on each other: each cell answers "what do I get" at a glance and the raised cell guides the eye to the recommended plan. Switch to a comparison table, such as Comparison Table Pricing, when you have four or more plans or long feature lists that buyers compare row by row.

  • Pro

    Billing Toggle Pricing

    Billing switches

    Three plan cards under a monthly and yearly switch that wears its saving in the header row, with prices that roll to their new amount and each plan a card in a card.

  • Pro

    Annual Savings Pricing

    Billing switches

    Three plans that show what yearly billing saves: each plan's head holds two bars, twelve monthly payments against one yearly payment, with the saving printed in the gap, under a monthly and yearly switch.

  • Pro

    Three agency plans in columns that share their hairlines, each headed by its client capacity as a huge numeral over a chip with its team seats, under a monthly and annual switch.

  • Pro

    Comparison Table Pricing

    Comparison tables

    Four plans compared feature by feature in one table whose hairlines meet the page rails, with a billing switch, a tinted popular column and, on a phone, a plan switch that keeps the feature column beside one plan.

  • Pro

    A free Personal plan beside the recommended Team plan as two cards in cards, with the monthly and annual switch in the header row and Team's price rolling to its annual amount.

  • Pro

    Three plan rows for an email API, each its own band with its price and call to action in view, opening in place to list its features, with a monthly and annual switch in the header row.