{"id":50719953,"url":"https://github.com/FletchMcKee/liquid","last_synced_at":"2026-06-27T00:01:03.279Z","repository":{"id":310736482,"uuid":"1016922431","full_name":"FletchMcKee/liquid","owner":"FletchMcKee","description":"Liquid RuntimeShader effects for Compose Multiplatform","archived":false,"fork":false,"pushed_at":"2026-06-26T21:17:46.000Z","size":166102,"stargazers_count":552,"open_issues_count":5,"forks_count":21,"subscribers_count":5,"default_branch":"trunk","last_synced_at":"2026-06-26T22:19:17.551Z","etag":null,"topics":["compose-multiplatform","graphics-library","shader"],"latest_commit_sha":null,"homepage":"https://fletchmckee.github.io/liquid/","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/FletchMcKee.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-09T18:28:28.000Z","updated_at":"2026-06-26T21:01:00.000Z","dependencies_parsed_at":"2025-12-13T02:00:48.843Z","dependency_job_id":null,"html_url":"https://github.com/FletchMcKee/liquid","commit_stats":null,"previous_names":["fletchmckee/liquid"],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/FletchMcKee/liquid","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FletchMcKee%2Fliquid","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FletchMcKee%2Fliquid/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FletchMcKee%2Fliquid/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FletchMcKee%2Fliquid/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FletchMcKee","download_url":"https://codeload.github.com/FletchMcKee/liquid/tar.gz/refs/heads/trunk","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FletchMcKee%2Fliquid/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34835785,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-26T02:00:06.560Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["compose-multiplatform","graphics-library","shader"],"created_at":"2026-06-09T23:00:25.268Z","updated_at":"2026-06-27T00:01:03.272Z","avatar_url":"https://github.com/FletchMcKee.png","language":"Kotlin","funding_links":[],"categories":["Multiplatform"],"sub_categories":["Android samples"],"readme":"# Liquid\n\n[![Maven Central](https://img.shields.io/maven-central/v/io.github.fletchmckee.liquid/liquid)](https://search.maven.org/search?q=g:io.github.fletchmckee.liquid)\n![Build status](https://github.com/fletchmckee/liquid/actions/workflows/build.yml/badge.svg)\n![Compose Multiplatform](https://img.shields.io/badge/Compose%20Multiplatform-4285F4?style=flat\u0026logo=jetpackcompose\u0026logoColor=white)\n\n**Liquid** unlocks a new capability for Compose Multiplatform: letting modifier nodes sample and manipulate the pixels behind them.\nBy tagging nodes as `liquefiable`, you can create effects that distort the underlying content in a way that isn't normally possible with Compose's rendering pipeline.\n\nThis enables [Liquid Glass](https://developer.apple.com/documentation/SwiftUI/Applying-Liquid-Glass-to-custom-views)-style effects like dynamic frosted glass, lenses, and other distortions.\nPowered by RuntimeShaders/RuntimeEffects and ModifierNodeElement APIs, it delivers GPU-accelerated visuals to your Compose UI.\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg\n    src=\"docs/gifs/liquid_demo.gif\"\n    width=\"400\"\n    alt=\"Liquid demo\"/\u003e\n\u003c/div\u003e\n\n## Quick Start\n\n**Add `mavenCentral()` and Liquid to your list of repositories and dependencies:**\n\n```gradle\nrepositories {\n  mavenCentral()\n}\n\ndependencies {\n  implementation(\"io.github.fletchmckee.liquid:liquid:1.1.1\")\n}\n```\n\nBelow is a simple implementation:\n\n```kotlin\n@Composable\nfun LiquidScreen(\n  modifier: Modifier = Modifier,\n  liquidState: LiquidState = rememberLiquidState(),\n) = Box(modifier) {\n  // Content layer for `liquefiable` source nodes\n  ImageBackground(\n    Modifier\n      .fillMaxSize()\n      .liquefiable(liquidState),\n  )\n  // Control layer for `liquid` effect nodes\n  LiquidButton(\n    Modifier\n      .align(Alignment.TopStart)\n      .liquid(liquidState),\n  )\n}\n```\n\nSee [full documentation here](https://fletchmckee.github.io/liquid/getting_started/).\n\n## Acknowledgements\n\n- The [Haze](https://github.com/chrisbanes/haze) library developed by [Chris Banes](https://github.com/chrisbanes) was a large source of\ninspiration, particularly for the use of content and effect `Modifier` nodes.\n- The original liquid lens effect was inspired by ShaderToy user [4eckme](https://www.shadertoy.com/user/4eckme) with their\n[Liquid Glass example](https://www.shadertoy.com/view/wcKSRD).\n- The current spherical liquid lens effect was inspired by GitHub user [Kyant0](https://github.com/Kyant0) with their own\n[AndroidLiquidGlass](https://github.com/Kyant0/AndroidLiquidGlass) library.\n- The dispersion effect was inspired by ShaderToy user [PuZo](https://www.shadertoy.com/user/PuZo) with their\n[Chromatic Aberration example](https://www.shadertoy.com/view/ltByR3).\n- Tobias Bjørkli [@tobiasbjorkli](https://www.pexels.com/@tobiasbjorkli/) for the [northern_lights.webp](https://github.com/FletchMcKee/liquid/blob/trunk/samples/shared/src/commonMain/composeResources/drawable/northern_lights.webp)\n- Vlad Alexandru Popa [@vladalex94](https://www.pexels.com/@vladalex94/) for the [ny_city.webp](https://github.com/FletchMcKee/liquid/blob/trunk/samples/shared/src/commonMain/composeResources/drawable/ny_city.webp).\n- Romain Guy [romainguy.dev](https://www.romainguy.dev/) for the [dotonbori.webp](https://github.com/FletchMcKee/liquid/blob/trunk/samples/shared/src/commonMain/composeResources/drawable/dotonbori.webp).\n- Efrem Efre [@efrem-efre-2786187](https://www.pexels.com/@efrem-efre-2786187/) for the [prague_clock.webp](https://github.com/FletchMcKee/liquid/blob/trunk/samples/shared/src/commonMain/composeResources/drawable-xxhdpi/prague_clock.webp).\n\n## License\n\n```\nCopyright 2025 Colin McKee\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  https://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%2FFletchMcKee%2Fliquid","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFletchMcKee%2Fliquid","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFletchMcKee%2Fliquid/lists"}