Skip to main content
Clever Ops

Ritual Steps

A signature treatment unfolded as a numbered ritual, large serif numerals, italic sensory step descriptions, and durations in quiet mono. The sequence reads like a printed ceremony card.

Preview & code

Loading Ritual Steps preview

Installation

pnpm dlx shadcn@latest add @cleverui/ritual-steps

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

Usage

tsx
import { RitualSteps } from '@/components/blocks/ritual-steps'
Exampletsx
import { RitualSteps } from '@/components/blocks/ritual-steps'

export default function RitualStepsDemo() {
  return (
    <RitualSteps
      eyebrow="The ritual"
      heading="The signature facial"
      intro="Ninety unhurried minutes, from warm towels to the final press of cool jade."
      note="Every ritual ends with herbal tea in the quiet room."
      steps={[
        {
          name: 'Cleanse',
          duration: '10 min',
          description:
            'Warm chamomile compresses and a double cleanse that lifts the day without stripping the skin.',
        },
        {
          name: 'Steam',
          duration: '8 min',
          description:
            'A soft botanical steam opens the pores while eucalyptus clears the breath.',
        },
        {
          name: 'Extract & calm',
          duration: '15 min',
          description:
            'Gentle extractions only where needed, sealed with a cool cucumber press.',
        },
        {
          name: 'Massage',
          duration: '25 min',
          description:
            'Slow circular strokes along the jaw, temples, and décolletage, pressure that never hurries.',
        },
        {
          name: 'Mask & seal',
          duration: '20 min',
          description:
            'A custom mask, jade gua sha, and a final press of cool oil to lock the glow in place.',
        },
        {
          name: 'Quiet close',
          duration: '12 min',
          description:
            'Hands rest at the crown; the room stays dim until you are ready to rise.',
        },
      ]}
    />
  )
}

API reference

RitualSteps accepts the following props.

PropTypeDefaultDescription
eyebrowstring'The ritual'spaced small-caps serif label, never mono in this register
headingstring'The signature facial'
introstringone sensory supporting sentence
steps*RitualStep[]3–6 ordered steps; order is the content
notestringclosing line beneath the ceremony

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

Referenced types

Typestsx
export interface RitualStep {
  name: string
  /** sensory description of the step */
  description: string
  /** preformatted, e.g. '10 min' */
  duration?: string
}

Frequently asked questions

How do I install the Ritual Steps component?

Register the @cleverui registry in your components.json ("@cleverui": "https://cleverops.com.au/r/{name}.json"), then run `npx shadcn@latest add @cleverui/ritual-steps`. 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 Ritual Steps require?

Ritual Steps 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 Ritual Steps 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