{"adoption": {"forks": 261, "observed_at": "2026-08-28T04:08:05.832398+00:00", "stars": 3467}, "canonical_url": "https://ross.abutalabs.com/products/chipagecontrol", "card": {"archived": false, "artifact_type": "library", "description": "A set of cool animated page controls written in Swift to replace boring UIPageControl. Mady by @ChiliLabs - https://chililabs.io", "domain": ["mobile-development", "frontend"], "enriched": true, "function": ["ui-components", "animation"], "health_score": 20, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["ChiliLabs/CHIPageControl"], "name": "ChiliLabs/CHIPageControl", "platform": [], "pushed_at": "2023-05-22T02:43:41+00:00", "repo": "ChiliLabs/CHIPageControl", "stars": 3467, "tags": ["page-control", "page-indicator", "uikit", "ibdesignable", "cocoapods", "swift-package-manager", "ios", "swift", "mobile"], "topics": ["swift", "swift3", "pagecontrol", "ios", "pageindicator", "pager", "ui", "iphone", "ipad", "storyboard", "ibinspectable", "ibdesignable", "cocoapods"], "urls": [], "use_cases": ["replace UIPageControl with animated page indicators in an iOS app", "add a stylish onboarding carousel page indicator", "customize page dot colors, radius, and padding in Swift", "use an IBDesignable page control directly in storyboards", "handle touch events on page indicator dots", "animate page control progress during scroll"], "what_it_is": "A Swift library offering a collection of animated page controls (page indicators) for iOS, designed to replace the standard UIPageControl. It provides multiple visually distinct control styles usable via storyboards or code.", "when_to_avoid": ["building for Android, web, or cross-platform frameworks", "using SwiftUI exclusively without UIKit interop", "you need a highly custom indicator beyond the provided styles"], "when_to_choose": ["building an iOS app in Swift that needs polished page indicators", "you want drop-in storyboard support with IBDesignable/IBInspectable", "you need multiple distinct animated indicator styles from one library"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/chipagecontrol", "repo": "ChiliLabs/CHIPageControl", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.832398+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:36:40.769820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1036c2307fa9e4bb8aef12474a3ea67e5a76bf4ccf6d81a5725f10c6b30d48d4", "fetched_at": "2026-08-28T04:08:05.832398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChiliLabs/CHIPageControl"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.832398+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:36:40.769820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1036c2307fa9e4bb8aef12474a3ea67e5a76bf4ccf6d81a5725f10c6b30d48d4", "fetched_at": "2026-08-28T04:08:05.832398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChiliLabs/CHIPageControl"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:36:40.769820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1036c2307fa9e4bb8aef12474a3ea67e5a76bf4ccf6d81a5725f10c6b30d48d4", "fetched_at": "2026-08-28T04:08:05.832398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChiliLabs/CHIPageControl"}], "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:08:05.832398+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.832398+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.832398+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:36:40.769820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1036c2307fa9e4bb8aef12474a3ea67e5a76bf4ccf6d81a5725f10c6b30d48d4", "fetched_at": "2026-08-28T04:08:05.832398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChiliLabs/CHIPageControl"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.832398+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.832398+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:36:40.769820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1036c2307fa9e4bb8aef12474a3ea67e5a76bf4ccf6d81a5725f10c6b30d48d4", "fetched_at": "2026-08-28T04:08:05.832398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChiliLabs/CHIPageControl"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.832398+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.832398+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.832398+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:36:40.769820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1036c2307fa9e4bb8aef12474a3ea67e5a76bf4ccf6d81a5725f10c6b30d48d4", "fetched_at": "2026-08-28T04:08:05.832398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChiliLabs/CHIPageControl"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.832398+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:05.832398+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:36:40.769820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1036c2307fa9e4bb8aef12474a3ea67e5a76bf4ccf6d81a5725f10c6b30d48d4", "fetched_at": "2026-08-28T04:08:05.832398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChiliLabs/CHIPageControl"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:36:40.769820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1036c2307fa9e4bb8aef12474a3ea67e5a76bf4ccf6d81a5725f10c6b30d48d4", "fetched_at": "2026-08-28T04:08:05.832398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChiliLabs/CHIPageControl"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:36:40.769820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1036c2307fa9e4bb8aef12474a3ea67e5a76bf4ccf6d81a5725f10c6b30d48d4", "fetched_at": "2026-08-28T04:08:05.832398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChiliLabs/CHIPageControl"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:36:40.769820+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1036c2307fa9e4bb8aef12474a3ea67e5a76bf4ccf6d81a5725f10c6b30d48d4", "fetched_at": "2026-08-28T04:08:05.832398+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ChiliLabs/CHIPageControl"}], "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": 3460, "days_push": 1199, "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}}