Skip to content

[Skill idea] flutter-create-bottom-sheet-flow — scaffold a typed-result bottom sheet #109

@cdmunoz

Description

@cdmunoz

Environment

  • Language model: Claude Opus 4.7
  • Agent harness: Claude Code
  • Project type: Production Flutter app

Problem

Bottom sheets are one of the most common UX patterns in production Flutter apps, and one of the most frequently misimplemented:

  • Wrong route type (MaterialPageRoute instead of a transparent route)
  • Missing typed result on close (forcing callers to dynamic-cast)
  • Height management mistakes (fitToContent vs heightFactor, max-height clamping)
  • isDismissible / enableDrag / useSafeArea defaults inconsistent across the app

The current Navigation/Routing roadmap has flutter-implement-imperative-navigation (P1) and flutter-setup-declarative-routing (published), but no skill addresses the bottom-sheet flow specifically.

Proposed skill

Name: flutter-create-bottom-sheet-flow

Description (draft):

Scaffold a bottom sheet route with typed pop result, height management (fitToContent vs fractional height), and dismissible/drag configuration. Use when adding a modal flow that returns data to its caller, such as a confirmation, picker, or detail panel.

Decisions the skill captures:

  • Typed Result class vs nullable return
  • fitToContent (max 70% height recommended) vs fixed heightFactor
  • isDismissible + enableDrag policy
  • Caller-side wiring (how the parent ViewModel triggers and consumes the result)

Why a dedicated skill

Bottom sheets sit at the intersection of routing + UI + state contract. A general "navigation" skill won't cover the result-typing and height-management decisions specific to sheets. Doing it as a separate skill keeps both skills small and focused.

Real-world reference

We maintain this as an internal skill and it eliminated a recurring class of "sheet pops dynamic, caller crashes" bugs. Happy to share the template structure.

Roadmap fit

Sits in the Navigation and Routing category alongside flutter-implement-imperative-navigation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2A bug or feature request we're likely to work onSkill

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions