Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Column Chart Picker Pricing Block for React

Four backup plans drawn as columns of a storage chart, to scale: choosing a column shows its plan's price, price per terabyte, features and call to action beside the chart.

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

Turn a plan lineup into a picture of scale with this column chart pricing section, shown here for Vaultline Backup. The left cell of one ruled band is the chart: four columns for 200 GB, 2 TB, 5 TB and 12 TB, drawn to scale against gridlines every 4 TB, each with its capacity above it and its name below. The columns are a Segment Group: choosing one fills it solid, and the right cell cross-fades to that plan's name, tagline and features while the price rolls to its amount with Sliding Number and the price per terabyte updates under it. The columns grow in on load with a slight overshoot, in CSS only. The header is a compact row, so the chart and the one primary Shine Button both sit on the first screen of a laptop, and on a phone the chart scales down above the plan. The band sits on the page's drafting lines, drawn by Guides: rails at the edges of the page column that continue into the blocks above and below, a rule along the top with a + on each crossing, and + marks on the band's corners. Built with Guides, Segment Group, Badge, Sliding Number, Shine Button and Lucide icons. For backup, storage and infrastructure pricing, where how much you get is the story.

FAQ

How do I change the plans and what the columns measure?

Edit the PLANS array. Each plan has its name, tagline, monthly price, capacity (the number its column is drawn from, here in GB), the capacityLabel written above the column, its features, the call to action's cta and href, and popular for the Most popular badge. The tallest plan fills the chart and the others are drawn in proportion; GRIDLINES lists the values that get a line, in the same unit. To chart seats, requests or anything else, change capacity, the labels, the heading "Storage included" and the range beside it, and the price-per-terabyte line.

Why is the smallest plan's column so short?

Because it's drawn to scale: 200 GB is under 2% of 12 TB, so a true column is a sliver. Each column keeps at least 3% of the chart's height so the smallest plan stays visible and easy to tap, and its exact capacity is written above it. The price per terabyte under the price makes the same point in numbers: the 200 GB plan costs $14.95 a terabyte and the 12 TB plan $3.33. If your tiers span so many orders of magnitude that the picture matters more than the proportion, change heightOf and say so on the chart.

Is the column picker accessible?

The columns are a radio group named Plan: Tab reaches the chosen plan, and the arrow keys move between plans and choose them. Each radio's name is the plan and its figures, as in "Library, 5 TB, $19.99 per month", so the chart doesn't need to be seen; the capacity labels and gridlines are hidden from screen readers so nothing is read twice. The other plans' details are hidden (invisible), not just transparent, so only the chosen plan is read, and the price is read as an amount rather than digit by digit.

Why doesn't the page jump when I pick another plan?

The plan cell stacks every plan's name, tagline and features in the same grid cell and shows only the chosen one, so it's always as tall as the longest plan and nothing below it moves. The price uses tabular digits, and the columns never change height after they grow in: choosing a plan only changes colours and text. Under reduced motion the columns appear at full height and the text swaps without a fade.

How do I send the chosen plan to checkout?

The call to action follows the chosen plan: its label and href come from that plan. It's a ShineButton with render set to an a element and nativeButton={false}. Point each plan's href at your checkout route with the plan in the query. To open on another plan, change the starting value of the selected plan (library).

When should I use a column chart picker instead of plan cards?

Use it when one number, such as storage, compute or seats, separates the plans and its growth is the selling point: the columns show the jump from one tier to the next at a glance. Plan cards side by side are better when buyers compare many features at once, since the chart shows one plan's details at a time.

  • Pro

    Video hosting plans plotted as bubbles by monthly price and cost per hour of viewing, sized by storage: each bubble is a radio button, and the cell beside the chart shows the chosen plan.

  • Pro

    Headroom Bars Pricing

    Usage and credits

    One card of capacity bars for an uptime monitor: each grows from a Free limit to Pro's, with a chip counting how many times more Pro gives, and the upgrade button at the card's top right.

  • Pro

    Storage Plans Pricing

    Charts and figures

    Three archival storage plans as cells of one ruled band, each led by an oversized capacity figure with restore time and free restores under it, prices that roll on a monthly and annual switch.

  • Pro

    A needs checklist for picking a plan: tick what you need and the cheapest plan that covers every need lights up with its price, while each need says which plan it starts at.

  • Pro

    Step Up Pricing

    Charts and figures

    An upgrade path drawn as a staircase: four tiers as steps rising along the line, each as tall as its price, with name, price and button on its tread and what it adds in its riser.

  • Pro

    Per-seat pricing that falls across four team-size brackets, drawn as a descending bar chart beside compact rows with the saving on each bracket and a call to action per row.