Bentogrid.js
A smart library that automatically positions elements depending on their size in a grid to create responsive and beautiful layouts.
Install / Use
/learn @mariohamann/Bentogrid.jsREADME
BentoGrid.js
A smart library that automatically positions elements depending on their size in a grid to create responsive and beautiful layouts.
- 🔧 Flexible: Easily set the size of elements via attributes
- 🧠 Smart: Automatic positioning of elements in the grid
- 🌐 Lightweight: Only 2KB (minified) with zero dependencies
- 📱 Responsive: Adaptive grid layouts for various screen sizes
- 🎨 Inspired by Apple's marketing slides and bento.me
Note The following documentation is automatically generated from the source code and just includes the API. For installation, usage and examples check out these hand-crafted docs.
Classes
Typedefs
UserConfig : Object
Breakpoint : Object
BentoGrid
Kind: global class
new BentoGrid(userConfig)
Create a new BentoGrid instance.
| Param | Type | Description |
| ---------- | ----------------------------- | -------------------------------- |
| userConfig | UserConfig | User configuration for the grid. |
bentoGrid.recalculate()
Recalculate the grid layout. Useful for cases when elements are added, removed, or visibility changes.
Kind: instance method of BentoGrid
UserConfig : Object
Kind: global typedef
Properties
| Name | Type | Default | Description |
| ----------------------- | ------------------------------- | ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- |
| [target] | string | HTMLElement | '.bentogrid' | The target element to apply the grid to. |
| [minCellWidth] | number | 100 | The minimum width of each cell in the grid. |
| [columns] | number | The number of columns to use for the grid. This overrides minCellWidth. | |
| [cellGap] | number | 0 | The space between each cell in the grid. |
| [aspectRatio] | number | 1/1 | The aspect ratio of each cell in the grid. |
| [breakpoints] | Object.<number, Breakpoint> | Breakpoints to set responsive grid behavior. minWidth looks at breakpointReference. | |
| [breakpointReference] | string | 'target' | Select if the breakpoints should reference to the target's or the window's width. |
| [balanceFillers] | boolean | false | Whether to balance the position of the fillers. If set, they change their position with other elements. |
Breakpoint : Object
Kind: global typedef
Properties
| Name | Type | Description |
| ---------------- | ---------- | ----------------------------------------------------------------------- |
| [minCellWidth] | number | The minimum width of each cell in the grid. |
| [cellGap] | number | The space between each cell in the grid. |
| [columns] | number | The number of columns to use for the grid. This overrides minCellWidth. |
| [aspectRatio] | number | The aspect ratio of each cell in the grid. |
Related Skills
node-connect
350.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
350.8kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
