Turning Request Hero

Your agent, better furnished

Askyouragentforapricing page.

It answers with a section that already exists, responsive and in your theme, instead of one it improvised. Install takes one line.

Read the docs

Free to start. No account needed for the first page.

About this block

Turning Request HeroPRO

A centred install hero whose serif headline ends in a word that keeps changing (a pricing page, a hero, a footer), so the promise reads as a list of things the agent can be asked for. Below it an ink command pill that copies the install command on click sits beside a sliding-marker outline pill, then a quiet note.

Hero194: Turning Request Hero

A hero whose headline never finishes the same way twice: the last word cycles through the things an agent can be asked for, so the promise reads as a list rather than a claim.

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

Base UI flavor

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

This installs the block to components/beste/block/hero194.tsx plus the button22 sliding-marker pill and the text4 turning word it uses.

Quick start

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

tsx
import { Hero194, hero194Demo } from "@/components/beste/block/hero194";

export default function Page() {
  return <Hero194 {...hero194Demo} />;
}

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

tsx
import { Hero194 } from "@/components/beste/block/hero194";

export default function Page() {
  return (
    <Hero194
      eyebrow="Your agent, better furnished"
      headingBefore="Ask your agent for a"
      headingWords={["pricing page.", "hero.", "sign in form.", "footer."]}
      description="It answers with a section that already exists, in your theme."
      command="npx your-cli@latest"
      copyLabel="Copy command"
      copiedLabel="Copied"
      buttons={[{ label: "Read the docs", href: "/docs", tone: "outline" }]}
      note="Free to start. No account needed for the first page."
    />
  );
}

Props

PropTypeDefaultDescription
eyebrowstring–Small-caps line above the headline
headingBeforestring–The fixed opening of the headline
headingWordsstring[][]Words that take turns finishing it
descriptionstring–Paragraph under the headline
commandstring–The install command; clicking the pill copies it
copyLabelstring–Accessible name for the pill in its resting state
copiedLabelstring–Accessible name and live-region text once copied
buttonsActionButton[][]Pill actions beside the command
notestring–Quiet line under the actions
classNamestring–Extra classes for the outer <section>
ts
type ActionButton = {
  label: string;
  href: string;
  tone?: "primary" | "light" | "dark" | "outline";
};

Behavior notes

  • The turning word comes from Text4, which swaps it on a timer and blurs each one in and out. Include the full stop in each word so the sentence closes cleanly whichever one is showing.
  • Words are set in the muted colour while the fixed part stays at full strength, so the eye reads the sentence once and then watches only the part that moves.
  • The command pill is filled ink here rather than outlined, because it is competing with a headline that is already moving.
  • Timing after the headline is estimated from headingBefore.split(" ").length + 1, since the turning word's length is not knowable in advance.
  • The cycle stops entirely under reduced motion and the first word stays on screen, which leaves a complete, readable sentence.
  • Keep the words close in length. A very long one changes the line count and makes the block below it jump as the cycle turns.
  • Both the pill and the button are held at h-14 so the filled command and the outlined action line up exactly.

More Hero blocks

View all Hero
PRO

hero191

Two Steps Hero

PRO

hero195

Three Screens Hero

PRO

hero183

Call Request Hero

Get Pro access