패키지, 저장소 및 앱 카테고리 검색

family_bottom_sheet 표지
패키지 상세v0.1.0

family_bottom_sheet

내부에 네비게이터처럼 작동하는 부드럽고 사용자 정의 가능한 다중 페이지 하단 시트를 만들 수 있는 패키지입니다.

AndroidiOSWebmacOSWindowsLinux
30일 다운로드
732
좋아요
84
Pub 점수
160

패키지 설치

flutter pub add family_bottom_sheet

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

FamilyBottomSheet은 Flutter 패키지로, 개발자가 부드럽고 다중 페이지의 하단 시트를 만들 수 있게 해주며, 하단 시트 내에서 Navigator와 유사한 동작을 하는 원활한 탐색 전환 기능을 제공합니다. 모든 주요 플랫폼에서 사용자 정의 가능한 레이아웃과 애니메이션을 지원하여 깊은 탐색이 필요한 복잡한 하단 시트 인터페이스에 적합합니다. 기존의 Flutter 앱에 자연스럽게 통합되어 부드럽고 직관적인 상호작용을 통해 사용자 경험을 향상시킵니다.

사용 사례

  • 복잡한 바텀 시트 탐색
  • 다중 단계의 모달 워크플로우
  • 인터랙티브 온보딩 흐름
  • 동적 콘텐츠 패널
  • 폼 위자드
  • 사용자 정의 가능한 슬라이드업 인터페이스

주요 기능

  • 무결점 페이지 전환
  • 하단 시트 내부의 네비게이터와 유사한 탐색
  • 높은 사용자 정의 가능한 외관
  • 크로스 플랫폼 지원
  • 내장 애니메이션 처리
  • 기존 경로와의 간편한 통합

적합한 대상

  • 고급 바텀 시트 UI를 구축하는 개발자
  • 다중 단계 모달이 필요한 앱
  • 부드러운 전환을 찾는 디자이너
  • 모듈식 UI 컴포넌트를 사용하는 팀
  • 일관된 바텀 시트 동작이 필요한 프로젝트

고려 사항

  • 패키지 크기가 약간 증가할 수 있습니다
  • 신중한 상태 관리가 필요합니다
  • 비단순한 바텀 시트 흐름에 적합
  • 간단한 단일 페이지 시트에는 적합하지 않음
  • 다양한 화면 크기에서 테스트 필요
  • 많은 중첩 페이지로 인한 성능 영향 가능성

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

Family Modal Sheet

A customizable, navigation-friendly bottom sheet library for Flutter — designed with an API that feels familiar to showModalBottomSheet, while enabling advanced use cases like internal navigation and custom animations.

Inspired by Family's App Design System

This library was originally built as a clone of the dynamic tray system for the Family app — designed to handle complex user flows, internal navigation, and visually consistent modal sheets throughout the product.

Why does this exist?

In many apps, a modal bottom sheet isn't just a single static view — it's a flow.

We needed a solution that could:

  • Handle multiple pages inside a modal sheet
  • Animate smoothly between pages
  • Maintain visual consistency with system sheets
  • Be flexible for future use cases
  • Stay Flutter-idiomatic and lightweight

This package generalizes those patterns into a library you can use in your own apps.

Get Started

Install the library to your project by running:

flutter pub add family_modal_sheet

Demo



Example app

Usage

Show a simple modal sheet:

await FamilyModalSheet.show<void>(
    context: context,
    contentBackgroundColor: Colors.white,
    builder: (ctx) {
    return const MyBottomSheetContent();
    },

    // Optional configurations

);

If you want something more similar to the look and feel of the Flutter bottom sheet, use the FamilyModalSheet.showMaterialDefault method. It comes with sensible defaults that resemble the standard Flutter modal bottom sheet, but still allows for full customization if needed.

Push a New Page

FamilyModalSheet.of(context).pushPage(AnotherCustomPage());

Pop the Current Page

FamilyModalSheet.of(context).popPage();

Note: If it's the last page in the sheet stack, calling popPage() will automatically close the entire bottom sheet.

Check if you can pop

final bool canPop = FamilyModalSheet.of(context).canPopPage();

Use this to determine if calling popPage() will pop a page or dismiss the entire sheet

Get total page count

final int pageCount = FamilyModalSheet.of(context).getTotalPageCount();

Returns the number of pages currently in the stack

Customization

FamilyModalSheet.show exposes a wide range of configuration options — allowing you to fine-tune both the bottom sheet container and the content area independently.

This design gives you full control while following a clean, opinionated API similar to Flutter's showModalBottomSheet.

Content Area Customization (the page stack region)

  • builder - Build the current page widget. This is typically the first page in your sheet's navigation stack
  • contentBackgroundColor - Background color for the content area
  • mainContentBorderRadius - Optional border radius to apply around the content area.
  • mainContentPadding - Optional padding applied inside the content area, wrapping all pages.
  • safeAreaMinimum - Minimum safe area padding (can also be used to add bottom padding to the bottom sheet).
  • mainContentAnimationStyle - Custom animation configuration for transitions between pages (push/pop).

Bottom Sheet Container Customization (the outer modal appearance)

  • backgroundColor - Background color for the entire sheet (defaults to Colors.transparent)
  • elevation - Shadow elevation for the sheet container
  • shape - Custom shape for the sheet container (usually a rounded rectangle).
  • clipBehavior - Clip behavior for the sheet container shape
  • constraints - Optional size constraints for the entire sheet
  • barrierColor - Color of the modal barrier behind the sheet
  • barrierLabel - Accessibility label for the barrier
  • sheetAnimationStyle - Animation configuration for how the sheet appears/disappears from the screen

Behavior & Interaction Customization

  • enableDrag - Whether the sheet can be dismissed via swipe down gesture.
  • showDragHandle- Optionally display a drag handle at the top of the sheet.
  • isDismissible- Whether tapping outside the sheet dismisses it.
  • isScrollControlled- Expand the sheet beyond its default max height (good for full-screen sheets).
  • scrollControlDisabledMaxHeightRatio- When isScrollControlled is false, this ratio determines the maximum height the sheet can occupy relative to the screen height
  • useSafeArea- Whether to automatically apply safe area insets to the outer sheet.
  • useRootNavigator- Whether to push the sheet to the root navigator.
  • routeSettings- Optional route metadata.
  • anchorPoint- Controls where the sheet's entrance animation originates.
  • transitionAnimationController- Provide a custom animation controller if you want to synchronize with other animations.

Inspiration

This package is inspired by the Family app's bottom sheet design system — where bottom sheets act as dynamic navigation surfaces for key user flows.

This package is also inspired by work by the Wolt team on wolt_modal_sheet package

Contributors

Contributing

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the family_bottom_sheet repo on GitHub.
  2. Clone your forked repo locally.
  3. Create a new branch from the main branch.
  4. Make your changes.
  5. Create a pull request.

카테고리

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.