Ballmac UI home

Bento Grid

A responsive bento layout of feature cards that span columns and rows. Each BentoCard has a background visual slot, icon, title and description, and a link that slides up on hover or focus.

Deploy to every region

Push once; live in 35 regions in under a minute.

See regions

Uptime you can show

Public status page included.

Learn more

Integrations

Plug in the tools you already use.

Browse

Keyboard first

Every action is in the command menu.

Learn more

Branch previews

A live URL for every pull request.

Learn more

Installation

$ pnpm dlx shadcn@latest add @ballmac/bento-grid

Usage

import { BentoGrid, BentoCard } from "@/components/ballmac/bento-grid"

The full example is in the Code tab above.

Examples

Two columns

Secure by default

Every project starts with SSO, audit logs and encrypted secrets turned on.

Passkeys

Sign in without passwords.

Audit log

Who changed what, kept for a year.

Bring your own keys

Store data encrypted with keys you control, rotated on your schedule.

Read the security docs

API reference

<BentoGrid>

PropTypeDefault
columns

Columns once the grid is wider than 36rem; narrower grids stack in one column.

2 | 3 | 43
rowHeight

Minimum height of one row, any CSS length.

string"13rem"

<BentoCard>

PropTypeDefault
colSpan

Columns the card spans in the wide layout.

1 | 2 | 3 | 41
rowSpan

Rows the card spans in the wide layout.

1 | 21
background

Decorative visual that fills the card behind the text; it fades out toward the text.

MediaSource—
icon

Small icon shown above the title.

React.ReactNode—
title*

Card title.

React.ReactNode—
description

One or two lines under the title.

React.ReactNode—
href

Makes the whole card a link to this URL.

string—
cta

Label of the link revealed on hover and focus.

string"Learn more"

Also accepts the standard attributes of its root element.

Accessibility

KeyAction
TabFocuses the card's link; the whole card is its click target and shows a focus ring

Use with AI

<BentoGrid columns={3}> with <BentoCard colSpan rowSpan icon title description href background />. The grid responds to its own width (container queries): one column below 36rem. The background slot takes any decorative node, such as animated-grid, marquee or number-ticker visuals. With the shadcn MCP server set up (guide), ask your agent:

Add the Ballmac UI Bento Grid (@ballmac/bento-grid) to this project with the shadcn MCP, then use it where it fits.

Use it for

  • Landing-page feature sections with 4–7 features of different weight
  • Product overviews where each tile shows a small live visual
  • Dashboard home pages with shortcuts

Not for

  • Uniform lists of equal items (use a plain grid of cards)
  • Long text content; cards hold one or two lines

Registry JSON: https://ui.ballmac.com/r/bento-grid.json

Credits

Free to use in personal and commercial projects.