{"id":18266042,"url":"https://github.com/dokar3/draggable-menu","last_synced_at":"2025-04-04T21:32:24.223Z","repository":{"id":114225114,"uuid":"586163194","full_name":"dokar3/draggable-menu","owner":"dokar3","description":"A fluid draggable menu in Jetpack Compose","archived":false,"fork":false,"pushed_at":"2024-08-09T18:16:13.000Z","size":5346,"stargazers_count":56,"open_issues_count":5,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-20T19:57:24.949Z","etag":null,"topics":["android","jetpack-compose","kotlin"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","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/dokar3.png","metadata":{"files":{"readme":"README.md","changelog":null,"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}},"created_at":"2023-01-07T06:38:06.000Z","updated_at":"2025-01-03T02:59:43.000Z","dependencies_parsed_at":"2023-10-12T18:32:47.414Z","dependency_job_id":"9d055d89-8702-4aff-a941-157d9613f4f6","html_url":"https://github.com/dokar3/draggable-menu","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dokar3%2Fdraggable-menu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dokar3%2Fdraggable-menu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dokar3%2Fdraggable-menu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dokar3%2Fdraggable-menu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dokar3","download_url":"https://codeload.github.com/dokar3/draggable-menu/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247252467,"owners_count":20908697,"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":["android","jetpack-compose","kotlin"],"created_at":"2024-11-05T11:21:21.703Z","updated_at":"2025-04-04T21:32:22.228Z","avatar_url":"https://github.com/dokar3.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A fluid draggable menu\n\nInspired by the [original work](https://twitter.com/jmtrivedi/status/1610017363218563072?s=20\u0026t=PP2YsTMOL5FYV4TWfka7cw) from Janum Trivedi ([jmtrivedi@twitter](https://twitter.com/jmtrivedi)), the draggable bouncy menu in Jetpack Compose is here.\n\n\u003cp align=\"center\"\u003e\u003cb\u003eSample GIFs\u003c/b\u003e\u003c/p\u003e\n\n| ![](images/sample_press_anchor_to_drag.gif) | ![](images/sample_press_item_to_drag.gif) | ![](images/sample_dark.gif) |\n|:-------------------------------------------:|:-----------------------------------------:|:---------------------------:|\n|            Press anchor to drag             |          Press menu item to drag          |            Dark             |\n\nThe simplified sample code would be like this:\n\n```kotlin\n@Composable\nfun MenuSample(modifier: Modifier = Modifier) {\n    val state = rememberDraggableMenuState()\n\t\n    Box(\n        modifier = modifier\n            .fillMaxSize()\n            .draggableMenuContainer(state),\n    ) {\n        Box(modifier = Modifier.align(Alignment.Center)) {\n            Icon(\n                imageVector = Icons.Default.Share,\n                contentDescription = null,\n                modifier = Modifier.draggableMenuAnchor(state),\n            )\n\n            DraggableMenu(state = state, onItemSelected = {}) {\n                items(5) {\n                    Text(\"Menu item: $it\")\n                }\n            }\n        }\n    }\n}\n```\n\n# License\n\n```\nCopyright 2023 dokar3\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdokar3%2Fdraggable-menu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdokar3%2Fdraggable-menu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdokar3%2Fdraggable-menu/lists"}