PackageTrack
Sign in Get early access

bento_layout

A Flutter package for building bento-style grid layouts using the skyline bin-packing algorithm. Tiles of varying sizes are packed without overlap or unnecessary gaps. Width fills the parent; height is stable across screen sizes.

0.2.0 SiddharthJoshi1/bento_layout

What this package is like to depend on

Last release 1 months ago

29 Jun 2026

Too new to tell

only 2 release windows

Nearly every release is documented

notes for 4 of 4 stable releases

Nothing withdrawn

no release was ever pulled

5 months old

4 releases · first in 2026

4 releases in the last 12 months

see the full history below

Release timeline

4 releases · Mar 2026 to Jun 2026
Release Pre-release

Releases

latest 4
  1. 0.2.0 29 Jun 2026
    Release notes

    Added

    • Exported SkylinePacking, BentoLayoutDetails, and BentoGridLayout — consumers can now call SkylinePacking.pack() directly to compute tile geometry and position children in a Stack or custom layout, without going through SliverGrid
    • TileEdge class and sortedEdges on BentoLayoutDetails — pre-sorted tile vertical spans for efficient scroll-offset lookups
    • BentoGridLayout now uses O(log n) binary search for getMinChildIndexForScrollOffset and getMaxChildIndexForScrollOffset instead of returning the full item range — only visible tiles are built during scroll when using SliverGrid

    Fixed

    • BentoGridLayout.getMinChildIndexForScrollOffset and getMaxChildIndexForScrollOffset previously returned 0 and length - 1 for all scroll offsets, causing Flutter to build every tile on every scroll frame regardless of visibility

    Open source →
  2. 0.1.2 09 Mar 2026
    Release notes

    Changed

    • Updated demo GIFs links in README

    Open source →
  3. 0.1.1 09 Mar 2026
    Release notes

    Changed

    • Updated README with example screenshots and demo GIFs

    Open source →
  4. 0.1.0 08 Mar 2026
    Release notes

    Initial release.

    Added

    • BentoGrid — drop-in scrollable grid widget powered by the skyline algorithm
    • BentoItem — tile wrapper accepting any Widget child and a BentoItemSize
    • BentoItemSize — 9-value enum encoding both width and height in a self-documenting name (quarterBar, halfCard, fullTower etc.)
    • BentoDimension — resolved tile dimensions as widthFraction + heightSpan
    • BentoSizingStrategy — abstract interface for custom size mappings
    • DefaultBentoSizingStrategy — built-in 3×3 size matrix (quarter/half/full × Bar/Card/Tower)
    • BentoGridDelegate — exported SliverGridDelegate for composing the grid into custom CustomScrollView scroll views alongside other slivers

    Design decisions

    • Tile widths expressed as fractions of total width — no column count required
    • Tile heights use a fixed unitHeight (default 180px) decoupled from width — heights are consistent across all screen sizes
    • Skyline slot granularity derived automatically from the smallest widthFraction present in the item list
    • Greedy bin-packing — items are placed at the lowest available position in order, preserving intentional tile sequence
    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive