block / marketing
PREVIEW READYPricing Section
Three-tier pricing cards with a restrained featured state.
Designed as a complete stateful module
Responsive, keyboard-ready, theme-aware, and owned by your project after installation.
INSTALL / SOURCE REGISTRY
Add Pricing Section to your project
The command adds the component source and its DesignOS base dependency.
$
pnpm dlx shadcn@latest add https://designos.h4rithd.com/r/pricing-section.jsonregistry/default/blocks/pricing-section.tsx
import * as React from "react"
import { Check } from "lucide-react"
import "@/components/designos/designos.css"
export type PricePlan = { name: string; price: string; description: string; features: string[]; action: string; href: string; featured?: boolean }
export function PricingSection({ plans, title = "Choose your operating layer." }: { plans: PricePlan[]; title?: string }) {
return <section className="dos-section"><header className="dos-section__head"><span className="dos-eyebrow">Pricing</span><h2 className="dos-section__title">{title}</h2></header><div className="dos-pricing-grid">{plans.map((plan) => <article key={plan.name} className={`dos-price${plan.featured ? " dos-price--featured" : ""}`}><span className="dos-eyebrow">{plan.name}</span><div className="dos-price__amount">{plan.price}</div><p className="dos-card__description">{plan.description}</p><ul className="dos-price__list">{plan.features.map((feature) => <li key={feature}><Check aria-hidden="true" />{feature}</li>)}</ul><a href={plan.href} className={`dos-button${plan.featured ? "" : " dos-button--secondary"}`}>{plan.action}</a></article>)}</div></section>
}
Component contract
- Source-owned after installation
- Dark and light theme variables
- Keyboard and visible-focus behavior
- Reduced-motion fallback
- Responsive from 320px upward
- IBM Plex Sans + JetBrains Mono hierarchy