A services page that prices the work in the fold: a reel hero, four principles beside a studio photograph, a nine-week timeline with an owner on every stage, two engagement plans, a two-column FAQ, a contact panel and a CTA footer.
Composed from 8 blocks. Installing this page installs all of them, plus the pieces and primitives they use.
Built in the Polaris collection.
A services page that prices the work in the fold: a reel hero, four principles beside a studio photograph, a nine-week timeline with an owner on every stage, two engagement plans, a two-column FAQ, a contact panel, and a CTA footer. Eight blocks, one install.
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.
npx shadcn add "https://ui.beste.co/page/r/services1?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the page to components/beste/page/services1.tsx and everything behind it: the eight blocks it composes (navbar47, hero113, agency13, workflow36, pricing63, faq70, cta67, footer103), the button1 and badge6 components they use, and the shadcn/ui button primitive. Eleven files, no follow-up installs.
The installed file exports services1Demo alongside the page: the exact props behind the preview above. Spread it to get a working page in one line.
import { Services1, services1Demo } from "@/components/beste/page/services1";
export default function Page() {
return <Services1 {...services1Demo} />;
}Each section is a separate prop, so the usual next step is to keep the demo and replace one section at a time.
import { Services1, services1Demo } from "@/components/beste/page/services1";
export default function Page() {
return (
<Services1
{...services1Demo}
plans={{
label: "Engagements",
heading: "Two ways to work with us.",
plans: [
{ name: "Project", price: "From €40,000", description: "Fixed scope, fixed figure, nine weeks." },
{ name: "Retained", price: "€9,000 a month", description: "Two days a week, minimum three months." },
],
}}
/>
);
}Every prop is the full prop object of the block that renders that section, so anything the block accepts is accepted here.
| Prop | Type | Default | Description |
|---|---|---|---|
navbar | ComponentProps<typeof Navbar47> | – | Studio navbar |
hero | ComponentProps<typeof Hero113> | – | Reel hero |
approach | ComponentProps<typeof Agency13> | – | Four principles beside a photograph |
process | ComponentProps<typeof Workflow36> | – | Nine-week timeline, an owner per stage |
plans | ComponentProps<typeof Pricing63> | – | Two engagement plans |
faq | ComponentProps<typeof Faq70> | – | Two-column FAQ |
cta | ComponentProps<typeof Cta67> | – | Contact panel |
footer | ComponentProps<typeof Footer103> | – | Footer leading with a CTA |
className | string | – | Extra classes for the page's outer wrapper |
| Section | Block | Notes |
|---|---|---|
| Navbar | navbar47 | Sticky for the whole document |
| Hero | hero113 | A reel, so the work moves before any copy is read |
| Approach | agency13 | Four principles; the count matches the layout |
| Process | workflow36 | Given bg-muted/50; every stage names an owner |
| Plans | pricing63 | Prices in the page rather than behind a call |
| Questions | faq70 | Also given bg-muted/50, pairing it with the process band |
| Contact | cta67 | The panel that ends the argument |
| Footer | footer103 | Opens with a CTA of its own |
plans removes that section entirely rather than rendering an empty one. The page is built so the price is visible without a conversation, which is the reason plans sits above the FAQ rather than below it.sticky top-0 z-50 by the page, which works because the block carries its own opaque band.className="bg-muted/50" on both the process and FAQ sections after spreading their props, so a className passed inside those props is overridden.dark band on this page. The reel hero is already the loudest thing on it, and an inverted section further down would fight it rather than close the page.agency13 lays out four principles; passing three leaves a hole in the row, and passing five wraps one onto its own line.navbar47
Studio navbar whose Work item opens a full-width mega panel with category links and three featured project thumbnails.
hero113
Centered big-type studio hero with start and watch-the-film actions over a cinematic banner.
workflow36
A single-rail vertical process timeline with numbered nodes and per-step duration and owner meta.