{"id":13605631,"url":"https://github.com/GIGAMOLE/ComposeShadowsPlus","last_synced_at":"2025-04-12T05:34:22.870Z","repository":{"id":174969999,"uuid":"653015615","full_name":"GIGAMOLE/ComposeShadowsPlus","owner":"GIGAMOLE","description":" ComposeShadowsPlus: Elevate your Android Compose UI with stunning custom shadows","archived":false,"fork":false,"pushed_at":"2024-02-19T13:37:48.000Z","size":31130,"stargazers_count":171,"open_issues_count":1,"forks_count":6,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-08-02T19:38:04.729Z","etag":null,"topics":["android","android-compose","android-library","android-ui","design-tools","jetpack-compose","kotlin","kotlin-android","modifiers","sample-app"],"latest_commit_sha":null,"homepage":"https://www.linkedin.com/in/gigamole/","language":"Kotlin","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/GIGAMOLE.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-06-13T08:46:47.000Z","updated_at":"2024-07-30T09:39:14.000Z","dependencies_parsed_at":"2023-06-26T02:30:25.107Z","dependency_job_id":"b6093a55-8380-474a-b37a-31f8ebc6bf0c","html_url":"https://github.com/GIGAMOLE/ComposeShadowsPlus","commit_stats":null,"previous_names":["gigamole/composeshadowsplus"],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GIGAMOLE%2FComposeShadowsPlus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GIGAMOLE%2FComposeShadowsPlus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GIGAMOLE%2FComposeShadowsPlus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GIGAMOLE%2FComposeShadowsPlus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GIGAMOLE","download_url":"https://codeload.github.com/GIGAMOLE/ComposeShadowsPlus/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223497981,"owners_count":17155235,"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","android-compose","android-library","android-ui","design-tools","jetpack-compose","kotlin","kotlin-android","modifiers","sample-app"],"created_at":"2024-08-01T19:01:00.985Z","updated_at":"2025-04-12T05:34:22.841Z","avatar_url":"https://github.com/GIGAMOLE.png","language":"Kotlin","readme":"![](/media/header.png)\n\n![](https://jitpack.io/v/GIGAMOLE/ComposeShadowsPlus.svg?style=flat-square) | [Setup Guide](#setup)\n| [Report new issue](https://github.com/GIGAMOLE/ComposeShadowsPlus/issues/new)\n\n# ComposeShadowsPlus\n\n`ComposeShadowsPlus` is a powerful Android Compose library that empowers developers with the ability to easily create and customize stunning, high-quality shadows for\ntheir UI elements.\n\n![](/media/demo.gif)\n\nFeatures:\n\n- Android Compose custom shadows with offset, color, and spread support.\n- `NativePaint.setShadowLayer(...)` \u0026 `View.LAYER_TYPE_SOFTWARE` based custom shadow.\n- `RenderScript` \u0026 `ScriptIntrinsicBlur` based custom shadow.\n- Advanced [sample app](#sample-app).\n\n## Sample App\n\n| RSBlur | SoftLayer | Elevation | Alpha Content |\n|-|-|-|-|\n| \u003cimg src=\"/media/rs_blur.gif\" width=\"180\"/\u003e | \u003cimg src=\"/media/soft_layer.gif\" width=\"180\"/\u003e | \u003cimg src=\"/media/elevation.gif\" width=\"180\"/\u003e | \u003cimg src=\"/media/alpha_content.gif\" width=\"180\"/\u003e |\n\nDownload or clone this repository to discover the sample app.\n\n## Setup\n\nAdd to the root `build.gradle.kts`:\n\n``` groovy\nallprojects {\n    repositories {\n        ...\n        maven(\"https://jitpack.io\")\n    }\n}\n```\n\nAdd to the package `build.gradle.kts`:\n\n``` groovy\ndependencies {\n    implementation(\"com.github.GIGAMOLE:ComposeShadowsPlus:{latest-version}\")\n}\n```\n\nLatest version: ![](https://jitpack.io/v/GIGAMOLE/ComposeShadowsPlus.svg?style=flat-square).\n\nAlso, it's possible to download the latest artifact from the [releases page](https://github.com/GIGAMOLE/ComposeShadowsPlus/releases).\n\n## Guide\n\n`ComposeShadowsPlus` provides two custom shadow `Modifiers`: [RSBlurShadow](#rsblurshadow) and [SoftLayerShadow](#softlayershadow).\n\n`ComposeShadowsPlus` common params:\n\n| Param | Description |\n|-|-|\n|`radius`|The shadow radius.|\n|`color`|The shadow color.|\n|`shape`|The shadow shape.|\n|`spread`|The shadow positive or negative spread.|\n|`offset`|The shadow offset.|\n|`isAlphaContentClip`|Indicates if shadow is clipped for alpha content.|\n\n`ShadowsPlusDefaults` contains default values of custom shadows.\n\nYou can use `Modifier.shadowsPlus(...)` to set the custom shadows with the `ShadowsPlusType` enum.\n\n### RSBlurShadow\n\n`RSBlurShadow` uses `RenderScript` and `ScriptIntrinsicBlur` to blur the shadow content to simulate the shadow.\n\n`RSBlurShadow` more params:\n\n| Param | Description |\n|-|-|\n|`alignRadius`|The exponential align radius indicator.|\n\nTo apply `RSBlurShadow` use `Modifier.rsBlurShadow(...)`.\n\n### SoftLayerShadow\n\n`SoftLayerShadow` uses `NativePaint.setShadowLayer(...)` to apply the native shadow layer to the shadow content.\n\nTo render `SoftLayerShadow`, Android devices with API \u003c 28(P), need to use `View.LAYER_TYPE_SOFTWARE`. It's recommended to use `SoftLayerShadowContainer` to handle this\nautomatically.\n\nTo apply `SoftLayerShadow` use `Modifier.softLayerShadow(...)`.\n\n### Elevation\n\nTo use clipped shadow for alpha content with `elevation`(Android Compose `.shadow(...)`), wrap your content with `AlphaContentElevationShadow`.\n\nIf you want the clipped `elevation` as `Modifier` use [shadow-gadgets library](https://github.com/zed-alpha/shadow-gadgets).\n\n## License\n\nMIT License. See the [LICENSE](https://github.com/GIGAMOLE/ComposeShadowsPlus/blob/master/LICENSE) file for more details.\n\n## Credits\n\nSpecial thanks to the [GoDaddy](https://github.com/godaddy) for the amazing [color picker library](https://github.com/godaddy/compose-color-picker).\n\n## Author:\n\n[Basil Miller](https://www.linkedin.com/in/gigamole/)  \n[gigamole53@gmail.com](mailto:gigamole53@gmail.com)\n","funding_links":[],"categories":["Kotlin"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGIGAMOLE%2FComposeShadowsPlus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FGIGAMOLE%2FComposeShadowsPlus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FGIGAMOLE%2FComposeShadowsPlus/lists"}