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
Light­weight
Only 2KB (minified) with zero dependencies
Responsive
Adaptive grid layouts for various screen sizes

Installation

HTML

<script type="module">
	import BentoGrid from "https://cdn.jsdelivr.net/npm/@bentogrid/core@1.1.1/BentoGrid.min.js";
</script>

npm

npm i @bentogrid/core
import BentoGrid from "@bentogrid/core";

Basic Usage

<div class="bentogrid">
	<div data-bento="1x1"></div>
	<div data-bento="2x2"></div>
	<div data-bento="2x1"></div>
	<!-- Add elements or fillers -->
</div>
const myBento = new BentoGrid({
	// Add configuration options
});

Elements vs. Fillers

Elements

Fillers

Example 1: Unstyled Fillers

#bentogrid > *[data-bento] {
  @apply bg-sand-200;
}

Example 2: Styled Fillers

#bentogrid > * {
  @apply bg-sand-200;
}
#bentogrid .bento-filler {
  @apply bg-black;
}

Example 3: Individual Fillers (automatically looped)

<div id='bentogrid'>
  <div data-bento='2x2'></div>
  ...
  <div class='bg-water-300'></div>
  <div class='bg-water-600'></div>
  <div class='bg-water-900'></div>
</div>

UserConfig

target

cellGap

aspectRatio

balanceFillers

minCellWidth

columns

breakpoints

breakpointReference

Breakpoint

cellGap

aspectRatio

minCellWidth

columns

Hint: Further documentation is coming soon.