A portfolio index page: a floating pill navbar overlaid on a full-bleed hero whose photographs cross-fade on a timer, a featured project above a project grid, a client engagement grid, a dark contact band, and a big-logotype newsletter footer.
Composed from 6 blocks. Installing this page installs all of them, plus the pieces and primitives they use.
Built in the Auralis collection.
A portfolio index page: a floating pill navbar overlaid on a full-bleed hero whose photographs cross-fade on a timer, a featured project above a project grid, a client engagement grid, a dark contact band, and a big-logotype newsletter footer. Six 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/work1?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the page to components/beste/page/work1.tsx and everything behind it: the six blocks it composes (navbar63, hero153, portfolio110, showcase44, cta79, footer113) and the button12 and badge7 components they use. Nine files, no follow-up installs.
The installed file exports work1Demo alongside the page: the exact props behind the preview above. Spread it to get a working page in one line.
import { Work1, work1Demo } from "@/components/beste/page/work1";
export default function Page() {
return <Work1 {...work1Demo} />;
}Each section is a separate prop, so the usual next step is to keep the demo and replace one section at a time.
import { Work1, work1Demo } from "@/components/beste/page/work1";
export default function Page() {
return (
<Work1
{...work1Demo}
clients={{
label: "Clients",
heading: "Who we did it with.",
items: [
{ name: "Norrland Ferries", detail: "Wayfinding, 2025" },
{ name: "Halden Press", detail: "Identity, 2025" },
{ name: "Atlas Coffee", detail: "Packaging, 2024" },
],
}}
/>
);
}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 Navbar63> | – | Floating pill navbar, overlaid on the hero |
hero | ComponentProps<typeof Hero153> | – | Full-bleed cross-fading photographs |
work | ComponentProps<typeof Portfolio110> | – | Featured project above the grid |
clients | ComponentProps<typeof Showcase44> | – | Client engagement grid |
cta | ComponentProps<typeof Cta79> | – | Contact band |
footer | ComponentProps<typeof Footer113> | – | Big-logotype newsletter footer |
className | string | – | Extra classes for the page's outer wrapper |
| Section | Block | Notes |
|---|---|---|
| Navbar | navbar63 | Sticky, and overlaid on the hero rather than sitting above it |
| Hero | hero153 | Photographs cross-fade on a timer inside the block |
| Work | portfolio110 | Given bg-muted/50 by the page |
| Clients | showcase44 | Already carries tinted cards, so the page leaves it plain |
| Contact | cta79 | Dark inside the block already |
| Footer | footer113 | Logotype at full width, with newsletter capture |
clients removes that section entirely rather than rendering an empty one.col-start-1 row-start-1 while later sections auto-place into the rows below. No magic height number is involved, so changing the hero's height cannot break the alignment.hero153 is. A hero whose copy starts at the top would run under the bar.className="bg-muted/50" on the work section after spreading work, so a className passed inside that prop is overridden.navbar63
A floating rounded-full navbar island resting on a muted band — wordmark, quiet links and a pill CTA, with a rounded mobile menu card that drops below.
hero153
Full-bleed hero whose background photographs cross-fade on a timer, with a caption and bar indicators on a ruled line at the foot that also let a reader jump straight to a frame.
portfolio110
One large featured project with image, category, and title, followed by a row of smaller project cards. Monochrome studio styling.
showcase44
Centered eyebrow, heading, and description above a grid of borderless brand cards — each with a square, colorable logo plate, a title and short description, and a full-width animated seal detail button.