Skip to main content
Clever Ops

Salon Price List

A full salon price list set like a printed tariff document, serif category heads, whisper hairline rows of service, duration and price, and junior/senior stylist columns in tabular figures.

Preview & code

Loading Salon Price List preview

Installation

pnpm dlx shadcn@latest add @cleverui/salon-price-list

Requires the @cleverui registry in your components.json, a one-off, two-line setup.

Usage

tsx
import { SalonPriceList } from '@/components/blocks/salon-price-list'
Exampletsx
import { SalonPriceList } from '@/components/blocks/salon-price-list'

export default function SalonPriceListDemo() {
  return (
    <SalonPriceList
      eyebrow="Services"
      heading="Price list"
      levels={['Junior stylist', 'Senior stylist']}
      note="All colour services include a consultation, toner and blow-dry."
      sections={[
        {
          title: 'Cut & finish',
          items: [
            {
              name: 'Restyle cut',
              duration: '60 min',
              prices: ['$95', '$140'],
            },
            {
              name: 'Trim & blow-dry',
              duration: '45 min',
              prices: ['$75', '$110'],
            },
            {
              name: 'Fringe tidy',
              duration: '15 min',
              prices: ['$28'],
            },
            {
              name: 'Blow-dry',
              duration: '30 min',
              prices: ['$55', '$75'],
            },
          ],
        },
        {
          title: 'Colour',
          items: [
            {
              name: 'Full head colour',
              duration: '90 min',
              prices: ['$165', '$210'],
            },
            {
              name: 'Root retouch',
              duration: '60 min',
              prices: ['$115', '$145'],
            },
            {
              name: 'Balayage',
              duration: '150 min',
              prices: ['$240', '$320'],
            },
            {
              name: 'Toner gloss',
              duration: '30 min',
              prices: ['$65', '$85'],
            },
          ],
        },
        {
          title: 'Treatments',
          items: [
            {
              name: 'Olaplex bond rebuild',
              duration: '20 min',
              prices: ['$45'],
            },
            {
              name: 'Scalp ritual',
              duration: '25 min',
              prices: ['$55', '$70'],
            },
            {
              name: 'Bridal trial',
              duration: '90 min',
              prices: ['$180'],
            },
          ],
        },
      ]}
    />
  )
}

API reference

SalonPriceList accepts the following props.

PropTypeDefaultDescription
eyebrowstring'Services'spaced small-caps serif label
headingstring'Price list'
levelsstring[]['Junior stylist', 'Senior stylist']column labels for stylist seniority; pass one level to collapse to a single price column
sections*SalonPriceSection[]
notestring'All colour services include a consultation, toner and blow-dry.'quiet closing line under the document

…plus everything from React.HTMLAttributes<HTMLElement>: className, event handlers, aria attributes and the rest pass straight through.

Referenced types

Typestsx
export interface SalonPriceSection {
  title: string
  items: SalonPriceItem[]
}

export interface SalonPriceItem {
  name: string
  /** e.g. '45 min' */
  duration?: string
  /** preformatted strings aligned to levels, e.g. ['$95', '$140']; a single value spans both columns */
  prices: string[]
}

Frequently asked questions

How do I install the Salon Price List component?

Register the @cleverui registry in your components.json ("@cleverui": "https://cleverops.com.au/r/{name}.json"), then run `npx shadcn@latest add @cleverui/salon-price-list`. The shadcn CLI copies the source into your project, you own the code from that point. You can also copy the source directly from this page.

What dependencies does Salon Price List require?

Salon Price List uses motion on top of React and Tailwind CSS. You don't need to install it manually, the shadcn CLI resolves and installs npm dependencies automatically when you add the component.

Can I theme Salon Price List to match my brand?

Yes. The component is styled entirely with Tailwind utilities over standard design tokens (primary, background, muted, border), so it inherits your existing shadcn/ui theme automatically. Change your CSS variables and the component follows, no source edits needed for palette, radius, or fonts.

Want this built for you?

CleverUI is built by the Clever Ops web team. If you'd rather ship a hand-coded, fast, custom website than assemble one, we build them for Australian businesses every week.

Explore web development services