Studio Bento Grid

(At a glance)

The studio, in one grid.

Six slots, one studio. A snapshot of how Auralis works — the belief we build on, the numbers, the rooms we make things in, and what people say once it ships.

S/01

We make monochrome feel loud.

No trends to chase, no noise to add. Auralis builds brands out of type, contrast, and restraint — systems that read at a glance and still hold up a decade later.

Launches shipped

138

Since the studio opened in 2014

Studio table layered with printed type specimens and proofs
Inside the type room

They kept cutting until only the idea was left standing — then made that idea unforgettable.

Mara VanceFounder, Halden Press
About this block

Studio Bento GridPRO

A hand-tiled monochrome bento grid mixing a statement, a stat, an image, a quote, and a CTA into one composition.

Bento1: Studio Bento Grid

A monochrome bento grid that lays a badge, heading, and description over a six-column tiled composition of five optional cards: a large statement anchor, an inverted stat figure, a framed cover image with a gradient scrim, an editorial pull-quote, and an always-present closing CTA card with a linked button.

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/bento1?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

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

This installs the block to components/beste/block/bento1.tsx.

Quick start

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

tsx
import { Bento1, bento1Demo } from "@/components/beste/block/bento1";

export default function Page() {
  return <Bento1 {...bento1Demo} />;
}

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

tsx
import { Bento1 } from "@/components/beste/block/bento1";

export default function Page() {
  return (
    <Bento1
      badge={{ label: "At a glance" }}
      heading="The studio, in one grid."
      description="A snapshot of how the studio works."
      statement={{
        index: "S/01",
        title: "We make monochrome feel loud.",
        body: "Systems built from type, contrast, and restraint.",
      }}
      stat={{ value: "138", label: "Launches shipped", caption: "Since 2014" }}
      image={{
        src: "/studio.jpg",
        alt: "Studio table layered with printed type specimens",
        caption: "Inside the type room",
      }}
      quote={{
        quote: "They kept cutting until only the idea was left standing.",
        author: "Mara Vance",
        role: "Founder, Halden Press",
      }}
      button={{ label: "Tour the studio", href: "/about" }}
      labels={{
        ctaTitle: "Want the long version?",
        ctaNote: "A 30-minute walkthrough of the whole practice.",
      }}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string }Eyebrow badge rendered above the heading via Badge7
headingstringSection heading in the intro column
descriptionstringSupporting paragraph under the heading
statementStatementCardLarge anchor card spanning four columns and two rows
statStatCardInverted figure card on a bg-foreground surface
imageImageCardFramed cover image with a gradient scrim and caption
quoteQuoteCardEditorial pull-quote card with a Quote icon
buttonActionButtonLinked CTA rendered inside the closing card via Button12
labelsBento1LabelsTitle and note text for the closing CTA card
classNamestringExtra classes for the outer <section>
ts
type StatementCard = {
  index: string;
  title: string;
  body: string;
};

type StatCard = {
  value: string;
  label: string;
  caption: string;
};

type ImageCard = {
  src: string;
  alt: string;
  caption: string;
};

type QuoteCard = {
  quote: string;
  author: string;
  role: string;
};

type ActionButton = {
  label: string;
  href: string;
};

type Bento1Labels = {
  ctaTitle: string;
  ctaNote: string;
};

Behavior notes

  • The five content cards (statement, stat, image, quote, plus the intro badge, heading, and description) each render only when their prop is present, so the grid gracefully collapses around whatever you omit.
  • The closing CTA <article> is always rendered regardless of props; only its inner heading and note depend on labels, and its Button12 depends on button, so an empty CTA card can still appear if you pass neither.
  • There are no event callbacks: the CTA is a real navigation via Button12 asChild wrapping a Next.js <Link href={button.href} />, so it always points at a URL rather than firing a handler.
  • Layout is a fixed md:grid-cols-6 composition with hardcoded spans: statement takes four columns and two rows, stat and image take two columns each, and both quote and the CTA take three columns; the row template pins minmax(220px,auto) heights.
  • The stat card inverts colors on a bg-foreground surface with text-background figures, and the image card renders a plain <img> absolutely positioned under a from-foreground/70 gradient with the caption pinned bottom-left.
  • No inline markup is parsed: heading, statement.title, and the quote are rendered as plain text, and the quote footer joins author and role with a literal separator, so passing HTML strings will show as escaped text.
  • The image element carries a transition-transform duration-500 class but no accompanying hover-scale utility, so the transition is decorative and produces no visible motion on its own.

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

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.

PRO

bento11

Product Surface Mosaic

A six-column bento mixing a lead card whose image tile floats a live metrics panel, a soft statement tile, an inverted figure tile, a second asset tile carrying an uptime strip, a hairline inclusion list, and a captioned photograph.

PRO

bento10

Visit The Studio Bento

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.

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

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.