Package selection guidance compiled from public package information, community data, and project usage.
A Flutter package that enables responsive grid layouts and lists across multiple platforms. It automatically adjusts column counts and spacing based on screen size, ensuring optimal UI presentation on Android, iOS, Web, macOS, Windows, and Linux. The package simplifies creating adaptive interfaces without writing complex media query logic. Ideal for dashboards, product catalogs, and content grids that need to scale gracefully.
Use cases
Building responsive dashboards
Creating adaptive product grids
Designing cross-platform layouts
Displaying dynamic content in rows
Implementing fluid list structures
Key features
Auto-adjusts columns by screen size
Supports all major Flutter platforms
Simple API with minimal setup
Customizable spacing and alignment
Built-in responsive breakpoints
Suitable for
Developers building multi-platform apps
UI designers needing flexible layouts
Projects requiring adaptive content grids
Teams prioritizing responsive design
Apps targeting diverse device sizes
Considerations
May require tuning for complex nested layouts
Performance impact on very large datasets
Limited customization beyond basic grid settings
Not ideal for highly dynamic or animated grids
Depends on correct use of constraints in parent widgets
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
responsive_grid
Responsive Grid Layout, List and many Utilities for Flutter, to achieve good UI look and feel for different screen sizes
Responsive Grid Layout
With ResponsiveGridRow and ResponsiveGridCol you can get the same behavior of bootstrap Grid System
Give every col the width it shall occupy at every size category assuming the total width is 12 (by default)
ResponsiveGridList works differently in that you only specify a desired width for the items and spacing, and it will decide how many items shall fit in a line, and the width of the item and spacing will change (only small change) to fill the entire width
A conditional value on size tier, may be used to achieve any complicated behavior, for example say you have a GridView you can make the crossAxisCount increase with the width
To create widgets conditionally for each specified available width for it
ResponsiveLocalLayoutBuilder
To Layout widgets conditionally for each specified available width for them, for example say you want to put children inside a Column if available space width is less than 500 and in a Row if larger