Bento Tiles
A tray of tiles in mismatched sizes, each with a lot of corner radius.
Construction · Elevation
Height is the only signal: a two-part ambient shadow that grows with importance, and no borders or gradients at all.
Every style renders this same screen, so the only thing changing between two of them is the style. The component above is the file below, running.
Prompt
Design this interface in the Bento Tiles style. Content is packed into a tray of tiles at different sizes, each heavily rounded and separated by a consistent gap. The grid gaps are as visible as the tiles. Build every
The numbers in this prompt are printed from the tokens below, so it cannot drift from what the specimen renders.
What carries the look
- tiles at mismatched sizes
- large corner radius
- visible consistent gaps
- tray layout
What this style refuses
- uniform card sizes
- square corners
- borders between tiles
- cramped gaps
The refusals are the half that keeps generated interfaces from converging — a prompt that only says what to add gets the default look.
Tokens
Palette
#f0f0f3#0b0b0e#ffffff#17171c#e2e2e8#2b2b33#141418#f3f3f6#5a5a64#a0a0ab#c62a4c#ff7a94#ffffff#28060fShape and type
Measured contrast — body 16.15:1 light, 17.75:1 dark; secondary text 5.99:1 and 7.59:1. Every pair clears WCAG AA in both themes, checked on each build.
Specimen · Specimen.tsx
import type { CSSProperties } from "react";
/**
* Vibary · Bento Tiles
*
* A tray of tiles in mismatched sizes, each with a lot of corner radius.
*
* One complete product screen, rendered from the token object below —