themx
← Back to themes

Bento Grid

playful Layout pattern

Everything in its perfect little box

Reference year: 2026

Compare this theme

Best for

SaaS, Dashboard, Portfolio

Less suitable for

  • Long articles that need a continuous reading order.

Live component preview

Try the sample controls. daisyUI uses compiled library classes; shadcn/ui uses React components from the New York registry. The three example layouts demonstrate styling with the selected tokens. All content is demo data.

Bento Grid preview

Examples

Bento Grid — Hero Section
Hero Section
Bento Grid — Card Grid
Card Grid
Bento Grid — Form
Form
Bento Grid — Dashboard Layout
Dashboard Layout

Color Palette

Primary #18181B
Secondary #3B82F6
Accent #F59E0B
Background #FAFAFA
Text #18181B

Typography

Heading: Inter
Body: Inter

Key Characteristics

  • Asymmetric grid with varied cell sizes
  • Rounded corners on all grid items
  • Subtle hover animations on cells
  • Mix of text/image/icon cells
  • Clear visual grouping
  • Minimal borders using background contrast

Tags

grid cards modular dashboard

Named after the Japanese bento lunch box with its neatly arranged compartments, the Bento Grid style has become the go-to layout pattern for feature showcases, landing pages, and dashboards. Popularized by Apple’s product pages and widely adopted across the tech industry, it arranges content into a mosaic of differently-sized cards that together form a cohesive, scannable composition.

When to Use

Bento Grid is perfect for feature overview pages, product landing pages, portfolio showcases, and SaaS dashboards. It works exceptionally well when you need to present multiple distinct pieces of information that share equal importance but vary in content type — mixing metrics, illustrations, text blocks, and interactive elements. It shines when the goal is to make dense information feel approachable and explorable.

Key Visual Elements

The layout uses CSS Grid with items spanning different numbers of rows and columns to create visual variety while maintaining alignment. Cards float on a subtle background with generous gaps (16-24px) between them. Each cell has rounded corners (12-20px border-radius) and may contain a single focused piece of content — a stat, an icon with label, a small illustration, or a short description. Background contrast between the page and cards eliminates the need for borders.

Typography

Inter is the natural choice for Bento Grid layouts, offering excellent readability at all sizes with a neutral character that lets the content structure do the talking. Use medium weight (500) for card headings and regular (400) for descriptions. Keep text concise — each cell should communicate its message at a glance.

Export style

Choose a library mapping or use the CSS variables in your own components. JSON includes the same mapping. Load the listed fonts separately.

:root {
  --tx-surface-bg: #FAFAFA;
  --tx-font-heading: "Inter", sans-serif;
  --tx-font-body: "Inter", sans-serif;
  --tx-surface-bg-image: none;
  --tx-card-bg: #FFFFFF;
  --tx-card-border: #E4E4E7;
  --tx-card-border-width: 1px;
  --tx-card-radius: 1rem;
  --tx-card-shadow: 0 1px 3px rgba(0,0,0,0.04);
  --tx-card-backdrop-blur: 0px;
  --tx-card-border-hover: #3B82F6;
  --tx-card-shadow-hover: 0 4px 12px rgba(59,130,246,0.1);
  --tx-font-heading-weight: 600;
  --tx-font-body-weight: 400;
  --tx-text-muted: rgba(24,24,27,0.6);
  --tx-text-subtle: rgba(24,24,27,0.4);
  --tx-link-color: #3B82F6;
  --tx-button-radius: 0.75rem;
  --tx-input-bg: #FFFFFF;
  --tx-input-border: #E4E4E7;
  --tx-text: #18181B;
  --tx-primary: #18181B;
  --tx-secondary: #3B82F6;
  --tx-accent: #F59E0B;
  --tx-media-filter: none;
}

Prompt Builder

Choose your project, UI library, and output. Prompts, documents, and exports use the same resolved theme values.

Example projects:

Use your own components with the exported CSS variables.

Components

Changing the page purpose selects suggested components. You can adjust them below.

Optional design layers

Apply a layout, then a surface effect, then a color mode. Fonts stay with the base theme. The output contains one final token set.

Bento Grid

Live component preview

Try the sample controls. daisyUI uses compiled library classes; shadcn/ui uses React components from the New York registry. The three example layouts demonstrate styling with the selected tokens. All content is demo data.

Optional skills

Include skill references and installation instructions for your coding agent. Selecting a skill here does not install it.

Choose daisyUI or shadcn/ui to include its official skill.

Copy this prompt into your coding assistant. The task mode applies to the UI prompt.

Generated prompt

You are building a web application using Next.js with Tailwind.
Read existing project instructions and reuse installed components where available.

## Project
Project brief: Not specified
Target users: Not specified
Page purpose: SaaS
Framework: Next.js
CSS approach: Tailwind
UI library: Custom / no library
Tone: Professional

## Visual direction
Base theme: Bento Grid (layout-pattern)
- Asymmetric grid with varied cell sizes
- Rounded corners on all grid items
- Subtle hover animations on cells
- Mix of text/image/icon cells
- Clear visual grouping
- Minimal borders using background contrast

## Resolved style
Use this final token set. It already includes the selected layers. These values take precedence over conflicting base characteristics.
Color palette: primary #18181B, secondary #3B82F6, accent #F59E0B, background #FAFAFA, text #18181B
Typography: Inter for headings, Inter for body text
Load the declared fonts with the required weights. Use system fallbacks when a font is unavailable.
```css
:root {
  --tx-surface-bg: #FAFAFA;
  --tx-font-heading: "Inter", sans-serif;
  --tx-font-body: "Inter", sans-serif;
  --tx-surface-bg-image: none;
  --tx-card-bg: #FFFFFF;
  --tx-card-border: #E4E4E7;
  --tx-card-border-width: 1px;
  --tx-card-radius: 1rem;
  --tx-card-shadow: 0 1px 3px rgba(0,0,0,0.04);
  --tx-card-backdrop-blur: 0px;
  --tx-card-border-hover: #3B82F6;
  --tx-card-shadow-hover: 0 4px 12px rgba(59,130,246,0.1);
  --tx-font-heading-weight: 600;
  --tx-font-body-weight: 400;
  --tx-text-muted: rgba(24,24,27,0.6);
  --tx-text-subtle: rgba(24,24,27,0.4);
  --tx-link-color: #3B82F6;
  --tx-button-radius: 0.75rem;
  --tx-input-bg: #FFFFFF;
  --tx-input-border: #E4E4E7;
  --tx-text: #18181B;
  --tx-primary: #18181B;
  --tx-secondary: #3B82F6;
  --tx-accent: #F59E0B;
  --tx-media-filter: none;
}
```
Use the CSS variables in your own components. Apply the heading and body font variables to their respective elements.

## Layout
- Use a modular grid with varied cell sizes. Collapse to one column on narrow screens.

## Interaction
- Give each interactive cell a visible hover and keyboard focus state.

## Suitability notes
Use these limitations to assess the chosen page purpose. Explain any mismatch before applying an unsuitable treatment.
- Bento Grid: Long articles that need a continuous reading order.

## Components
Generate the following components in this style:
- Hero
- Navbar
- Cards
- Footer

## Quality requirements
Choose section order and visual emphasis from the real content and page purpose. Add only sections needed for the task.
Use supplied content. Label sample data. Do not invent testimonials, customer logos, statistics, or compliance claims.
Every interactive control must perform its declared action or be clearly labeled as a demo.
Include loading, empty, error, success, disabled, and focus states where applicable.
Use semantic HTML, visible keyboard focus, readable text contrast, and labeled form fields.
Ensure responsive design (mobile-first). Preserve reading order and avoid horizontal page overflow.
Respect prefers-reduced-motion. Keep essential content visible when animations are disabled.

## Verification
Check representative desktop and mobile widths, keyboard interaction, and relevant component states. Run available project checks and report what was actually verified.
Use Tailwind utility classes with the declared tokens.
Product context is incomplete. Label assumptions and treat the result as a draft until the missing context is supplied.