shadcn.io is not affiliated with official shadcn/ui
Payment Schedule Pricing Block for React
Tuition paid once or in 3, 6 or 12 installments: four chips pick the schedule and a calendar of twelve monthly cells fills with the dated payments and their amounts, over the total and the call to action.
Installation
Overview
Help buyers spread a big one-time price with this payment schedule section, shown for Northstar Bootcamp, whose tuition is $3,600. Four chips in the header row set the schedule: pay once, or 3, 6 or 12 payments, each showing its amount and what it totals (a Segment Group). Under them a calendar of twelve monthly cells fills with the dated payments: each paid cell is tinted, topped with a dark rule and shows its date and amount, and the months with no payment stay blank. Below the calendar, the total tuition rolls to its new value with Sliding Number, a line says what the plan fee comes to, and a Shine Button names the first payment and its date. Everything sits in one band ruled by Guides, with a + on each corner, under the page's top rule. On a phone the chips sit in a two-by-two grid under the sentence and the calendar runs in three columns. Built with Guides, Segment Group, Sliding Number, Shine Button and Tailwind CSS, with CSS transitions only. For bootcamps, courses, annual contracts and any big purchase sold in installments.
FAQ
How do I change the schedules, the tuition and the cohort?
Edit TUITION, SCHEDULES and COHORT at the top of the file. A schedule has its count of payments and the payment each costs. The total is count × payment and the plan fee is the total minus the tuition, so they can't disagree with the chips. COHORT is the first payment's date; later payments fall on the same day of each following month. SLOTS lists the twelve calendar cells, so add months there if a schedule runs longer than a year.
Where do the dates come from, and can they go stale?
They're worked out from COHORT, which you set for the cohort you are selling (the block ships with a January 2027 start). Nothing reads the visitor's clock, so the server and the browser always write the same dates, formatted with a fixed locale in UTC. When a cohort starts, change COHORT; if you sell on a rolling basis, compute the first payment's date on your server and pass it in.
Is the calendar accessible?
The chips are a radio group named "Number of payments": Tab reaches the chosen one and the arrow keys move and select. The calendar is an ordered list named "Payment dates" whose items are only the payments, each reading its date and amount; the blank months are marked aria-hidden and left out. A polite live region says the new schedule once when it changes ("6 payments of $620, $3,720 in total"), and the total itself isn't announced as it rolls.
How do I send the chosen schedule to enrolment?
The call to action is a real link. It's a ShineButton with render set to an a element and nativeButton={false}. Build its href from the chosen schedule, for example /enrol?payments=6, and create the subscription schedule on your server. Work the amounts out again there; never trust a price sent from the page.
How does it fit a phone?
The chips become a two-by-two grid under the sentence and the twelve cells run in three columns, four rows, so the call to action lands within the first screen and a half of an iPhone. The cells grow to four columns at sm, six at md and twelve at lg, always separated by one hairline. Every line that changes with the schedule keeps its room, so switching schedules never moves what's below.
Why show the plan fee instead of hiding it in the payments?
Buyers compare the installment total with the price they were quoted. Saying plainly that 12 payments of $315 come to $3,780, $180 over paying once, builds trust, and it keeps the first choice honest. If your plan adds no fee, set each payment to the tuition divided by the count, and change the "Includes a flat fee" line in the summary row, which assumes one.
Related
- %Pro
Committed Spend Discount Pricing
Billing switchesFour big commitment chips, $500 to $50k a month, and in the same row the discount each earns at display size, over every unit's committed price against its on-demand price, with the call to action beside the result.
- Pro
Annual Savings Pricing
Billing switchesThree 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
Prepaid Credits Pricing
Usage and creditsA top-up picker for prepaid credits: amount chips that show the bonus each earns, a field for any other amount, and the credits you get rolling to a display-size number over a paid-and-bonus bar.
- Pro
Credit Packs Pricing
Usage and creditsOne-time credit packs where the amounts lead: 500, 2,000, 10,000 and 50,000 credits at display size over growing coin stacks, each pack cheaper per credit, rows with a buy button on phones.
- Pro
Billing Toggle Pricing
Billing switchesThree 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.
- 123Pro
Stepper Wizard Pricing
Plan findersA three-question wizard in one ruled band, with numbered steps, the question beside its answer cards and Back and Next, that recommends a plan, then shows its price, features and a summary of the answers.