Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

Split Panel Tier Benefits CTA Block for React

A reverse split call to action for a partner program: a referral dial in a hairline frame at the start, beside the tiers as ruled rows and a Shine Button that names your tier.

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

Show a partner program's tiers as something to turn with this reverse split dial section, between solid rails. At the start, a Circular Slider of referrals a quarter, from 0 to 45, sits in a hairline frame with + marks on its corners, with a ring of tier arcs around it and a tick where each tier begins, all in foreground tones. Dragging the dial or stepping it with the arrow keys moves the centre, which names the tier and shows its commission with Sliding Number. Past a solid divider that meets the top rule sit a Badge, a headline, a short paragraph, the four tiers as ruled rows with their referral ranges and commission (the row for your tier is bold with a dot) and the Shine Button, the only primary control, which names your tier. Every figure comes from one list of tiers, so the ticks, the arcs, the ranges and the commission can't disagree. The copy comes first in the DOM and on phones, so the button lands on the first screen; the dial follows. Built with Circular Slider, Sliding Number, Badge, Shine Button, Guides and Tailwind CSS, with CSS transitions only. For partner, affiliate and referral programs, loyalty levels and any pricing that depends on a number the visitor controls.

FAQ

How do I change the tiers, the commission and the range of the dial?

Edit the TIERS array at the top of the file: each tier has its name, the referrals a quarter it starts at (from) and its commission rate. The first tier must start at 0. The ticks on the dial, the arcs around it, the ranges in the list, the centre and the button all read that array. The dial turns a full circle over MAX_REFERRALS, which should be a number that divides 360 so a referral is a whole number of degrees; change it to 36 or 60 and everything follows. START is where it rests at first.

How do I connect the button to an application form?

The button is a real link: point its href at your application page and add the tier the visitor settled on, for example /partners/apply?tier=gold. It's a ShineButton with render set to an a element and nativeButton={false}. The tier is in the tier value the block already keeps.

How do I use the dial with a keyboard or a screen reader?

Tab to the dial, then the arrow keys turn it one referral at a time, Home goes to zero and End to the top. Its name reads the current state, as in "Referrals a quarter. 18 referrals a quarter: Gold tier, 25% commission." Once you stop turning it for a moment, one polite message says the new tier and commission; nothing is announced while you turn or when the page loads. The dial's own value is an angle, so the list beside it is the plain-text way to read every tier.

How does dragging the dial work?

Grab the knob and turn: the dial follows the pointer around the ring in whole referrals, and the centre updates as it goes. Grabbing the ring somewhere else turns the dial by how far the pointer moves from there, instead of jumping the knob to the pointer.

What changes with reduced motion?

The arcs change tone, the list's marker dot and the digits in the centre roll, and the knob eases. With reduced motion set, they all change at once.

Does it work right to left?

The text and the layout mirror, with the dial moving to the other side, but the dial itself doesn't: it's a circle that turns clockwise from the top in every writing direction, as a clock does, so it keeps its own left-to-right setting. Its percentages and ranges are set in their own boxes, so "25%" and "15 to 29" never reorder.

  • Pro

    A reverse split call to action for a team workspace: a membership card that tilts toward the pointer on a tinted panel flush to the rails, beside the Team plan's pitch and a Shine Button.

  • Pro

    A split call to action for a product analytics tool: the pitch, a payment-method pill and the Shine Button at the start, one plan card in a hairline frame at the end, between solid rails.

  • Pro

    A centred sponsorship call to action for an open-source project: a band of five amount cells on shared hairlines, a Shine Button that names the chosen monthly amount, a Custom cell that opens a number field in the same space, and a closing band that counts the sponsors.

  • Pro

    A reverse split CTA for an A/B testing tool: two variants as choice cards on a tinted panel flush to the rail, each with a page preview, a click-through ring and a lift badge, beside a Shine Button that follows the choice.

  • Pro

    Partner Program Pricing

    Sales and partners

    A three-tier partner program where the commission is the hero: each tier is a ruled row led by its percentage (10%, 20%, 30%) at display size, with its discounted seat price and perks, beside the pitch.

  • 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.