Visit The Studio Bento

(Come and see)

The studio is a real place with a real doorbell.

Concrete-and-timber facade of a design studio
The front, second floor up

Auralis Studio

Scheepmakerskade 34

3011 VX Rotterdam

Netherlands

Get directions
(Open to visitors)
Monday to Thursday
10:00 to 18:00
Friday
10:00 to 15:00
Weekends
By arrangement
Studio interior with raw concrete and a long shared worktable
The table everything happens on
Stack of books and a single desk lamp
The library, borrowable

Coffee is decent, the lift is slow

Someone is always at the long table, and there is usually something on press.

Arrange a visit
About this block

Visit The Studio BentoPRO

Location mosaic mixing photographic tiles captioned on their own scrim with an inverted address tile carrying a directions link, a soft opening-hours tile and a full-width bordered visit row whose pill CTA sits opposite the copy.

Bento10: Visit The Studio Bento

A contact section built from the place itself. Photographs of the building caption themselves on their own scrims, an inverted tile carries the address and directions link, a ruled tile lists opening hours, and a full-width bordered tile closes with the CTA.

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.

Radix flavor

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

Base UI flavor

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

This installs the block to components/beste/block/bento10.tsx plus the badge7 eyebrow and button12 pill button it uses.

Quick start

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

tsx
import { Bento10, bento10Demo } from "@/components/beste/block/bento10";

export default function Page() {
  return <Bento10 {...bento10Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Bento10 } from "@/components/beste/block/bento10";

export default function Page() {
  return (
    <Bento10
      badge={{ label: "Come and see" }}
      heading="The studio is a real place with a real doorbell."
      labels={{ hoursTitle: "Open to visitors" }}
      images={[
        { src: "/studio/front.jpg", alt: "Studio facade", caption: "The front, second floor up" },
        { src: "/studio/table.jpg", alt: "Shared worktable", caption: "The table everything happens on" },
      ]}
      address={{
        title: "Auralis Studio",
        lines: ["Scheepmakerskade 34", "3011 VX Rotterdam", "Netherlands"],
        linkLabel: "Get directions",
        href: "https://maps.example.com/auralis",
      }}
      hours={[
        { title: "Monday to Thursday", value: "10:00 to 18:00" },
        { title: "Friday", value: "10:00 to 15:00" },
      ]}
      visit={{
        title: "Coffee is decent, the lift is slow",
        description: "Someone is always at the long table.",
        buttonLabel: "Arrange a visit",
        href: "/contact",
      }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Eyebrow label rendered as a Badge7
headingstringSection heading above the mosaic
imagesStudioImage[][]Photographic tiles; the first one takes the tall lead tile
addressAddressTileInverted tile with the postal address and a directions link
hoursOpeningHour[][]Ruled opening-hours list
visitVisitTileFull-width bordered tile holding the Button12 CTA
labelsBento10Labels{}Fixed strings that are not content: the hours tile's eyebrow
classNamestringExtra classes for the outer <section>
ts
type StudioImage = {
  src: string;
  alt: string;
  caption: string;
};

type AddressTile = {
  title: string;
  lines: string[];
  linkLabel: string;
  href: string;
};

type OpeningHour = {
  title: string;
  value: string;
};

type VisitTile = {
  title: string;
  description: string;
  buttonLabel: string;
  href: string;
};

type Bento10Labels = {
  hoursTitle?: string;
};

Behavior notes

  • This mosaic runs on halves rather than sixths: the lead photograph and the address share the first band at md:col-span-3 each, with the photograph also taking md:row-span-2 so the hours tile slots in beneath the address.
  • The address is a string[], so a three-line Dutch address and a five-line American one both render without changing the block.
  • Opening hours render as a real dl with rows separated by border-t border-current/10; the row is flex-wrap with items-baseline, so a long day label and its time stay aligned and wrap cleanly instead of colliding.
  • Every caption sits inside its picture on a gradient scrim, which is what keeps the section readable when the tiles stack into one column.
  • The address tile is the only inverted surface, so the section has one dark anchor; its text-background tokens are hardcoded because that surface is fixed rather than adaptive.
  • The CTA tile spans all six columns and wraps its button with shrink-0, so on a narrow screen the button drops under the text at full size instead of being squeezed.
  • Photographs hold aspect-[4/3] below md and switch to md:aspect-auto, letting md:auto-rows-[minmax(13rem,auto)] decide their height on desktop.

More Bento blocks

View all Bento
PRO

bento2

Studio Summary Bento

Studio mosaic whose lead tile floats a mood-board media piece over a dotted field between its own eyebrow and statement, beside a photographic tile captioned on its scrim, an inverted figure tile, a soft quote tile and a bordered CTA tile.

PRO

bento7

Studio People Bento

Team mosaic where portraits carry their name and role inside the tile on a scrim, interleaved with an inverted quote tile and a wide soft tenure figure tile that closes the grid flush.

PRO

bento6

Object Study Bento

Product mosaic pairing a two-row hero photograph captioned on its scrim with a tall specification tile, then two square macro tiles that carry their caption inside and an inverted figure tile closing the row.

PRO

bento15

Practice Bento

One mosaic of six tiles: a large photograph that drifts inside its tile, an ink quote tile with film grain, a serif figure that counts up, a small photograph, an hours sheet and a call-to-action tile with a sliding-marker pill, each rising into view in turn.

PRO

bento9

Editorial Issue Bento

Magazine mosaic whose cover story fills a two-row photographic tile with its category and page count on the scrim, beside an inverted figure tile, a bordered publication note and three soft article tiles.

PRO

bento3

Selected Work Bento

Work mosaic on a six-column track mixing photographic tiles that carry their caption inside on a gradient scrim with a soft statement tile and an inverted figure tile, the lead project spanning four columns and two rows.