{"id":13685192,"url":"https://github.com/surfstudio/flutter-bottom-sheet","last_synced_at":"2025-04-07T05:11:14.986Z","repository":{"id":39754393,"uuid":"384332905","full_name":"surfstudio/flutter-bottom-sheet","owner":"surfstudio","description":"Custom bottom sheet widget, that can resize by drag and then scroll. Made by Surf 🏄","archived":false,"fork":false,"pushed_at":"2024-04-12T08:23:56.000Z","size":23564,"stargazers_count":145,"open_issues_count":2,"forks_count":31,"subscribers_count":6,"default_branch":"main","last_synced_at":"2024-04-12T15:14:29.557Z","etag":null,"topics":["flutter"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/surfstudio.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2021-07-09T05:38:22.000Z","updated_at":"2024-04-15T06:46:07.367Z","dependencies_parsed_at":"2024-01-14T16:09:52.184Z","dependency_job_id":"c73a787d-932b-44b9-84b1-732420c3d890","html_url":"https://github.com/surfstudio/flutter-bottom-sheet","commit_stats":{"total_commits":64,"total_committers":15,"mean_commits":4.266666666666667,"dds":0.71875,"last_synced_commit":"128ffd30f50e28c7b63050a9fe9fbfd1b320edfe"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surfstudio%2Fflutter-bottom-sheet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surfstudio%2Fflutter-bottom-sheet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surfstudio%2Fflutter-bottom-sheet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/surfstudio%2Fflutter-bottom-sheet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/surfstudio","download_url":"https://codeload.github.com/surfstudio/flutter-bottom-sheet/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247595335,"owners_count":20963943,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flutter"],"created_at":"2024-08-02T14:00:45.843Z","updated_at":"2025-04-07T05:11:14.954Z","avatar_url":"https://github.com/surfstudio.png","language":"Dart","funding_links":[],"categories":["Dart"],"sub_categories":[],"readme":"# Bottom Sheet\n\n\u003cimg src=\"https://raw.githubusercontent.com/surfstudio/flutter-open-source/main/assets/logo_black.png#gh-light-mode-only\" width=\"200\"\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/surfstudio/flutter-open-source/main/assets/logo_white.png#gh-dark-mode-only\" width=\"200\"\u003e\n\nMade by [Surf 🏄‍♂️🏄‍♂️🏄‍♂️](https://surf.dev/)\n\n[![Build Status](https://shields.io/github/actions/workflow/status/surfstudio/flutter-bottom-sheet/on_pull_request.yml?logo=github\u0026logoColor=white)](https://github.com/surfstudio/flutter-bottom-sheet)\n[![Coverage Status](https://img.shields.io/codecov/c/github/surfstudio/flutter-bottom-sheet?logo=codecov\u0026logoColor=white)](https://codecov.io/gh/surfstudio/flutter-bottom-sheet)\n[![Pub Version](https://img.shields.io/pub/v/bottom_sheet?logo=dart\u0026logoColor=white)](https://pub.dev/packages/bottom_sheet)\n[![Pub Likes](https://badgen.net/pub/likes/bottom_sheet)](https://pub.dev/packages/bottom_sheet)\n[![Pub popularity](https://badgen.net/pub/popularity/bottom_sheet)](https://pub.dev/packages/bottom_sheet/score)\n![Flutter Platform](https://badgen.net/pub/flutter-platform/bottom_sheet)\n\n## About\n\nCustom bottom sheet widget that can be resized in response to drag gestures and then scrolled.\n\n## Overview\n\nMain classes:\n\n1. [FlexibleBottomSheet](lib/src/flexible_bottom_sheet.dart)\n2. [BottomSheetRoute and showing methods](lib/src/flexible_bottom_sheet_route.dart)\n\nFlexible and scrollable bottom sheet.\n\nAll you have to do is call `showFlexibleBottomSheet()` and you'll get a popup that looks like a modal bottom sheet and can be resized by dragging it up and down and scrolled when expanded.\n\nThere are 2 types of BottomSheets:\n\n1. BottomSheet\n2. StickyBottomSheet\n\n## Example\n\n### Simple BottomSheet\n\n![Demo](https://raw.githubusercontent.com/surfstudio/flutter-bottom-sheet/main/assets/open-flexible-bottom-sheet.gif)\n\n![Demo](https://raw.githubusercontent.com/surfstudio/flutter-bottom-sheet/main/assets/example-web.gif)\n\nTo show bottomSheet, use :\n\n```dart\nshowFlexibleBottomSheet(\n  minHeight: 0,\n  initHeight: 0.5,\n  maxHeight: 1,\n  context: context,\n  builder: _buildBottomSheet,\n  anchors: [0, 0.5, 1],\n  isSafeArea: true,\n);\n\nWidget _buildBottomSheet(\n    BuildContext context,\n    ScrollController scrollController,\n    double bottomSheetOffset,\n  ) {\n    return Material(\n        child: Container(\n          child: ListView(\n            controller: scrollController,\n            ...\n          ),\n        ),\n      );\n  }\n```\n\n### BottomSheet with height based on content\n\n![Demo](https://raw.githubusercontent.com/surfstudio/flutter-bottom-sheet/main/assets/example-with-height-base-on-content.gif)\n\n```dart\nshowFlexibleBottomSheet(\n  minHeight: 0,\n  initHeight: 0.8,\n  maxHeight: 0.8,\n  context: context,\n  builder: _buildBottomSheet,\n  isExpand: false,\n);\n\nWidget _buildBottomSheet(\n    BuildContext context,\n    ScrollController scrollController,\n    double bottomSheetOffset,\n  ) {\n    return Material(\n        child: Container(\n          child: ListView(\n              controller: scrollController,\n              shrinkWrap: true,\n              ...\n          ),\n        ),\n      );\n  }\n```\n\n### Sticky BottomSheet\n\n![Demo](https://raw.githubusercontent.com/surfstudio/flutter-bottom-sheet/main/assets/open-sticky-bottom-sheet.gif)\n\nTo show sticky BottomSheet, use:  \n**You have to return SliverChildListDelegate from builder !!!**\n\n```dart\nshowStickyFlexibleBottomSheet(\n  minHeight: 0,\n  initHeight: 0.5,\n  maxHeight: 1,\n  headerHeight: 200,\n  context: context,\n  backgroundColor: Colors.white,\n  headerBuilder: (BuildContext context, double offset) {\n    return Container(\n      ...\n    );\n  },\n  builder: (BuildContext context, double offset) {\n    return SliverChildListDelegate(\n      \u003cWidget\u003e[...],\n    );\n  },\n  anchors: [0, 0.5, 1],\n);\n```\n\n## Installation\n\nAdd `bottom_sheet` to your `pubspec.yaml` file:\n\n```yaml\ndependencies:\n  bottom_sheet: $currentVersion$\n```\n\n\u003cp\u003eAt this moment, the current version of \u003ccode\u003ebottom_sheet\u003c/code\u003e is \u003ca href=\"https://pub.dev/packages/bottom_sheet\"\u003e\u003cimg style=\"vertical-align:middle;\" src=\"https://img.shields.io/pub/v/bottom_sheet.svg\" alt=\"bottom_sheet version\"\u003e\u003c/a\u003e.\u003c/p\u003e\n\n## Changelog\n\nAll notable changes to this project will be documented in [this file](./CHANGELOG.md).\n\n## Issues\n\nTo report your issues,  submit them directly in the [Issues](https://github.com/surfstudio/flutter-bottom-sheet/issues) section.\n\n## Contribute\n\nIf you would like to contribute to the package (e.g. by improving the documentation, fixing a bug or adding a cool new feature), please read our [contribution guide](./CONTRIBUTING.md) first and send us your pull request.\n\nYour PRs are always welcome.\n\n## How to reach us\n\nPlease feel free to ask any questions about this package. Join our community chat on Telegram. We speak English and Russian.\n\n[![Telegram](https://img.shields.io/badge/chat-on%20Telegram-blue.svg)](https://t.me/SurfGear)\n\n## License\n\n[Apache License, Version 2.0](https://www.apache.org/licenses/LICENSE-2.0)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsurfstudio%2Fflutter-bottom-sheet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsurfstudio%2Fflutter-bottom-sheet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsurfstudio%2Fflutter-bottom-sheet/lists"}