Staaarter

Annual Savings Badge

Annual-only pricing cards, each showing the discounted annual price next to a struck-through original price and a savings badge. No monthly/annual toggle here, this block is deliberately fixed to an annual-billing promotional layout.

By Staaarter Team
Pricing
Docs
Live preview

Docs

Installation

A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its button, badge dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/annual-savings-badge.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/pricing/pricing13.tsx instead.

Usage

The file also exports pricing13Demo, 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 { Pricing13, pricing13Demo } from "@/components/blocks/pricing/pricing13";

export default function Page() {
  return <Pricing13 {...pricing13Demo} />;
}

Props

PropTypeDefaultDescription
eyebrowstringundefinedSmall badge above the heading.
headingReactNodenoneMain section headline.
descriptionstringundefinedSupporting subtext below the heading.
billingNotestringundefinedSmall note below the description, e.g. billing cadence.
tiersPricing13Tier[]noneThe pricing cards to render (2-3 recommended).
classNamestringnoneExtra classes for the outer section element.

Types

type Pricing13Tier = {
  name: string;
  description?: string;
  price: string;
  originalPrice?: string;
  savingsLabel?: string;
  period?: string;
  features: string[];
  cta: { label: string; href?: string };
  highlighted?: boolean;
};

Behavior notes

  • This block is fully static; there is no monthly/annual toggle, it always displays the annual price data supplied in props.
  • The savings badge, original (struck-through) price, and highlighted-tier styling are each independently optional per tier.
  • All CTA buttons are inert placeholders (href defaults to "#" in the demo) with no real navigation or checkout wired up.