{"id":36603251,"url":"https://github.com/kubode/compose-shadow-alternative","last_synced_at":"2026-01-12T08:40:57.742Z","repository":{"id":205468351,"uuid":"714199842","full_name":"kubode/compose-shadow-alternative","owner":"kubode","description":"Enrich your Compose UI with enhanced shadow expressions. This library offers advanced drop shadow and box shadow features.","archived":false,"fork":false,"pushed_at":"2025-12-03T22:04:23.000Z","size":570,"stargazers_count":14,"open_issues_count":11,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-07T04:12:09.366Z","etag":null,"topics":["box-shadow","compose-multiplatform","drop-shadow","jetpack-compose","kotlin-multiplatform"],"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/kubode.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,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-11-04T07:42:55.000Z","updated_at":"2025-06-12T11:35:08.000Z","dependencies_parsed_at":"2025-12-04T23:00:17.521Z","dependency_job_id":null,"html_url":"https://github.com/kubode/compose-shadow-alternative","commit_stats":null,"previous_names":["kubode/compose-shadow-alternative"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/kubode/compose-shadow-alternative","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubode%2Fcompose-shadow-alternative","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubode%2Fcompose-shadow-alternative/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubode%2Fcompose-shadow-alternative/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubode%2Fcompose-shadow-alternative/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kubode","download_url":"https://codeload.github.com/kubode/compose-shadow-alternative/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubode%2Fcompose-shadow-alternative/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28337599,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T06:09:07.588Z","status":"ssl_error","status_checked_at":"2026-01-12T06:05:18.301Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["box-shadow","compose-multiplatform","drop-shadow","jetpack-compose","kotlin-multiplatform"],"created_at":"2026-01-12T08:40:56.974Z","updated_at":"2026-01-12T08:40:57.737Z","avatar_url":"https://github.com/kubode.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"![title](./docs/images/title.png)\n\n![Maven Central](https://img.shields.io/maven-central/v/io.github.kubode.compose.shadow/compose-boxshadow)\n![GitHub](https://img.shields.io/github/license/kubode/compose-shadow-alternative)\n\nCompose has few ways to add shadows.\nThis library provides box shadows and drop shadows to enrich shadow expression of Compose.\n\n# Install\n\n```kotlin\nrepositories {\n    google()\n    mavenCentral()\n    // If you want to use the latest snapshot version.\n    maven {\n        url = uri(\"https://central.sonatype.com/repository/maven-snapshots/\")\n        mavenContent {\n            snapshotsOnly()\n            includeGroup(\"io.github.kubode.compose.shadow\")\n        }\n    }\n}\n\ndependencies {\n    implementation(\"io.github.kubode.compose.shadow:compose-boxshadow:$latestVersion\")\n    implementation(\"io.github.kubode.compose.shadow:compose-dropshadow:$latestVersion\")\n}\n```\n\n# Usage\n\nSamples are available in [sample](sample).\n\n## DropShadow\n\nSimple usage:\n```kotlin\nDropShadow(\n    color = Color.Black.copy(alpha = 0.5f),\n    offset = DpOffset(4.dp, 4.dp),\n    radius = 8.dp,\n) {\n    Image(\n        painter = painterResource(id = R.drawable.ic_android_black_24dp),\n        contentDescription = null,\n        modifier = Modifier.size(48.dp),\n        colorFilter = ColorFilter.tint(Color(0xFF3DDC84)),\n    )\n}\n```\n\nWith animation:\n```kotlin\nval infiniteTransition = rememberInfiniteTransition(label = \"infinite\")\nval degrees by infiniteTransition.animateFloat(\n    initialValue = 0f,\n    targetValue = 360f,\n    animationSpec = infiniteRepeatable(\n        animation = tween(durationMillis = 1000, easing = LinearEasing)\n    ),\n    label = \"degrees\",\n)\nDropShadow(\n    color = Color.Black.copy(alpha = 0.5f),\n    offset = DpOffset(4.dp, 4.dp),\n    radius = 8.dp,\n    drawInvalidationTrigger = { degrees },\n) {\n    Image(\n        painter = painterResource(id = R.drawable.ic_android_black_24dp),\n        contentDescription = null,\n        modifier = Modifier\n            .size(48.dp)\n            .rotate(degrees),\n        colorFilter = ColorFilter.tint(Color(0xFF3DDC84)),\n    )\n}\n```\n\n## BoxShadow\n\n```kotlin\nBox(\n    modifier = Modifier\n        .size(48.dp)\n        .boxShadow(\n            color = Color.Black.copy(alpha = 0.5f),\n            offset = DpOffset(4.dp, 4.dp),\n            radius = 8.dp,\n        )\n        .background(Color.Red)\n)\n```\n\n# Compatibility\n\n`compose-dropshadow` uses `DrawScope.draw` API newly introduced in Compose [`1.6.0-alpha01`](https://developer.android.com/jetpack/androidx/releases/compose-ui#1.6.0-alpha01).\nTherefore, it requires Compose 1.6 or higher to work.\n\n# License\n\n```\nCopyright 2023 Masatoshi Kubode\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%2Fkubode%2Fcompose-shadow-alternative","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkubode%2Fcompose-shadow-alternative","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubode%2Fcompose-shadow-alternative/lists"}