Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Featured Plan Pricing Block for React

One plan in the spotlight: an oversized card under a monochrome cone of light with the price as the largest type on the page, a monthly and yearly switch, and a short pitch beside it.

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

Put one plan on stage with this featured plan section. The card is the biggest thing on the page: a Frame holds a raised panel with the plan's name, an outline Badge, a Segment Group monthly and yearly switch and a price set in the largest type of the section, which rolls to its new amount with Sliding Number and states what a month costs on the yearly plan and how much that saves. Its full-width Shine Button is the only primary control. A soft cone of light in foreground tones falls on the card from above, and the pitch narrows to a headline and three ruled points beside it. On a phone the card comes straight after the headline and the nine features fold behind an "All 9 features" button. Built with Frame, Badge, Button, Segment Group, Sliding Number, Shine Button, Guides and Lucide icons, with CSS transitions only. For consumer apps with one paid plan, and for any page where one offer should be the only thing to look at.

FAQ

How do I change the price, the features and the pitch?

Edit the constants at the top of the file. PLAN holds the name, the monthly price, the yearly price (the whole year, billed once) and the call to action's cta and href. FEATURES is the checklist and PITCH the three points beside the card. The "$4.00 a month" and "save 33%" line is worked out from the two prices, so it follows when you change them. CURRENCY is the symbol.

How is the spotlight made, and can I change it?

It's one decorative layer behind the grid: a conic gradient whose apex sits above the card, drawn in foreground at 14% and faded out with a mask, so it reads as light in a dark theme and as a soft shade in a light one. It has no colour of its own and is hidden below lg, where the card fills the width. Change the percentage to dim or strengthen it, or delete the layer: the card keeps its ring, shadow and tinted shell, so it still stands out without it.

How do I send the billing period to checkout?

The call to action is a real link to PLAN.href. Add the period to it, for example /checkout?billing=yearly from the switch's value, and let your server pick your payment provider's monthly or yearly price. The link is render={<a href="#" />} on ShineButton, with nativeButton={false}: change its href.

Does the card move when I switch between monthly and yearly?

No. Both billing lines share one grid cell, the hidden one kept invisible and aria-hidden, so the longer line sets the height. The price itself rolls digit by digit; under reduced motion it changes in place. Only the visible line is exposed to a screen reader, and the price's amount sits in visually hidden text with "per month" or "per year" rather than in a live region, so switching doesn't interrupt anyone.

How does it adapt to a phone?

The three parts stack in the order headline, card, pitch: below lg the grid is one column in that source order, and from lg a grid-template-areas layout puts the headline top left, the pitch bottom left and the card across both rows on the right. On a phone the first five features show and the rest wait behind the "All 9 features" button (aria-expanded); from md all nine are visible.

  • Pro

    One flat price for the whole company, set as a typographic band: the price at display size, the meters it never charges for struck through beside it, one call to action, and four cells of what's included.

  • Pro

    The quietest single plan: one card in a card with a launch price beside the struck-out regular price, one call to action and six included features, under a short centred header.

  • Pro

    One price over a wall of everything it includes: 36 features as ticked chips in six ruled groups, with the price and one call to action in the header row and nothing gated or extra to buy.

  • Pro

    Popular Choice Pricing

    Proof and guarantees

    What customers chose: a full-width segmented bar sized by the share of teams that picked each plan (18, 64 and 18 percent), where each segment is a tab that opens its plan, with its price, call to action and features, right under the bar.

  • 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

    A product-led split: a mock of the app built from our own components with numbered callouts on it, matching a 'what you get' list, beside the one plan as a card in a card with a monthly and yearly switch.