Skip to content

Bento grid

A grid of tiles in mixed sizes for showing several product details at once.

Bento

Close dashboard

Every account, every entity, one progress bar.

Matched
1,284
Exceptions
7
Days to close
3.5

Approvals on the go

Swipe to approve from your phone.

32 currencies

Revalued at month-end.

SOC 2 Type II

Audited every year.

Numbers, a quote and links

Tiles that are the content: a figure, a quotation, a filled tile and whole-tile links.

3.5 days

to close the month

Down from eleven, measured across 140 finance teams in 2026.

Start with one entity

Connect a bank feed and reconcile last month. It takes an afternoon.

Book a walkthrough
“We stopped exporting to spreadsheets in the second week. Nobody asked for them back.”
Example quote. Replace with a real, attributed one.

Changelog

What shipped this month.

Compact: a profile page

Noor Haddad

Type designer in Rotterdam. I draw text faces for long reading and teach on Thursdays.

Booking for 2027

Typefaces

Seven families.

Writing

Notes on spacing.

12

years drawing letters

Say hello

Replies within two days.

Installation

Everything ships in one stylesheet. There is nothing to import per component.

<link rel="stylesheet" href="https://mian.ro/dist/mian.css">

Prefer to own the files? /r/bento.json is a registry item with this component's CSS and example markup, ready to copy into your project with any tool that reads the open registry-item format.

Class reference

Class / attributeDescription
mn-bentoThe grid: one column, then two, then six tracks on wide sections.
mn-tileA tile. Add mn-card for the noodle’s surface. Spans 2 of 6 by default.
mn-tile-half · mn-tile-wide · mn-tile-fullSpan 3, 4 or 6 of 6 tracks.
mn-tile-tallSpan two rows.
mn-tile-titleTile heading (<h3>).
mn-tile-mediaMedia pinned to the tile’s bottom edge, bleeding to the sides. mn-tile-media-flush removes its padding.
mn-tile-figureA very large number or word: the tile is the statistic.
mn-tile-quoteA short quotation set large.
mn-tile-fillA tile filled with the primary colour. One per grid.
mn-tile-endPushes its element to the bottom of the tile.
mn-tile-arrowOn an <a class="mn-tile">: an arrow in the corner that moves on hover.
mn-bento-compactFour equal tracks instead of six: tiles span one, mn-tile-wide two. For profile and link pages.
mn-bento-rowsGives every row a minimum height so small tiles stay square-ish.

Accessibility

  • Tiles read in source order: put them in the order you want them read, and let the grid place them.
  • Keep one idea per tile with a real heading.
  • Layout answers to the section’s own width (container queries), so it works the same in a page, a sidebar or a preview.
Choose a noodle

Minimal

Flat

Pixel

Linear

Thin

Glass

Textured

Bold

Elegant

Rounded

On this page