Turning Requests Panel

Plain words in, finished code out

Everyrequestisonesentence.

There is no syntax to learn and no picker to scroll. You describe the page the way you would to a colleague.

You

Add a pricing section with three plans and a yearly toggle.

Agent

Placed under the hero, in your theme, middle plan featured.

See what it builds
About this block

Turning Requests PanelPRO

A centred serif headline that settles in word by word, then an ink panel that cycles through short request and reply pairs: the request in serif, the reply in mono a beat later, with thin progress bars to jump between them and a pause on hover. A pill that copies the install command on click and a sliding-marker pill close the section.

Feature299: Turning Requests Panel

An ink panel that cycles through short exchanges: the request arrives in serif, the reply follows a beat later in mono, and thin bars underneath let you jump between them.

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

Base UI flavor

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

This installs the block to components/beste/block/feature299.tsx plus the button22 sliding-marker pill and the text1 word stagger it uses.

Quick start

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

tsx
import { Feature299, feature299Demo } from "@/components/beste/block/feature299";

export default function Page() {
  return <Feature299 {...feature299Demo} />;
}

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

tsx
import { Feature299 } from "@/components/beste/block/feature299";

export default function Page() {
  return (
    <Feature299
      eyebrow="Plain words in, finished code out"
      heading="Every request is one sentence."
      description="There is no syntax to learn and no picker to scroll."
      exchanges={[
        { prompt: "Add a pricing section with three plans.", reply: "Placed under the hero, middle plan featured." },
        { prompt: "We need a changelog page.", reply: "Added a ruled changelog with version tags." },
      ]}
      interval={4}
      labels={{ you: "You", agent: "Agent" }}
      command="npx your-cli@latest"
      copyLabel="Copy command"
      copiedLabel="Copied"
      buttons={[{ label: "See what it builds", href: "/blocks" }]}
    />
  );
}

Props

PropTypeDefaultDescription
eyebrowstringSmall-caps line above the heading
headingstringSection heading, through Text1
descriptionstringParagraph under the heading
exchangesExchange[][]Request and reply pairs that take turns
intervalnumber4Seconds each exchange stays on screen
labels{ you: string; agent: string }{ you: "You", agent: "Agent" }Wording of the two role labels
commandstringThe install command; clicking the pill copies it
copyLabelstringAccessible name for the pill in its resting state
copiedLabelstringAccessible name and live-region text once copied
buttonsActionButton[][]Pill actions under the panel
classNamestringExtra classes for the outer <section>
ts
type Exchange = {
  prompt: string;
  reply: string;
};

type ActionButton = {
  label: string;
  href: string;
  tone?: "primary" | "light" | "dark" | "outline";
};

Behavior notes

  • The reply is delayed 0.9 seconds behind its own prompt, which is the whole trick: the pair reads as a question answered rather than as two lines appearing together.
  • The cycle pauses while the pointer is over the panel, so nobody loses a sentence halfway through reading it.
  • The panel holds a min-h, so a short exchange and a long one occupy the same height and the page below never shifts as the cycle turns.
  • The bars are plain buttons with aria-current and the prompt as their accessible name, not tab roles, since there are no panels for them to control.
  • Under reduced motion the blur and travel are dropped but the cycle continues, because the content itself is the point rather than the movement.
  • The interval is a prop in seconds rather than milliseconds, and is converted once when the timer is set.
  • Clicking a bar sets the active exchange without stopping the timer, so the cycle resumes from wherever you jumped to.

More Feature blocks

View all Feature
PRO

feature298

Ask At Any Size Tabs

A header with a serif headline that settles in word by word and a pill that copies the install command on click, then a rounded pill tab list (pages, sections, components). Each tab pairs a title, a paragraph and a short list of example prompts in mono with a photo that blurs in and drifts on scroll.

PRO

feature293

Agent Transcript

A split feature: on the left a serif headline that settles in word by word, an intro, a rounded pill that copies the install command on click and a sliding-marker pill; on the right a muted transcript panel where a short exchange with the agent appears message by message, one reply carrying a page preview that blurs in and drifts on scroll.

PRO

feature278

Two Doors Tabs

A tabbed comparison under a centred serif heading that settles in word by word: pill tabs switch between approaches, each blurring in a drifting portrait photograph beside a serif title, a description, a ruled fact list and a sliding-marker pill.

PRO

feature277

Six Promises

A values grid: a serif heading settling in word by word beside the intro and a pill action, then six numbered promises in three columns whose top rules draw themselves in one after another, over a slowly drifting soft light.

PRO

feature295

Before and After Columns

A centred serif headline that settles in word by word, then two columns: a muted panel listing how an agent improvises today and an ink panel listing what it does once the library is installed. Between them, on a hairline, sits the pill that copies the install command on click.

PRO

feature292

Install Ask Ship Steps

Three numbered columns under rules that draw in from the left as they scroll into view: the first carries a rounded pill that copies the install command on click, the next two show a sample prompt and a resulting file path in muted mono panels. Serif headline settles in word by word, a sliding-marker pill sits at the right end of the header.