{"id":31299378,"url":"https://github.com/mattrltrent/dragsheet","last_synced_at":"2026-03-09T04:04:06.453Z","repository":{"id":295162982,"uuid":"989274087","full_name":"mattrltrent/dragsheet","owner":"mattrltrent","description":"Physics-y, bouncy, draggable sheet \u0026 modal for Flutter. Built to fill a gap I hit in my own app.","archived":false,"fork":false,"pushed_at":"2025-05-24T20:21:37.000Z","size":308,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-20T04:08:02.582Z","etag":null,"topics":["bottom-sheet","bouncy-sheet","draggable-sheet","physics-sheet"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/dragsheet","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mattrltrent.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"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,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-23T19:35:04.000Z","updated_at":"2025-05-31T06:59:01.000Z","dependencies_parsed_at":"2025-05-24T01:18:42.399Z","dependency_job_id":"969b6111-930f-4d7f-a704-c9e8f0a163d2","html_url":"https://github.com/mattrltrent/dragsheet","commit_stats":null,"previous_names":["mattrltrent/dragsheet"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mattrltrent/dragsheet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattrltrent%2Fdragsheet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattrltrent%2Fdragsheet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattrltrent%2Fdragsheet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattrltrent%2Fdragsheet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mattrltrent","download_url":"https://codeload.github.com/mattrltrent/dragsheet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattrltrent%2Fdragsheet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30282557,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T02:57:19.223Z","status":"ssl_error","status_checked_at":"2026-03-09T02:56:26.373Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["bottom-sheet","bouncy-sheet","draggable-sheet","physics-sheet"],"created_at":"2025-09-25T00:58:47.103Z","updated_at":"2026-03-09T04:04:04.381Z","avatar_url":"https://github.com/mattrltrent.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dragsheet: Bouncy, Fun, \u0026 Draggable ✨\n\nSimple Flutter package for creating bouncy, fun, and most importantly *draggable* sheets.\n\nDeveloped because I wanted this for my own app, was familiar with the React Native versions of this, but couldn't find a matching one in the Flutter ecosystem.\n\n## Examples\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/mattrltrent/random_assets/blob/main/ex-ezgif.com-video-to-gif-converter.gif?raw=true\" target=\"_blank\"\u003e\n        \u003cimg\n          src=\"https://github.com/mattrltrent/random_assets/blob/main/ex-ezgif.com-video-to-gif-converter.gif?raw=true\"\n          alt=\"demo gif 1\"\n          style=\"display: block; max-width: 100%; height: auto; max-height: 400px; margin: auto;\"\n        /\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/mattrltrent/random_assets/blob/main/ex2-ezgif.com-video-to-gif-converter-2.gif?raw=true\" target=\"_blank\"\u003e\n        \u003cimg\n          src=\"https://github.com/mattrltrent/random_assets/blob/main/ex2-ezgif.com-video-to-gif-converter-2.gif?raw=true\"\n          alt=\"demo gif 2\"\n          style=\"display: block; max-width: 100%; height: auto; max-height: 400px; margin: auto;\"\n        /\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/mattrltrent/random_assets/blob/main/ex3-ezgif.com-video-to-gif-converter.gif?raw=true\" target=\"_blank\"\u003e\n        \u003cimg\n          src=\"https://github.com/mattrltrent/random_assets/blob/main/ex3-ezgif.com-video-to-gif-converter.gif?raw=true\"\n          alt=\"demo gif 3\"\n          style=\"display: block; max-width: 100%; height: auto; max-height: 400px; margin: auto;\"\n        /\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\nThis demo \"sign up\" [blurry sheet](https://github.com/mattrltrent/dragsheet/blob/main/example/lib/demo_sheet.dart) is not included with the package. I created it to demonstrate what you _are capable of doing_ with the `dragsheet` package.\n\n## Usage\n\n1. Initialize the controller.\n    ```dart\n    final controller = DragSheetController();\n    ```\n\n2. Open `YourWidget` via the controller.\n    ```dart\n    controller.show(\n        context,\n        (ctx) =\u003e YourWidget(),\n    ),\n    ```\n\n3. If you want to close the sheet, use the controller.\n    ```dart\n    controller.close();\n    ```\n\n4. If you want to listen to the state of the sheet, use the controller.\n    ```dart\n    controller.addListener(() {\n        print(controller.isOpen);\n    });\n    ```\n\n5. Remember to `dispose` of the controller when you're done with it.\n    ```dart\n    @override\n    void dispose() {\n        super.dispose();\n        controller.dispose();\n    }\n    ```\n\n6. If you care about customization, you won't be disapointed. However, the defaults should be solid enough. The main properties to know about are `shrinkWrap`, which will make the dragsheet shrink to the size of the child you provide it, and if `shrinkWrap` is true, `closeOnShrinkWrapTap`, which will close the sheet when you tap outside of the sheet.\n    ```dart\n    void show(\n        BuildContext context,\n        WidgetBuilder builder, {\n        bool shrinkWrap = false,\n        bool closeOnShrinkWrapTap = true, \n        double minScale = 0.85,\n        double maxScale = 1.0,\n        double minRadius = 0.0,\n        double maxRadius = 30.0,\n        double minOpacity = 0.0,\n        double maxOpacity = 0.5,\n        Duration entranceDuration = const Duration(milliseconds: 200),\n        Duration exitDuration = const Duration(milliseconds: 200),\n        Duration gestureFadeDuration = const Duration(milliseconds: 200),\n        Duration programmaticFadeDuration = const Duration(milliseconds: 200),\n        double effectDistance = 220.0,\n        BgOpacity? bgOpacity,\n        double swipeVelocityMultiplier = 2.5,\n        double swipeAccelerationThreshold = 50.0,\n        double swipeAccelerationMultiplier = 12.0,\n        double swipeMinVelocity = 1000.0,\n        double swipeMaxVelocity = 10000.0,\n        double swipeFriction = 0.09,\n        VoidCallback? onShow,\n        VoidCallback? onDismiss,\n        Duration opacityDuration = const Duration(milliseconds: 200),\n        ApplyBorderRadius applyBorderRadius = ApplyBorderRadius.toTop,\n    })\n    ```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattrltrent%2Fdragsheet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmattrltrent%2Fdragsheet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmattrltrent%2Fdragsheet/lists"}