{"adoption": {"forks": 50, "observed_at": "2026-08-28T04:03:46.728160+00:00", "stars": 1151}, "canonical_url": "https://ross.abutalabs.com/products/tvbutton", "card": {"archived": false, "artifact_type": "library", "description": "Recreating the cool parallax icons from Apple TV as iOS UIButtons (in Swift).", "domain": ["mobile-development", "frontend", "web-design"], "enriched": true, "function": ["ui-components", "animation"], "health_score": 20, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["marmelroy/TVButton"], "name": "marmelroy/TVButton", "platform": [], "pushed_at": "2019-03-02T01:56:34+00:00", "repo": "marmelroy/TVButton", "stars": 1151, "tags": ["parallax", "apple-tv", "uibutton", "cocoapods", "carthage", "ios", "swift", "mobile"], "topics": [], "urls": [], "use_cases": ["add apple tv style parallax effect to ios buttons", "create layered animated icons in swift", "make interactive pressable buttons with depth effect", "recreate tvos focus animation on iphone", "customize parallax intensity for ui images"], "what_it_is": "TVButton is a Swift library that recreates the Apple TV parallax icon effect as iOS UIButtons, using layered images that respond to long-press or drag gestures. It supports customizable parallax intensity and installs via CocoaPods or Carthage.", "when_to_avoid": ["you need a maintained library with recent updates", "you target platforms other than iOS", "you want SwiftUI-native parallax components"], "when_to_choose": ["you want the Apple TV parallax look in an iOS app with minimal setup", "you need a lightweight Swift UIButton subclass with layered image animation"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tvbutton", "repo": "marmelroy/TVButton", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.728160+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:33:37.212283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6347c7abb1a51b825b22148f1789662a5a121380a78a3e96db73b4a884977d8e", "fetched_at": "2026-08-28T04:03:46.728160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marmelroy/TVButton"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.728160+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:33:37.212283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6347c7abb1a51b825b22148f1789662a5a121380a78a3e96db73b4a884977d8e", "fetched_at": "2026-08-28T04:03:46.728160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marmelroy/TVButton"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:33:37.212283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6347c7abb1a51b825b22148f1789662a5a121380a78a3e96db73b4a884977d8e", "fetched_at": "2026-08-28T04:03:46.728160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marmelroy/TVButton"}], "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:03:46.728160+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.728160+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.728160+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:33:37.212283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6347c7abb1a51b825b22148f1789662a5a121380a78a3e96db73b4a884977d8e", "fetched_at": "2026-08-28T04:03:46.728160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marmelroy/TVButton"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.728160+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.728160+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:33:37.212283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6347c7abb1a51b825b22148f1789662a5a121380a78a3e96db73b4a884977d8e", "fetched_at": "2026-08-28T04:03:46.728160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marmelroy/TVButton"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.728160+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.728160+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.728160+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:33:37.212283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6347c7abb1a51b825b22148f1789662a5a121380a78a3e96db73b4a884977d8e", "fetched_at": "2026-08-28T04:03:46.728160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marmelroy/TVButton"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.728160+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:46.728160+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:33:37.212283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6347c7abb1a51b825b22148f1789662a5a121380a78a3e96db73b4a884977d8e", "fetched_at": "2026-08-28T04:03:46.728160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marmelroy/TVButton"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:33:37.212283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6347c7abb1a51b825b22148f1789662a5a121380a78a3e96db73b4a884977d8e", "fetched_at": "2026-08-28T04:03:46.728160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marmelroy/TVButton"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:33:37.212283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6347c7abb1a51b825b22148f1789662a5a121380a78a3e96db73b4a884977d8e", "fetched_at": "2026-08-28T04:03:46.728160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marmelroy/TVButton"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:33:37.212283+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6347c7abb1a51b825b22148f1789662a5a121380a78a3e96db73b4a884977d8e", "fetched_at": "2026-08-28T04:03:46.728160+00:00", "kind": "readme", "missing": false, "url": "https://github.com/marmelroy/TVButton"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3952, "days_push": 2742, "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}}