{"adoption": {"forks": 147, "observed_at": "2026-08-28T04:04:06.159755+00:00", "stars": 1240}, "canonical_url": "https://ross.abutalabs.com/products/tbicontransitionkit", "card": {"archived": false, "artifact_type": "library", "description": "TBIconTransitionKit is an easy to use icon transition kit that allows to smoothly change from one shape to another.", "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": ["AlexeyBelezeko/TBIconTransitionKit"], "name": "AlexeyBelezeko/TBIconTransitionKit", "platform": [], "pushed_at": "2023-04-25T08:47:34+00:00", "repo": "AlexeyBelezeko/TBIconTransitionKit", "stars": 1240, "tags": ["swiftui", "uibutton", "icon-animation", "cashapelayer", "hamburger-menu", "transition", "ios", "swift", "mobile"], "topics": [], "urls": [], "use_cases": ["animate hamburger menu icon to arrow in ios app", "smooth icon transition between menu and cross in swiftui", "customizable animated navigation button for ios", "morph plus to minus icon animation swift", "animated toggle button with cashapelayer"], "what_it_is": "A Swift library providing an animated UIButton/SwiftUI component that smoothly transitions between common navigation icon shapes like menu, arrow, cross, plus, and minus using CAShapeLayers. It supports customization of line color, width, spacing, and cap style.", "when_to_avoid": ["you need icon animations on Android or non-Apple platforms", "you need arbitrary custom icon shapes beyond the provided set"], "when_to_choose": ["you need polished animated navigation icon toggles in an iOS or SwiftUI app", "you want lightweight, customizable icon morphing without heavy dependencies"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/tbicontransitionkit", "repo": "AlexeyBelezeko/TBIconTransitionKit", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.159755+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:08:32.009233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f193ced4d3db635383d06611fb03253b471e491994a7a846ae44f7f6721a1c88", "fetched_at": "2026-08-28T04:04:06.159755+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AlexeyBelezeko/TBIconTransitionKit"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.159755+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:08:32.009233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f193ced4d3db635383d06611fb03253b471e491994a7a846ae44f7f6721a1c88", "fetched_at": "2026-08-28T04:04:06.159755+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AlexeyBelezeko/TBIconTransitionKit"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:08:32.009233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f193ced4d3db635383d06611fb03253b471e491994a7a846ae44f7f6721a1c88", "fetched_at": "2026-08-28T04:04:06.159755+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AlexeyBelezeko/TBIconTransitionKit"}], "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:06.159755+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.159755+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.159755+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:08:32.009233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f193ced4d3db635383d06611fb03253b471e491994a7a846ae44f7f6721a1c88", "fetched_at": "2026-08-28T04:04:06.159755+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AlexeyBelezeko/TBIconTransitionKit"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.159755+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.159755+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:08:32.009233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f193ced4d3db635383d06611fb03253b471e491994a7a846ae44f7f6721a1c88", "fetched_at": "2026-08-28T04:04:06.159755+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AlexeyBelezeko/TBIconTransitionKit"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.159755+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.159755+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.159755+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:08:32.009233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f193ced4d3db635383d06611fb03253b471e491994a7a846ae44f7f6721a1c88", "fetched_at": "2026-08-28T04:04:06.159755+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AlexeyBelezeko/TBIconTransitionKit"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.159755+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:06.159755+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:08:32.009233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f193ced4d3db635383d06611fb03253b471e491994a7a846ae44f7f6721a1c88", "fetched_at": "2026-08-28T04:04:06.159755+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AlexeyBelezeko/TBIconTransitionKit"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:08:32.009233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f193ced4d3db635383d06611fb03253b471e491994a7a846ae44f7f6721a1c88", "fetched_at": "2026-08-28T04:04:06.159755+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AlexeyBelezeko/TBIconTransitionKit"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:08:32.009233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f193ced4d3db635383d06611fb03253b471e491994a7a846ae44f7f6721a1c88", "fetched_at": "2026-08-28T04:04:06.159755+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AlexeyBelezeko/TBIconTransitionKit"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:08:32.009233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f193ced4d3db635383d06611fb03253b471e491994a7a846ae44f7f6721a1c88", "fetched_at": "2026-08-28T04:04:06.159755+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AlexeyBelezeko/TBIconTransitionKit"}], "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": 4067, "days_push": 1226, "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}}