Editorial Product Hero

The member record

Every member on one page the whole team can trust

Records, plans, and payments live together, so anyone can pick up a case without hunting across five tools.

Soft blue gradient backdrop
app.sirius.care/members
Rowan BlakeActive
Amelia FrostIntake
Noah ReyesDischarged
About this block

Editorial Product HeroPRO

An editorial hero with an eyebrow and an oversized full-width light heading, then a lower row pairing a paragraph and two accent buttons with an image tile that floats a live app window frame.

Hero145: Editorial Product Hero

Editorial hero with an eyebrow pill and an oversized full-width light heading up top, then a lower two-column row pairing a paragraph and two accent buttons with an image tile that floats a live browser-window frame asset (a table of member rows in the demo).

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/hero145?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

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

This installs the block to components/beste/block/hero145.tsx, the badge23 and button21 components it uses for the eyebrow pill and CTA buttons, the browser34 piece it floats inside the image tile as the demo's live asset, and its dependencies.

Quick start

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

tsx
import { Hero145, hero145Demo } from "@/components/beste/block/hero145";

export default function Page() {
  return <Hero145 {...hero145Demo} />;
}

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

tsx
import { Hero145 } from "@/components/beste/block/hero145";
import { Browser34 } from "@/components/beste/piece/browser34";

export default function Page() {
  return (
    <Hero145
      badge={{ label: "The member record" }}
      heading="Every member on one page the whole team can trust"
      description="Records, plans, and payments live together in one view."
      buttons={[
        { label: "Book a demo", href: "https://beste.co", tone: "primary" },
        { label: "Take the tour", href: "https://beste.co", tone: "outline" },
      ]}
      media={
        <Browser34
          url="app.sirius.care/members"
          rows={[
            { name: "Rowan Blake", status: "Active", tone: "emerald" },
            { name: "Amelia Frost", status: "Intake", tone: "amber" },
          ]}
        />
      }
      image={{
        src: "https://images.unsplash.com/photo-1750918619871-dc74c9a57394?w=2000&fit=crop",
        alt: "Soft blue gradient backdrop",
      }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Eyebrow label rendered as a Badge23 pill
headingstringOversized full-width light heading
descriptionstringSupporting paragraph in the left column of the lower row
buttonsActionLink[][]CTA buttons rendered via Button21
mediaReactNodeLive asset floated in front of the image tile in the right column
image{ src: string; alt: string }Backdrop photo filling the tile behind media
classNamestringExtra classes for the outer <section>
ts
type ActionLink = {
  label: string;
  href: string;
  tone?: "primary" | "neutral" | "outline";
};

Behavior notes

  • buttons without an explicit tone fall back to "primary" on the first entry and "outline" on every one after it (tone ?? (index === 0 ? "primary" : "outline")).
  • The heading runs full width above a md:grid-cols-2 row that holds the description/buttons on the left and the media tile on the right; unlike hero144's fully centered layout, this one is left-aligned throughout.
  • The image tile only renders when media is truthy; image fills it as an absolutely positioned backdrop and media renders above it in a relative z-10 layer, so the tile still shows (on bg-muted) if media is passed without an image.
  • media is a raw ReactNode: the demo renders a <Browser34 /> piece (a fake browser chrome with a URL bar and status rows) directly as JSX, so changing the asset means swapping the imported component, not editing a data prop.
  • Section uses standard py-16 md:py-24 padding rather than the full-bleed min-h-[...] treatment of the Auralis hero set, keeping it a mid-page rather than fold-filling hero.

More Hero blocks

View all Hero
PRO

hero120

Editorial Image Hero

Centered editorial hero with eyebrow, large heading, description, dual dark and outline CTAs, and a wide 16:9 image with a mono caption below.

PRO

hero144

Centered Product Hero

A centered hero with an eyebrow pill, a large light heading, a supporting paragraph, two accent buttons, and a wide image tile below that floats a live product micro-asset.

PRO

hero143

Editorial Split Hero

A light editorial hero with an oversized display heading on the left, an offset supporting paragraph and accent button on the right, and a full-bleed image band below.

PRO

hero185

Logos Hero

A centred hero with an eyebrow, a serif headline that settles in word by word, an intro and a sliding-marker pill, closed by a ruled row where greyscale partner logos drift right to left behind soft edge fades, next to a small-caps label.

PRO

hero159

Photo Collage Hero

A centered hero with an eyebrow, light display heading, and two actions above a staggered three-photo collage whose raised middle tile floats a live booking confirmation.

PRO

hero138

Editorial Trust Hero

Static full-bleed editorial hero with an eyebrow badge, a giant display heading, a supporting paragraph, dual seal CTAs, and an overlapping avatar trust row.