A single page aimed at multi-site groups: a capsule navbar anchored to the sections below it, a full-bleed hero floating a live intake figure, three site cards showing what stays local, the daily weekly and monthly cadence written out, an inverted customer quote with a rating, four documents to read before booking, and a minimal footer carrying the same anchors.
Composed from 7 blocks. Installing this page installs all of them, plus the pieces and primitives they use.
Built in the Sirius collection.
A single page aimed at multi-site groups: a capsule navbar anchored to the sections below it, a full-bleed hero floating a live intake figure, three site cards showing what stays local, the daily weekly and monthly cadence written out, an inverted customer quote with a rating, four documents to read before booking, and a minimal footer carrying the same anchors. Seven blocks, one install, one page.
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/landing6?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the page to components/beste/page/landing6.tsx and everything behind it: the seven blocks it composes (navbar74, hero157, usecase42, workflow50, testimonial43, cta87, footer121), the five components they use (stats16, location7, socialproof25, button21, badge23) and the shadcn/ui button primitive. Thirteen files.
The installed file exports landing6Demo alongside the page: the exact props behind the preview above. Spread it to get a working page in one line.
import { Landing6, landing6Demo } from "@/components/beste/page/landing6";
export default function Page() {
return <Landing6 {...landing6Demo} />;
}Each section is a separate prop, so the usual next step is to keep the demo and replace one section at a time. Keep the navbar's href values pointing at the anchors, or the page stops navigating itself.
import { Landing6, landing6Demo } from "@/components/beste/page/landing6";
export default function Page() {
return (
<Landing6
{...landing6Demo}
sites={{
label: "Your sites",
heading: "One system, and each site still runs itself.",
items: [
{ title: "Local prices", description: "Set per site, changed without a ticket." },
{ title: "Local rotas", description: "Managers keep their own, the group sees all of them." },
{ title: "Local stock", description: "Counted on site, reported to the group nightly." },
],
}}
/>
);
}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 Navbar74> | – | Capsule navbar, transparent over the hero |
hero | ComponentProps<typeof Hero157> | – | Full-bleed hero floating a live intake figure |
sites | ComponentProps<typeof Usecase42> | – | Three cards showing what stays local |
cadence | ComponentProps<typeof Workflow50> | – | Daily, weekly and monthly, written out |
testimonial | ComponentProps<typeof Testimonial43> | – | Customer quote with a rating |
cta | ComponentProps<typeof Cta87> | – | Four documents to read before booking |
footer | ComponentProps<typeof Footer121> | – | Minimal footer carrying the same anchors |
className | string | – | Extra classes for the page's outer wrapper |
| Section | Anchor | Block | Notes |
|---|---|---|---|
| Groups | #groups | usecase42 | Given bg-muted/40; three cards, matched to the grid |
| Week | #week | workflow50 | Three columns of three, so each list stays even |
| Practice | #practice | testimonial43 | Rendered on the inverted band |
| Read | #read | cta87 | Also given bg-muted/40; four documents, not one button |
cadence removes that section entirely rather than rendering an empty one. On a one-page site that also removes the target of a navbar link, so drop the matching link too.div carrying the id and a scroll-mt offset, so no block is modified to be linkable.style element that targets html, with a prefers-reduced-motion guard. Element selectors only, so class obfuscation cannot detach it.sticky top-0 z-50 bg-transparent by the page, so the hero's full-bleed media runs under it. That only works because hero157 is media-first; over a hero whose copy starts at the top, the bar would land on the text.hero157 keeps its floating card inside a bounded row: the background runs to the edges but the card stops at the container, so it does not drift into the corner on a widescreen display.dark class, which swaps the theme tokens for that subtree rather than painting the section, so the rating and avatar follow the switch.navbar74
A navbar contained in a softly rounded, bordered capsule with a lowercase wordmark, uppercase links, an accent call to action, and a matching mobile panel.
hero157
A hero that splits the viewport in two: an eyebrow, light display heading, two actions, and a hairline proof row on one side, and a full-height photo column floating a live trend metric on the other.
usecase42
A multi-site use case with an eyebrow over a hairline rule, a two-column heading, and three image tiles that each float a live location card above a title and description.
workflow50
An operating rhythm split into three hairline columns for daily, weekly, and monthly routines, each row carrying its timing and either an owner or an accent chip where nobody is needed.
testimonial43
A testimonial with an eyebrow over a hairline rule, pairing a large light quote and author on the left with an image tile that floats a live star-rating card on the right.