{"adoption": {"forks": 246, "observed_at": "2026-08-28T04:07:55.769902+00:00", "stars": 3303}, "canonical_url": "https://ross.abutalabs.com/products/bubbletransition", "card": {"archived": false, "artifact_type": "library", "description": "A custom modal transition that presents and dismiss a controller with an expanding bubble effect.", "domain": ["mobile-development", "frontend"], "enriched": true, "function": ["animation", "ui-components"], "health_score": 20, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["andreamazz/BubbleTransition"], "name": "andreamazz/BubbleTransition", "platform": [], "pushed_at": "2020-11-04T15:29:03+00:00", "repo": "andreamazz/BubbleTransition", "stars": 3303, "tags": ["modal-transition", "uikit", "bubble-effect", "view-controller-transitions", "cocoapods", "carthage", "swift-package-manager", "ios", "swift", "mobile"], "topics": [], "urls": [], "use_cases": ["add a bubble animation when presenting a modal view controller in iOS", "create an expanding circle transition from a button tap", "implement custom UIViewController transitions in Swift", "add swipe-to-dismiss gesture to a presented controller", "make a modal appear to grow out of a menu button"], "what_it_is": "A Swift library providing a custom modal transition for iOS that presents and dismisses view controllers with an expanding and shrinking bubble animation. It supports configurable transition mode, starting point, bubble color, duration, and interactive swipe-to-dismiss gestures.", "when_to_avoid": ["you are not building an iOS/UIKit app", "you need transitions beyond the bubble effect", "you need a library with frequent updates and active maintenance"], "when_to_choose": ["you want a polished expanding-bubble modal transition on iOS with minimal setup", "you need a customizable transition with configurable starting point, color, and duration", "you want interactive swipe-to-dismiss support out of the box"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/bubbletransition", "repo": "andreamazz/BubbleTransition", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.769902+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:42:56.121993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88fbf518638a1f9a045922527188b0e10830c26ac53fbb039b7443e3b21bcf16", "fetched_at": "2026-08-28T04:07:55.769902+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andreamazz/BubbleTransition"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.769902+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:42:56.121993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88fbf518638a1f9a045922527188b0e10830c26ac53fbb039b7443e3b21bcf16", "fetched_at": "2026-08-28T04:07:55.769902+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andreamazz/BubbleTransition"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:42:56.121993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88fbf518638a1f9a045922527188b0e10830c26ac53fbb039b7443e3b21bcf16", "fetched_at": "2026-08-28T04:07:55.769902+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andreamazz/BubbleTransition"}], "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:07:55.769902+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.769902+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.769902+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:42:56.121993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88fbf518638a1f9a045922527188b0e10830c26ac53fbb039b7443e3b21bcf16", "fetched_at": "2026-08-28T04:07:55.769902+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andreamazz/BubbleTransition"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.769902+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.769902+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:42:56.121993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88fbf518638a1f9a045922527188b0e10830c26ac53fbb039b7443e3b21bcf16", "fetched_at": "2026-08-28T04:07:55.769902+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andreamazz/BubbleTransition"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.769902+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.769902+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.769902+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:42:56.121993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88fbf518638a1f9a045922527188b0e10830c26ac53fbb039b7443e3b21bcf16", "fetched_at": "2026-08-28T04:07:55.769902+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andreamazz/BubbleTransition"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.769902+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:55.769902+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:42:56.121993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88fbf518638a1f9a045922527188b0e10830c26ac53fbb039b7443e3b21bcf16", "fetched_at": "2026-08-28T04:07:55.769902+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andreamazz/BubbleTransition"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:42:56.121993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88fbf518638a1f9a045922527188b0e10830c26ac53fbb039b7443e3b21bcf16", "fetched_at": "2026-08-28T04:07:55.769902+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andreamazz/BubbleTransition"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:42:56.121993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88fbf518638a1f9a045922527188b0e10830c26ac53fbb039b7443e3b21bcf16", "fetched_at": "2026-08-28T04:07:55.769902+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andreamazz/BubbleTransition"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:42:56.121993+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "88fbf518638a1f9a045922527188b0e10830c26ac53fbb039b7443e3b21bcf16", "fetched_at": "2026-08-28T04:07:55.769902+00:00", "kind": "readme", "missing": false, "url": "https://github.com/andreamazz/BubbleTransition"}], "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": 4131, "days_push": 2128, "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}}