Gallery Exhibition Page

Glass and steel building front under a flat sky
(Room One)

Current hang until 2 June

The work we kept, hung where we can argue about it.

One room off the studio floor, open three afternoons a week. Everything on the wall was made here, and everything on the wall was nearly something else.

Open
Wed to Fri, 14:00 to 18:00
Where
Katendrecht, Rotterdam
Entry
Free, no booking needed
Book a visit

Room One, from the courtyard

(Current hang)

Six pieces, and the version of each we did not use.

14 March to 2 June, Room One

(The ledger)

What came off the press, by the year it was made.

2023

The year we stopped photographing work for portfolios and started keeping the objects themselves.

2024

Three retainers ran at once and the room filled with the parts of them that never shipped.

2025

The press year. Two type specimens, one book, and a wall that had to be rebuilt to hold them.

(Before you come)

The five things people ask at the door.

Anything else, ask at the desk. Somebody who made the work is usually in the building.

Book a visit

Do I need to book?

No. The room is open Wednesday to Friday afternoons and entry is free. Book only if you are bringing more than six people, so we can move the table.

Can I buy anything on the wall?

Some of it. The prints and specimens are for sale in small editions, the client work is not. Prices are on the card beside each frame rather than on request.

Is the work for sale as commissions?

The room is not a shop for new work, but it is a fair way to see whether you like how we think. If you do, the studio takes nine projects a year and the enquiry form is the same one everyone uses.

Can I photograph the room?

Yes, including the unfinished pieces. We would rather you credit the maker on the card than the studio.

Do you show other people's work?

Twice a year we give the room to somebody else for a month and hang nothing of ours. Those dates go on the journal first.

Room One, Katendrecht
(Visit)

Come and disagree with something on the wall.

Closed for the hang in the first week of March, June, September and December.

About this page

Gallery Exhibition PagePRO

An exhibition page for a working studio: a navbar running the visiting details as a marquee, a framed poster hero, a salon wall hang with a lightbox, an archive ledger of works by year, a visiting FAQ, a framed closing invitation and a footer showing whether the room is open right now.

Composed from 7 blocks. Installing this page installs all of them, plus the pieces and primitives they use.

Built in the Auralis collection.

An exhibition page for a working studio: a navbar running the visiting details as a marquee, a framed poster hero, a salon wall hang with a lightbox, an archive ledger of works by year, a visiting FAQ, a framed closing invitation, and a footer showing whether the room is open right now. Seven 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.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

bash
npx shadcn add "https://ui.beste.co/page/r/exhibition1?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the page to components/beste/page/exhibition1.tsx and everything behind it: the seven blocks it composes (navbar62, hero155, gallery12, gallery17, faq76, cta71, footer118) and the button12 and badge7 components they use. Ten files, no follow-up installs.

Quick start

The installed file exports exhibition1Demo alongside the page: the exact props behind the preview above. Spread it to get a working page in one line.

tsx
import { Exhibition1, exhibition1Demo } from "@/components/beste/page/exhibition1";

export default function Page() {
  return <Exhibition1 {...exhibition1Demo} />;
}

Each section is a separate prop, so the usual next step is to keep the demo and replace one section at a time.

tsx
import { Exhibition1, exhibition1Demo } from "@/components/beste/page/exhibition1";

export default function Page() {
  return (
    <Exhibition1
      {...exhibition1Demo}
      navbar={{
        brand: "Room One",
        marquee: [
          "Open Wednesday to Friday, 16:00 to 18:00",
          "Entry is free and needs no booking",
          "Ground floor, step free",
        ],
        cta: { label: "Book a visit", href: "/visit" },
      }}
    />
  );
}

Props

Every prop is the full prop object of the block that renders that section, so anything the block accepts is accepted here.

PropTypeDefaultDescription
navbarComponentProps<typeof Navbar62>Visiting details, run as a marquee
heroComponentProps<typeof Hero155>Framed poster hero
hangComponentProps<typeof Gallery12>Salon wall hang with a lightbox
archiveComponentProps<typeof Gallery17>Archive ledger of works by year
faqComponentProps<typeof Faq76>Visiting questions
ctaComponentProps<typeof Cta71>Framed closing invitation
footerComponentProps<typeof Footer118>Opening hours, and whether the room is open now
classNamestringExtra classes for the page's outer wrapper

Sections

SectionBlockNotes
Navbarnavbar62Sticky; the marquee carries the visiting details
Herohero155A framed poster rather than a full-bleed photograph
Hanggallery12Salon layout; the lightbox lives inside the block
Archivegallery17Given bg-muted/50 by the page, separating it from the hang
Questionsfaq76Visiting practicalities, not sales objections
Invitationcta71Framed to echo the hero
Footerfooter118States the opening state in words

Behavior notes

  • Every section is conditional on its own prop, so omitting archive removes that section entirely rather than rendering an empty one.
  • The navbar is given sticky top-0 z-50 by the page, so the visiting details stay on screen through the whole hang. That is the reason it is sticky here: the marquee is information a visitor needs at the end of the page, not branding.
  • The page sets className="bg-muted/50" on the archive after spreading archive, so a className passed inside that prop is overridden. It is the only tint on the page, and it exists to keep two galleries in a row from reading as one.
  • There is no dark band on this page. The work supplies the contrast, and inverting a section would compete with the photographs rather than frame them.
  • Two gallery blocks sit next to each other on purpose: gallery12 hangs the current show, gallery17 lists the archive. They are different jobs and the tint is what says so.
  • The whole page is a client component, since the blocks it composes are. It fetches nothing and holds no state above the blocks.
  • The page is Pro because blocks inside it are, which is why the licence parameters are on the command above.

Blocks in this page

Browse all blocks
PRO

navbar62

Announcement Marquee Navbar

Navbar with a dark scrolling announcement bar on top — looping links that pause on hover and fade at the edges — over a clean wordmark row with a pill CTA.

PRO

hero155

Framed Poster Hero

Full-bleed photographic hero printed inside an inset hairline frame, with the eyebrow and availability line on the top rule, an oversized statement in the middle, and notes, a pill CTA and an image credit anchored along the bottom.

PRO

gallery12

Exhibition Wall Hang

Works of different sizes hung on one centre line inside a matted wall panel, each with its own label, opening a viewer that shows the piece in a mount beside a museum wall label of medium, dimensions and year.

PRO

gallery17

Acquisition Year Ledger

Collection intake listed year by year with a summary beside each set of works, opening a viewer that scrolls rather than steps: every acquisition is a snap section and the header counter follows whichever fills the screen.

PRO

faq76

Editorial Two-Column FAQ

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.

PRO

cta71

Framed Studio Call

A quiet, gallery-like CTA centered inside a bordered frame with corner tick marks, eyebrow, oversized heading, and a single pill action.

PRO

footer118

Live Studio Clock Footer

Footer built around a live clock — the studio's local time ticks every second in oversized type, with a pulsing open/closed status, city and day, over a nav and copyright bar.