{"adoption": {"forks": 138, "observed_at": "2026-08-28T04:04:44.371688+00:00", "stars": 1441}, "canonical_url": "https://ross.abutalabs.com/products/cyanea", "card": {"archived": true, "artifact_type": "library", "description": "A theme engine for Android", "domain": ["mobile-development", "android-tools", "web-design"], "enriched": true, "function": ["ui-components", "theme"], "health_score": 10, "homepage": null, "language": "Kotlin", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["jaredrummler/Cyanea"], "name": "jaredrummler/Cyanea", "platform": ["jvm"], "pushed_at": "2026-05-09T17:37:52+00:00", "repo": "jaredrummler/Cyanea", "stars": 1441, "tags": ["theme-engine", "material-design", "dynamic-theming", "appcompat", "kotlin-library", "no-longer-maintained", "android", "mobile"], "topics": ["android", "theme", "themeengine", "dynamic", "color", "material", "material-design", "material-ui", "kotlin", "material-components", "appcompat"], "urls": [], "use_cases": ["let users pick custom accent colors in an Android app", "implement a dark/light theme switcher at runtime", "build a dynamic theming settings screen", "apply Material Design color palettes dynamically", "theme an Android app without restarting activities"], "what_it_is": "Cyanea is a dynamic theme engine for Android apps, written in Kotlin, that lets users change app colors and themes at runtime. It integrates with Material Components and AppCompat via Cyanea activity base classes and Theme.Cyanea styles.", "when_to_avoid": ["you need actively maintained or updated dependencies - the project is no longer maintained", "you target modern Android with Material 3 dynamic color, which covers this natively", "you are not building an Android app"], "when_to_choose": ["you need runtime, user-configurable theming on Android with AppCompat/Material Components", "you want an immutable, prebuilt theme system instead of hand-rolling one"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cyanea", "repo": "jaredrummler/Cyanea", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.371688+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:36:28.282870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "525cb83734de1b53919a429c290cf9d05ad950c5d61dec1b9c3a1da16d7455ae", "fetched_at": "2026-08-28T04:04:44.371688+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredrummler/Cyanea"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.371688+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:36:28.282870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "525cb83734de1b53919a429c290cf9d05ad950c5d61dec1b9c3a1da16d7455ae", "fetched_at": "2026-08-28T04:04:44.371688+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredrummler/Cyanea"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:36:28.282870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "525cb83734de1b53919a429c290cf9d05ad950c5d61dec1b9c3a1da16d7455ae", "fetched_at": "2026-08-28T04:04:44.371688+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredrummler/Cyanea"}], "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:44.371688+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.371688+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.371688+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:36:28.282870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "525cb83734de1b53919a429c290cf9d05ad950c5d61dec1b9c3a1da16d7455ae", "fetched_at": "2026-08-28T04:04:44.371688+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredrummler/Cyanea"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.371688+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.371688+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:36:28.282870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "525cb83734de1b53919a429c290cf9d05ad950c5d61dec1b9c3a1da16d7455ae", "fetched_at": "2026-08-28T04:04:44.371688+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredrummler/Cyanea"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.371688+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.371688+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.371688+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:36:28.282870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "525cb83734de1b53919a429c290cf9d05ad950c5d61dec1b9c3a1da16d7455ae", "fetched_at": "2026-08-28T04:04:44.371688+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredrummler/Cyanea"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.371688+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.371688+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:36:28.282870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "525cb83734de1b53919a429c290cf9d05ad950c5d61dec1b9c3a1da16d7455ae", "fetched_at": "2026-08-28T04:04:44.371688+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredrummler/Cyanea"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:36:28.282870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "525cb83734de1b53919a429c290cf9d05ad950c5d61dec1b9c3a1da16d7455ae", "fetched_at": "2026-08-28T04:04:44.371688+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredrummler/Cyanea"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:36:28.282870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "525cb83734de1b53919a429c290cf9d05ad950c5d61dec1b9c3a1da16d7455ae", "fetched_at": "2026-08-28T04:04:44.371688+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredrummler/Cyanea"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:36:28.282870+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "525cb83734de1b53919a429c290cf9d05ad950c5d61dec1b9c3a1da16d7455ae", "fetched_at": "2026-08-28T04:04:44.371688+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jaredrummler/Cyanea"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 81, "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": 3150, "days_push": 116, "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}}