Layout Lens - a Flutter widget tree checked for unbounded constraints and overflow
Paste a Flutter widget tree (and the layout error it throws, if any) and get a free constraint lint - unbounded heights and widths, Expanded outside a Flex, scrollables nested without bounds, rows that overflow - then the corrected widget tree. Free in your browser: every widget's incoming width and height worked out as bounded or unbounded, a ListView or PageView given no room, an Expanded in a Column with no height to share, Expanded, Flexible or Spacer outside a Row, Column or Flex, Positioned outside a Stack, double.infinity or a stretch across an unbounded axis, a TextField with unbounded width, rows whose fixed widths add up past the narrowest screen (the arithmetic shown), the pasted error tied to the line that throws it, the skill's checklist, a findings CSV and a widget test that pumps the screen at the narrowest and a wide size. Metered runs write the review (each finding confirmed or cleared, the cause of the error, what a scan cannot see, the fixes in order) and the whole corrected widget tree, which the page re-scans. Built on the SkillSafe skill @flutter/flutter-building-layouts, from flutter/skills (BSD-3-Clause), by the Flutter team.
gpt-terra Every public app is built from a security-scanned skill and must pass a clean scan — skill and frontend — before it can be listed. Have a skill of your own? Turn it into an app — or read the step-by-step walkthrough.