Flutter UI
Screen construction extracted from the existing Flutter and Flutter UX skills. Sources remain Flutter's documentation and official agent skills (docs.flutter.dev and flutter/agent-plugins), the owner's responsive sizing rules, FlutterPro tips by Kamran Bekirov, ApparenceKit tips and the separately selected flutter_scale_kit package. Topic files preserve their source tags, official corrections and conflicting community views.
Apply only the routes and checks for the selected job. Read a linked skill's named file from its installed folder when available, or from the linked source. Report an unavailable required reference instead of inventing it. [skill-authoring, DISTRIBUTION.md#composing-skills]
| The job | Read |
|---|---|
| Choose the screen-building topic and its selected checks | SKILL.md |
| Responsive and adaptive layouts, parent constraints, window measurements, breakpoints, large screens, safe areas and layout errors | LAYOUT-AND-RESPONSIVE.md |
| Owner sizing rules, theme tokens, intrinsic and fluid sizing, component versus page measurements, text scaling and CSS-to-Flutter parallels | RESPONSIVE-UNITS.md |
The optional flutter_scale_kit package, setup, tokens and its disagreements with Flutter and owner sizing rules |
SCALE-KIT.md |
Brand colors, ThemeExtension, palette-based theme factories, runtime light/dark switching, font and spacing choices |
THEMING.md |
| Image sizing, loading and caching, placeholders, font/icon preloading, tabular figures and text metrics | IMAGES-AND-TYPOGRAPHY.md |
| Avatars, app bars, overlays, zoom/pan, flex, clipping, keys, Actions/Intents and widget builders | WIDGET-PATTERNS.md |
| Flutter animation timing, curves, springs, implicit animation, switcher keys, controllers and entrance sequences | ANIMATION.md |
Selected references
- For forms, focus, keyboards, navigation behavior, scrolling, press feedback, haptics or a whole-app UX review, select the corresponding flutter-ux route. [existing flutter-ux, SKILL.md]
- For screen-reader semantics, contrast, tap targets or large-text acceptance, read flutter ACCESSIBILITY.md. For localized UI and directional layout, read flutter LOCALIZATION.md. [existing flutter, ACCESSIBILITY.md and LOCALIZATION.md]
- For state, data, app routing, platform integration, testing or measured rendering cost, select the corresponding flutter route. Custom render objects remain in flutter-render-objects. [existing flutter, SKILL.md]
- For painting and media recipes, read flutter-ux PAINTING-AND-MEDIA.md; shared visual-design review remains in anti-slop-ui. [existing flutter-ux, SKILL.md]
The rules
- Base every layout decision on the available window space, read with
MediaQuery.sizeOf(context)orLayoutBuilder: never on hardware type ("phone" vs "tablet"),Platform.isAndroidor orientation, and never portrait-lock the app. [existing flutter, SKILL.md; LAYOUT-AND-RESPONSIVE.md] - Keep component measurements local and fonts and spacing in theme tokens. Follow the owner's intrinsic, fluid, component, page-skeleton and safe-area order in RESPONSIVE-UNITS.md. [Owner's rule, RESPONSIVE-UNITS.md]
- Build themes from one palette, keeping the palette and default text theme separate; retain the official API corrections alongside ApparenceKit's examples. ApparenceKit, THEMING.md
- Images hold their space and arrive calmly: size the box before load (
AspectRatioor width and height;fit:doesn't count), show a plain grey box, fade in, and show a subtle broken-image icon on failure, never a technical message; precache the icons the first screen shows during the splash. FlutterPro, FlutterPro, FlutterPro - Keep animation identity and triggers explicit: key an
AnimatedSwitcherchild on the changing value and compare the specific changed field indidUpdateWidgetbefore starting its controller. ApparenceKit, ApparenceKit - Keep the tagged alternatives visible. Scale-kit device classification and proportional sizing differ from Flutter and owner rules; animation timing and spring preferences also have source-specific alternatives. Apply the recorded choice rather than silently replacing the existing rule. SCALE-KIT.md, ANIMATION.md
Gotchas
- Device orientation and hardware class do not describe the space a component receives. Use the window or parent constraints for the selected layout. LAYOUT-AND-RESPONSIVE.md
- A plain
AnimationControllerclamps spring overshoot; the retained spring recipe requiresAnimationController.unboundedfor a bouncy simulation. FlutterPro - Flutter's
ThemeExtension<T>and a Dart extension onBuildContextare different concepts despite the community example's shared name. THEMING.md
Prove it
Run the selected topic's checks for the UI changed and report what was actually verified. For responsive layout, use LAYOUT-AND-RESPONSIVE.md; for themes, images, widgets and motion, use each selected file's Prove it section. Accessibility and localization checks apply when those routes are selected. Whole-app UX reviews and unrelated app release checks are separate scopes. [existing flutter and flutter-ux, selected topic Prove it sections]