A single-page product launch for a typeface: a poster navbar anchored to every section below it, a fact-led hero, a centred manifesto, a ruled index of the work it is set in, three licence tiers, a buyer's FAQ, an inverted newsletter band and a ruled index footer that repeats the same anchors.
Composed from 8 blocks. Installing this page installs all of them, plus the pieces and primitives they use.
Built in the Auralis collection.
A single-page product launch for a typeface: a poster navbar anchored to every section below it, a fact-led hero, a centred manifesto, a ruled index of the work it is set in, three licence tiers, a buyer's FAQ, an inverted newsletter band, and a ruled index footer repeating the same anchors. Eight 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/landing1?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the page to components/beste/page/landing1.tsx and everything behind it: the eight blocks it composes (navbar67, hero148, about65, portfolio112, pricing65, faq76, cta72, footer111) and the badge7 and button12 components they use. Eleven files, no follow-up installs.
The installed file exports landing1Demo alongside the page: the exact props behind the preview above. Spread it to get a working page in one line.
import { Landing1, landing1Demo } from "@/components/beste/page/landing1";
export default function Page() {
return <Landing1 {...landing1Demo} />;
}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 { Landing1, landing1Demo } from "@/components/beste/page/landing1";
export default function Page() {
return (
<Landing1
{...landing1Demo}
licences={{
label: "Licences",
heading: "Three, and the desktop one is perpetual.",
plans: [
{ name: "Desktop", price: "$90", description: "Two machines, no expiry." },
{ name: "Web", price: "$180", description: "Up to 500,000 views a month." },
{ name: "Family", price: "$420", description: "Nine weights, both widths." },
],
}}
/>
);
}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 Navbar67> | – | Poster navbar; its links are the anchors below |
hero | ComponentProps<typeof Hero148> | – | Fact-led hero |
manifesto | ComponentProps<typeof About65> | – | Centred manifesto |
inUse | ComponentProps<typeof Portfolio112> | – | Ruled index of the work it is set in |
licences | ComponentProps<typeof Pricing65> | – | Three licence tiers |
faq | ComponentProps<typeof Faq76> | – | Buyer's questions |
cta | ComponentProps<typeof Cta72> | – | Newsletter band |
footer | ComponentProps<typeof Footer111> | – | Ruled index footer, repeating the anchors |
className | string | – | Extra classes for the page's outer wrapper |
| Section | Anchor | Block | Notes |
|---|---|---|---|
| Hero | #family | hero148 | Facts before adjectives |
| Manifesto | #manifesto | about65 | Given bg-muted/50; a centred measure, not full width |
| In use | #in-use | portfolio112 | A ruled list rather than a card grid |
| Licences | #licences | pricing65 | Also given bg-muted/50 |
| Questions | #questions | faq76 | Buying questions, not brand ones |
| Closing | – | cta72 | Newsletter, on the inverted band |
manifesto 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. Point a link at #in-use and it lands with the heading clear of the bar.style element that targets html, with a prefers-reduced-motion guard. It uses element selectors only, no class names, so class obfuscation cannot detach it.id means changing it in three places: the wrapper, the navbar link and the footer link.dark class, which swaps the theme tokens for that subtree rather than painting the section, so the block's own fields and borders follow.navbar67
Poster-scale navbar — an oversized wordmark anchors the left while a right column stacks the nav, a pill CTA and a parenthetical label. Collapses to a stacked mobile menu.
hero148
Photo-free hero that runs a display statement across the full width, drops the paragraph and pill CTAs onto one baseline beneath it, and closes with a ruled four-column row of studio facts.
about65
Centered manifesto with a very large multi-line statement heading, muted emphasis phrases, a closing line, and a single CTA.
portfolio112
Editorial project index of ruled rows — padded numeral, project name, client and year, with a floating thumbnail revealed on hover.
pricing65
Three monochrome engagement tiers with editorial big-number pricing and an inverted featured plan.
faq76
A two-column editorial FAQ pairing a sticky eyebrow, oversized heading, short note, and contact CTA on the left with a ruled, index-marked accordion of questions on the right.