{"adoption": {"forks": 109, "observed_at": "2026-08-28T04:04:36.901974+00:00", "stars": 1399}, "canonical_url": "https://ross.abutalabs.com/products/zfripplebutton", "card": {"archived": false, "artifact_type": "library", "description": "Custom UIButton effect inspired by Google Material Design", "domain": ["mobile-development", "frontend"], "enriched": true, "function": ["ui-components", "animation"], "health_score": 20, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["zoonooz/ZFRippleButton"], "name": "zoonooz/ZFRippleButton", "platform": [], "pushed_at": "2019-04-03T05:19:04+00:00", "repo": "zoonooz/ZFRippleButton", "stars": 1399, "tags": ["uibutton", "material-design", "ripple-effect", "swift", "ios", "mobile"], "topics": ["ios-swift", "custom-uibutton", "uibutton", "google-material"], "urls": [], "use_cases": ["add material design ripple effect to iOS buttons", "custom UIButton with touch animation in Swift", "show ripple from touch location on button tap", "add shadow ripple effect when button is clicked", "customize ripple color and background of buttons"], "what_it_is": "A Swift library providing a custom UIButton subclass with a Material Design-inspired ripple effect for iOS. It offers configurable options such as ripple bounds, touch location tracking, shadow effects, and ripple colors.", "when_to_avoid": ["you need Material Design components beyond buttons", "you target platforms other than iOS", "you need a library with recent updates or active maintenance"], "when_to_choose": ["you want Google Material Design-style ripple buttons in an iOS app", "you need a lightweight, easily configurable UIButton subclass", "your project targets iOS 8 or later and uses Swift"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/zfripplebutton", "repo": "zoonooz/ZFRippleButton", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.901974+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:39:11.899505+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80d3742bf8c93f36cc5b0da58a5cdbfc97172e387123ff73ad67005859013032", "fetched_at": "2026-08-28T04:04:36.901974+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoonooz/ZFRippleButton"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.901974+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:39:11.899505+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80d3742bf8c93f36cc5b0da58a5cdbfc97172e387123ff73ad67005859013032", "fetched_at": "2026-08-28T04:04:36.901974+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoonooz/ZFRippleButton"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:39:11.899505+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80d3742bf8c93f36cc5b0da58a5cdbfc97172e387123ff73ad67005859013032", "fetched_at": "2026-08-28T04:04:36.901974+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoonooz/ZFRippleButton"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.901974+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.901974+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.901974+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:39:11.899505+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80d3742bf8c93f36cc5b0da58a5cdbfc97172e387123ff73ad67005859013032", "fetched_at": "2026-08-28T04:04:36.901974+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoonooz/ZFRippleButton"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.901974+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.901974+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:39:11.899505+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80d3742bf8c93f36cc5b0da58a5cdbfc97172e387123ff73ad67005859013032", "fetched_at": "2026-08-28T04:04:36.901974+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoonooz/ZFRippleButton"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.901974+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.901974+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.901974+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:39:11.899505+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80d3742bf8c93f36cc5b0da58a5cdbfc97172e387123ff73ad67005859013032", "fetched_at": "2026-08-28T04:04:36.901974+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoonooz/ZFRippleButton"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.901974+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:36.901974+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:39:11.899505+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80d3742bf8c93f36cc5b0da58a5cdbfc97172e387123ff73ad67005859013032", "fetched_at": "2026-08-28T04:04:36.901974+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoonooz/ZFRippleButton"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:39:11.899505+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80d3742bf8c93f36cc5b0da58a5cdbfc97172e387123ff73ad67005859013032", "fetched_at": "2026-08-28T04:04:36.901974+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoonooz/ZFRippleButton"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:39:11.899505+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80d3742bf8c93f36cc5b0da58a5cdbfc97172e387123ff73ad67005859013032", "fetched_at": "2026-08-28T04:04:36.901974+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoonooz/ZFRippleButton"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:39:11.899505+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "80d3742bf8c93f36cc5b0da58a5cdbfc97172e387123ff73ad67005859013032", "fetched_at": "2026-08-28T04:04:36.901974+00:00", "kind": "readme", "missing": false, "url": "https://github.com/zoonooz/ZFRippleButton"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4450, "days_push": 2709, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}