{"adoption": {"forks": 227, "observed_at": "2026-08-28T04:05:18.714488+00:00", "stars": 1662}, "canonical_url": "https://ross.abutalabs.com/products/hbdnavigationbar", "card": {"archived": true, "artifact_type": "library", "description": "A custom UINavigationBar for smooth switching between various states, including bar style, bar tint color,  background image, background alpha,   bar hidden, title text attributes, tint color, shadow hidden...", "domain": ["mobile-development", "frontend"], "enriched": true, "function": ["ui-components", "animation"], "health_score": 10, "homepage": null, "language": "Objective-C", "license": "MIT", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["listenzz/HBDNavigationBar"], "name": "listenzz/HBDNavigationBar", "platform": [], "pushed_at": "2026-03-18T00:48:31+00:00", "repo": "listenzz/HBDNavigationBar", "stars": 1662, "tags": ["uikit", "uinavigationbar", "objective-c", "navigation-bar-transitions", "unmaintained", "ios", "mobile"], "topics": ["uinavigationbar", "uinavigationcontroller"], "urls": [], "use_cases": ["smoothly switch navigation bar style between view controllers", "hide the navigation bar on some pages without affecting others", "fade navigation bar background alpha as the user scrolls", "show or hide the navigation bar shadow line per screen", "give each view controller its own navigation bar background color or image", "control swipe-back gesture behavior per view controller"], "what_it_is": "An Objective-C library providing a custom UINavigationBar and UINavigationController that smoothly transition navigation bar states (style, tint color, background image/alpha, hidden state, shadow, title attributes) between view controllers. It mimics the polished per-page navigation bar transitions seen in apps like WeChat.", "when_to_avoid": ["starting a new project, since the author states the library is no longer maintained and will be archived", "targeting only modern iOS versions where newer APIs may suffice", "you need a cross-platform or SwiftUI-native solution"], "when_to_choose": ["building an iOS app in Objective-C or Swift that needs WeChat-like smooth navigation bar transitions", "you need per-view-controller navigation bar styling with animated transitions during interactive pop gestures", "you want declarative per-page bar configuration without cleanup code"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/hbdnavigationbar", "repo": "listenzz/HBDNavigationBar", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.714488+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:44:34.784775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c06a3f16f996bc3fb626a15692bb6c4c0bac70904f87ca9a0366863e56cb45dd", "fetched_at": "2026-08-28T04:05:18.714488+00:00", "kind": "readme", "missing": false, "url": "https://github.com/listenzz/HBDNavigationBar"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.714488+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:44:34.784775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c06a3f16f996bc3fb626a15692bb6c4c0bac70904f87ca9a0366863e56cb45dd", "fetched_at": "2026-08-28T04:05:18.714488+00:00", "kind": "readme", "missing": false, "url": "https://github.com/listenzz/HBDNavigationBar"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:44:34.784775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c06a3f16f996bc3fb626a15692bb6c4c0bac70904f87ca9a0366863e56cb45dd", "fetched_at": "2026-08-28T04:05:18.714488+00:00", "kind": "readme", "missing": false, "url": "https://github.com/listenzz/HBDNavigationBar"}], "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:05:18.714488+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.714488+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.714488+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:44:34.784775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c06a3f16f996bc3fb626a15692bb6c4c0bac70904f87ca9a0366863e56cb45dd", "fetched_at": "2026-08-28T04:05:18.714488+00:00", "kind": "readme", "missing": false, "url": "https://github.com/listenzz/HBDNavigationBar"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.714488+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.714488+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:44:34.784775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c06a3f16f996bc3fb626a15692bb6c4c0bac70904f87ca9a0366863e56cb45dd", "fetched_at": "2026-08-28T04:05:18.714488+00:00", "kind": "readme", "missing": false, "url": "https://github.com/listenzz/HBDNavigationBar"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.714488+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.714488+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.714488+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:44:34.784775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c06a3f16f996bc3fb626a15692bb6c4c0bac70904f87ca9a0366863e56cb45dd", "fetched_at": "2026-08-28T04:05:18.714488+00:00", "kind": "readme", "missing": false, "url": "https://github.com/listenzz/HBDNavigationBar"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.714488+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:18.714488+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:44:34.784775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c06a3f16f996bc3fb626a15692bb6c4c0bac70904f87ca9a0366863e56cb45dd", "fetched_at": "2026-08-28T04:05:18.714488+00:00", "kind": "readme", "missing": false, "url": "https://github.com/listenzz/HBDNavigationBar"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:44:34.784775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c06a3f16f996bc3fb626a15692bb6c4c0bac70904f87ca9a0366863e56cb45dd", "fetched_at": "2026-08-28T04:05:18.714488+00:00", "kind": "readme", "missing": false, "url": "https://github.com/listenzz/HBDNavigationBar"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:44:34.784775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c06a3f16f996bc3fb626a15692bb6c4c0bac70904f87ca9a0366863e56cb45dd", "fetched_at": "2026-08-28T04:05:18.714488+00:00", "kind": "readme", "missing": false, "url": "https://github.com/listenzz/HBDNavigationBar"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:44:34.784775+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c06a3f16f996bc3fb626a15692bb6c4c0bac70904f87ca9a0366863e56cb45dd", "fetched_at": "2026-08-28T04:05:18.714488+00:00", "kind": "readme", "missing": false, "url": "https://github.com/listenzz/HBDNavigationBar"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 72, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3085, "days_push": 169, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}