Billing Base Fee Breakdown
A base fee breakdown block for billing settings and pre-checkout summary screens. Lists the fixed price for a plan alongside each line item it covers, such as platform access, included seats, support level, and infrastructure, so a customer can see what they're actually paying for before usage-based charges are added on top.
Docs
Installation
A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its dependencies and any missing npm packages, and installs them straight into your project.
npx shadcn add https://staaarter.com/r/billing-base-fee-breakdown.jsonPrefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/billing/billing26.tsx instead.
Usage
The file also exports billing26Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.
import { Billing26, billing26Demo } from "@/components/blocks/billing/billing26"; export default function Page() { return <Billing26 {...billing26Demo} />; }
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| heading | string | "What's included in your base fee" | Heading in the card header. |
| description | string | none | Optional supporting line under the heading. |
| planName | string | none | Optional plan name shown under the heading. |
| baseFee | string | none | The base fee amount, as a pre-formatted string (for example "$79"). Also reused in the total row. |
| billingPeriod | "monthly" | "annual" | "monthly" | Controls the /mo or /yr suffix next to the fee. |
| lineItems | FeeLineItem[] | none | The items the base fee covers, rendered in the order given. |
| className | string | none | Extra classes for the outer container. |
Types
interface FeeLineItem { label: string; /** Shown on the right, e.g. "Included", "$0.00", "5 seats". */ value: string; description?: string; }
Behavior notes
- The component is a plain server-rendered display, there's no toggle or state, lineItems and baseFee are rendered exactly as passed.
- value on each line item is a free-form string rather than a number, so you can show "Included", "$0.00", or a quantity like "5 seats" depending on what makes sense for that line.
- The total row at the bottom always echoes baseFee and billingPeriod rather than summing the line items, since most SaaS pricing intentionally shows individual items as value rather than itemized cost.
- Long line item descriptions wrap normally under the label instead of truncating, so keep them to a sentence if you want every row the same height.
Frequently asked questions
More Billing Blocks
View all →Billing Invoice List
Invoice history table with status badges, formatted amounts, and a per-row download link, built with shadcn/ui and Tailwind CSS.
Billing Failed Payment Alert
High-contrast failed-payment alert with a message, a retry button, and an optional update-payment-method button, built with shadcn/ui and Tailwind CSS.
Billing Credit Balance
Compact credit balance card with a large total, an optional purchased-versus-promotional breakdown, a low-balance notice, and a top-up button.
Billing Payment Methods
A saved payment method list for React and Next.js with brand icons, a default badge, near-expiry warnings, and remove/set-default actions per row.
Billing Add Card
A card entry form for React and Next.js with auto-formatted fields, internal brand detection, and per-field validation feedback built with shadcn/ui and Tailwind CSS.
Billing Coupon Code
An inline promo code input for React and Next.js with a simulated loading state, an applied summary showing the discount amount, and an invalid-code message.