What the command gives your agent
After one line in the terminal the agent stops improvising layouts and starts choosing from finished ones.
Heroes, pricing, footers, forms and the rest, each one written once and kept consistent.
Sections read the colors and type your project already uses. Nothing arrives looking borrowed.
The library is a tool the agent calls, so search and placement happen inside the same conversation.
Every section is built for phones first and tested at the widths people actually use.
Entrances, parallax and reveals are already tuned and respect reduced motion settings.
What lands in the repository is ordinary code you can edit, rename or delete like anything else.
A header with a serif headline that settles in word by word and, at its right end, a rounded pill that copies the install command on click; below it a ruled two by three grid of thin icons, serif titles and short paragraphs that settle in one after another as they scroll into view.
A ruled two by three grid of thin icons and short paragraphs, with the install command sitting at the right end of the heading rather than below it.
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.
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
npx shadcn add "https://ui.beste.co/r/feature294?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/feature294?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/feature294.tsx plus the text1 word stagger it uses.
The installed file exports feature294Demo alongside the block: the exact props behind the preview above. Spread it to get a working section in one line.
import { Feature294, feature294Demo } from "@/components/beste/block/feature294";
export default function Page() {
return <Feature294 {...feature294Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Feature294 } from "@/components/beste/block/feature294";
export default function Page() {
return (
<Feature294
eyebrow="What the command gives your agent"
heading="Six things it no longer has to invent."
description="After one line in the terminal the agent stops improvising layouts."
command="npx your-cli@latest"
copyLabel="Copy command"
copiedLabel="Copied"
items={[
{ icon: LayoutGrid, title: "1,500 finished sections", description: "Heroes, pricing, footers and the rest." },
{ icon: Palette, title: "Your theme, carried through", description: "Sections read the colors your project uses." },
]}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
eyebrow | string | – | Small-caps line above the heading |
heading | string | – | Section heading, through Text1 |
description | string | – | Paragraph under the heading |
command | string | – | The install command; clicking the pill copies it |
copyLabel | string | – | Accessible name for the pill in its resting state |
copiedLabel | string | – | Accessible name and live-region text once copied |
items | Item[] | [] | Cells of the grid, in order |
className | string | – | Extra classes for the outer <section> |
import type { LucideIcon } from "lucide-react";
type Item = {
icon: LucideIcon;
title: string;
description: string;
};strokeWidth={1.5} rather than the default 2, which is what keeps them quiet enough to sit beside a serif title.nth-child selectors to suppress the left border on every third cell, so no separator ever dangles at the edge of a row.