{"adoption": {"forks": 229, "observed_at": "2026-08-28T04:04:05.107251+00:00", "stars": 1236}, "canonical_url": "https://ross.abutalabs.com/products/scrollable", "card": {"archived": false, "artifact_type": "library", "description": "Android scrollable tabs", "domain": ["mobile-development", "frontend"], "enriched": true, "function": ["ui-components", "animation"], "health_score": 20, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["noties/Scrollable"], "name": "noties/Scrollable", "platform": ["jvm"], "pushed_at": "2024-03-15T19:22:49+00:00", "repo": "noties/Scrollable", "stars": 1236, "tags": ["scrollable-tabs", "viewpager", "scrolling", "android-ui", "header-scrolling", "android", "mobile"], "topics": ["android", "ui", "scrollable", "scrolling-tabs"], "urls": [], "use_cases": ["implement scrollable tabs with sticky header on android", "coordinate scrolling between header and viewpager content", "collapse header when recyclerview scrolls", "custom overscroll effects in android app", "sync listview scrolling with tab layout"], "what_it_is": "A small, dependency-free Android library for implementing scrolling techniques, originally built around scrollable tabs with sticky headers. It supports RecyclerView, ScrollView, ListView, WebView and combinations inside a ViewPager via a ScrollableLayout container.", "when_to_avoid": ["you use Jetpack Compose where modern APIs like nestedScroll are preferred", "you need an actively developed library with recent AndroidX support"], "when_to_choose": ["you need flexible header/tab scrolling coordination on Android without heavy dependencies", "you want to combine multiple scrollable views inside a ViewPager with a collapsing header"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/scrollable", "repo": "noties/Scrollable", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.107251+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.937896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f5ace868c82a3b26a693c912e4eca1b4bf445f4fcf7ac461de7c8d8487d3601", "fetched_at": "2026-08-28T04:04:05.107251+00:00", "kind": "readme", "missing": false, "url": "https://github.com/noties/Scrollable"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.107251+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.937896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f5ace868c82a3b26a693c912e4eca1b4bf445f4fcf7ac461de7c8d8487d3601", "fetched_at": "2026-08-28T04:04:05.107251+00:00", "kind": "readme", "missing": false, "url": "https://github.com/noties/Scrollable"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.937896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f5ace868c82a3b26a693c912e4eca1b4bf445f4fcf7ac461de7c8d8487d3601", "fetched_at": "2026-08-28T04:04:05.107251+00:00", "kind": "readme", "missing": false, "url": "https://github.com/noties/Scrollable"}], "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:05.107251+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.107251+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.107251+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.937896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f5ace868c82a3b26a693c912e4eca1b4bf445f4fcf7ac461de7c8d8487d3601", "fetched_at": "2026-08-28T04:04:05.107251+00:00", "kind": "readme", "missing": false, "url": "https://github.com/noties/Scrollable"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.107251+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.107251+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.937896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f5ace868c82a3b26a693c912e4eca1b4bf445f4fcf7ac461de7c8d8487d3601", "fetched_at": "2026-08-28T04:04:05.107251+00:00", "kind": "readme", "missing": false, "url": "https://github.com/noties/Scrollable"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.107251+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.107251+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.107251+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.937896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f5ace868c82a3b26a693c912e4eca1b4bf445f4fcf7ac461de7c8d8487d3601", "fetched_at": "2026-08-28T04:04:05.107251+00:00", "kind": "readme", "missing": false, "url": "https://github.com/noties/Scrollable"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.107251+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:05.107251+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.937896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f5ace868c82a3b26a693c912e4eca1b4bf445f4fcf7ac461de7c8d8487d3601", "fetched_at": "2026-08-28T04:04:05.107251+00:00", "kind": "readme", "missing": false, "url": "https://github.com/noties/Scrollable"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.937896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f5ace868c82a3b26a693c912e4eca1b4bf445f4fcf7ac461de7c8d8487d3601", "fetched_at": "2026-08-28T04:04:05.107251+00:00", "kind": "readme", "missing": false, "url": "https://github.com/noties/Scrollable"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.937896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f5ace868c82a3b26a693c912e4eca1b4bf445f4fcf7ac461de7c8d8487d3601", "fetched_at": "2026-08-28T04:04:05.107251+00:00", "kind": "readme", "missing": false, "url": "https://github.com/noties/Scrollable"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T08:21:59.937896+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f5ace868c82a3b26a693c912e4eca1b4bf445f4fcf7ac461de7c8d8487d3601", "fetched_at": "2026-08-28T04:04:05.107251+00:00", "kind": "readme", "missing": false, "url": "https://github.com/noties/Scrollable"}], "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": 4175, "days_push": 901, "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}}