Fold & Press, an independent print fair in Lisbon
Three days of risograph, letterpress and zines from 120 small studios, closing with a set by Hania Rani in the old tram depot.
A warm paper hero for a print fair built around the fold-gradient background component: a sunset gradient printed across accordion pleats fills the whole frame, breathing open and closed and easing open under the cursor. An oversized dark headline, a short intro, a dark Arrow Pill and an underline link sit on the left over a soft paper veil. The pleats fold in out of the paper color on load, and every gradient setting passes through the fold prop.
A full-bleed hero over the fold-gradient component: a sunset gradient printed across accordion pleats that breathe open and closed fills the frame. The copy sits on the left over a soft veil with a primary Arrow Pill and an underline link.
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/hero269?email=YOUR_EMAIL&license_key=YOUR_KEY"Base UI flavor
npx shadcn add "https://ui.beste.co/r-base/hero269?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the block to components/beste/block/hero269.tsx plus the fold-gradient background and the button23 and button2 buttons it uses.
The installed file exports hero269Demo alongside the block: the exact props behind the preview above. Spread it to get a working hero in one line.
import { Hero269, hero269Demo } from "@/components/beste/block/hero269";
export default function Page() {
return <Hero269 {...hero269Demo} />;
}Then replace the demo with your own props. Written out, a trimmed setup looks like this:
import { Hero269 } from "@/components/beste/block/hero269";
export default function Page() {
return (
<Hero269
eyebrow="Fold & Press, an independent print fair in Lisbon"
heading="Paper, pressed and folded by hand."
description="Three days of risograph, letterpress and zines from 120 small studios."
buttons={[
{ label: "Get a day pass", href: "/tickets" },
{ label: "See the exhibitors", href: "/exhibitors" },
]}
fold={{
colors: ["#ff6b4a", "#ffb35c", "#f7e2c2", "#8fc1ff", "#5b6cff"],
baseColor: "var(--background)",
folds: 11,
depth: 0.6,
}}
/>
);
}| Prop | Type | Default | Description |
|---|---|---|---|
eyebrow | string | – | Small line above the headline |
heading | string | – | Oversized headline, rendered as the page h1 |
description | string | – | Intro under the headline |
buttons | ActionButton[] | [] | The first renders as a primary Arrow Pill, every later one as a Button2 underline link |
fold | Omit<FoldGradientProps, "className" | "children"> | – | Forwarded to the full-bleed FoldGradient component: colors, base, folds, depth, angles, breathing, sway, sheen, speed, saturation, grain and interactive |
className | string | – | Extra classes for the outer <section> |
type ActionButton = {
label: string;
href: string;
};background token fades from the left edge to clear at three quarters of the width, so the copy stays readable while the right side shows the folds in full.bg-background and the demo passes var(--background) as fold.baseColor, so the pleats fold in out of the page color on load and the ground, copy and buttons follow the theme; the sunset palette stays fixed.interactive on, the pleats under the cursor ease open and the light leans toward it.IntersectionObserver and on hidden tabs and respects prefers-reduced-motion: the copy then appears without its rise.