Shader
background="shader"
A feature tile for a bento grid
A heading over a content area that holds anything, seated in a safe inset so it never runs under the heading, on a shader pair, a plain surface or nothing. Pass expanded content and the whole tile opens into an overlay.
The default is a shader pair: a wash of light in the bottom-left corner with a line texture laid over it. Solid is the container surface alone, and transparent leaves only the border and the content.
background="shader"
background="solid"
background="transparent"
Six pairs, and pair N is ambient colour N with texture N. Tiles rotate through them by their position in the grid, so shader tiles side by side always differ, and highlight pins one. Both halves follow the theme’s ambient colours and share one strength.
Ambient 1 with dots
Ambient 2 with lines
Ambient 3 with rings
Ambient 4 with grid
Ambient 5 with waves
Ambient 6 with rays
The content area takes anything. Align places it at the top, middle or foot of the space under the heading, and content that does not fit fades out at the edge it overflows rather than being cut. The area answers container queries against the tile’s own width, so a scene can drop a part when its tile is narrow instead of squeezing every part until something truncates.
Seven rows in a fixed height
The stat drops out in a narrow tile
With expanded content the whole tile is a control. Hovered, its border takes the action colour, and opening morphs the tile into an overlay where the browser supports it. Escape closes the overlay and returns focus to the tile.
// From the npm package
import { BentoTile } from 'rift-ds/components/BentoTile/BentoTile';
// Or as source you own, via the shadcn CLI
npx shadcn@latest add https://rift-ds.com/r/bento-tile.json