Migration Hero With Step Tracker

Switching over

Move your practice across without closing for a week

Export what you have, map it once, and watch Sirius fill in. Most teams see their first live clinic day before the migration call is over.

No card required. We stay on the call until your first booking lands.

Soft blue gradient backdrop

Migration

Export
Map fields
3
Review
4
Go live

Review finishes today, and go live is booked for Friday morning.

About this block

Migration Hero With Step TrackerPRO

A hero that opens on an oversized light heading, then drops a hairline into a narrow copy column with one action and a wide image tile floating a live horizontal step tracker.

Hero158: Migration Hero With Step Tracker

A hero that opens on an oversized light heading, then drops a hairline into a narrow copy column carrying one action and a reassurance note, beside a wide image tile floating a live horizontal step tracker.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/hero158?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/hero158?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/hero158.tsx, the progress16 step-tracker piece it floats on the tile (installed to components/beste/piece/progress16.tsx), and the badge23 and button21 components it uses for the eyebrow and the action.

Quick start

The installed file exports hero158Demo alongside the block: the exact props behind the preview above. Spread it to get a working hero in one line.

tsx
import { Hero158, hero158Demo } from "@/components/beste/block/hero158";

export default function Page() {
  return <Hero158 {...hero158Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Hero158 } from "@/components/beste/block/hero158";
import { Progress16 } from "@/components/beste/piece/progress16";

export default function Page() {
  return (
    <Hero158
      badge={{ label: "Switching over" }}
      heading="Move your practice across without closing for a week"
      description="Export what you have, map it once, and watch the workspace fill in."
      button={{ label: "Start a migration", href: "/migrate" }}
      note="No card required. We stay on the call until your first booking lands."
      media={
        <Progress16
          title="Migration"
          steps={["Export", "Map fields", "Review", "Go live"]}
          activeIndex={2}
          caption="Review finishes today, and go live is booked for Friday morning."
        />
      }
      image={{ src: "/backdrops/blue.jpg", alt: "Soft blue gradient backdrop" }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Eyebrow above the heading, rendered through Badge23
headingstringDisplay heading, rendered as the page h1
descriptionstringOpening paragraph in the narrow left column
button{ label: string; href: string }Single action under the paragraph
notestringSmall reassurance line, separated by its own hairline
mediaReactNodeLive asset layered on the tile, progress16 in the demo
image{ src: string; alt: string }Backdrop behind the media tile
classNamestringExtra classes for the outer section
ts
type ActionLink = {
  label: string;
  href: string;
};

type TileImage = {
  src: string;
  alt: string;
};

Behavior notes

  • The heading sits above the grid, not inside it, and is capped at max-w-4xl while scaling text-4xl through lg:text-7xl. It is the only element allowed the full container width, which is what makes the hairline underneath read as a rule rather than a divider.
  • The lower half is a md:grid-cols-3 split where the copy takes one column and the media tile takes two through md:col-span-2. Below md both stack in source order, so the copy always precedes the tile.
  • The copy column is flex flex-col items-start, so the action never stretches to the column width. Removing items-start here would let Button21 inflate, since flex children default to align-items: stretch.
  • note carries its own border-t and top padding, which means the second hairline only appears when a note is actually passed.
  • The media tile is a fixed band (h-64, then md:h-72) with the image absolutely positioned behind and the piece layered at z-10. The piece centers itself inside its own root, so any piece from the catalogue drops in without extra wrapping.
  • image renders only when media is present, since the tile itself is gated on media. Passing an image with no media leaves the row empty rather than showing a bare photograph.

More Hero blocks

View all Hero
PRO

hero191

Two Steps Hero

A centred install hero that explains itself in two numbered steps under a ruled line: run the command, copied from a rounded pill on click, then ask for a page, shown as an example prompt in a muted mono panel. Serif headline settles in word by word, one sliding-marker pill below.

PRO

hero168

Search Reach Hero

A hero pairing a light display heading with an offset paragraph and action, then a wide image tile floating a live search results panel over four hairline columns explaining what the search covers.

PRO

hero162

Indexed Rows Hero

A hero that sets a light display heading and one action against a column of numbered hairline rows, then closes on a full-bleed image band with a live approval request pinned into its corner.

PRO

hero133

Kinetic Rotating-Word Hero

Full-bleed monochrome hero with a giant headline whose final word auto-cycles through a list, plus clickable chips to pick a word and pause the rotation.

PRO

hero137

Slideshow Hero with Click Controls

Full-bleed monochrome hero that crossfades across a set of slides, navigated by explicit previous/next arrows and clickable dots with an auto-loop, plus a caption linking the active slide.

PRO

hero189

Command on Photo Hero

A full-height photographic install hero: the photo blurs in and drifts slower than the page under a scrim and film grain, a serif headline settles in word by word, then a frosted command pill that copies the install command on click, two sliding-marker pills and a short column of figures.