| Setup Guide
| Report new issue
ComposeShadowsPlus is a powerful Android Compose library that empowers developers with the ability to easily create and customize stunning, high-quality shadows for
their UI elements.
Features:
- Android Compose custom shadows with offset, color, and spread support.
NativePaint.setShadowLayer(...)&View.LAYER_TYPE_SOFTWAREbased custom shadow.RenderScript&ScriptIntrinsicBlurbased custom shadow.- Advanced sample app.
| RSBlur | SoftLayer | Elevation | Alpha Content |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Download or clone this repository to discover the sample app.
Add to the root build.gradle.kts:
allprojects {
repositories {
...
maven("https://jitpack.io")
}
}Add to the package build.gradle.kts:
dependencies {
implementation("com.github.GIGAMOLE:ComposeShadowsPlus:{latest-version}")
}Also, it's possible to download the latest artifact from the releases page.
ComposeShadowsPlus provides two custom shadow Modifiers: RSBlurShadow and SoftLayerShadow.
ComposeShadowsPlus common params:
| Param | Description |
|---|---|
radius |
The shadow radius. |
color |
The shadow color. |
shape |
The shadow shape. |
spread |
The shadow positive or negative spread. |
offset |
The shadow offset. |
isAlphaContentClip |
Indicates if shadow is clipped for alpha content. |
ShadowsPlusDefaults contains default values of custom shadows.
You can use Modifier.shadowsPlus(...) to set the custom shadows with the ShadowsPlusType enum.
RSBlurShadow uses RenderScript and ScriptIntrinsicBlur to blur the shadow content to simulate the shadow.
RSBlurShadow more params:
| Param | Description |
|---|---|
alignRadius |
The exponential align radius indicator. |
To apply RSBlurShadow use Modifier.rsBlurShadow(...).
SoftLayerShadow uses NativePaint.setShadowLayer(...) to apply the native shadow layer to the shadow content.
To render SoftLayerShadow, Android devices with API < 28(P), need to use View.LAYER_TYPE_SOFTWARE. It's recommended to use SoftLayerShadowContainer to handle this
automatically.
To apply SoftLayerShadow use Modifier.softLayerShadow(...).
To use clipped shadow for alpha content with elevation(Android Compose .shadow(...)), wrap your content with AlphaContentElevationShadow.
If you want the clipped elevation as Modifier use shadow-gadgets library.
MIT License. See the LICENSE file for more details.
Special thanks to the GoDaddy for the amazing color picker library.





