{"adoption": {"forks": 118, "observed_at": "2026-08-28T04:03:54.843150+00:00", "stars": 1185}, "canonical_url": "https://ross.abutalabs.com/products/ftscroller", "card": {"archived": true, "artifact_type": "library", "description": "FTScroller is a cross-browser Javascript/CSS library to allow touch, mouse or scrollwheel scrolling within specified elements, with pagination, snapping and bouncing support.", "domain": ["web-development", "frontend", "mobile-development"], "enriched": true, "function": ["animation", "ui-components"], "health_score": 10, "homepage": null, "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["ftlabs/ftscroller"], "name": "ftlabs/ftscroller", "platform": ["browser", "cross-platform"], "pushed_at": "2021-08-13T16:02:55+00:00", "repo": "ftlabs/ftscroller", "stars": 1185, "tags": ["scrolling", "touch", "momentum-scrolling", "pagination", "snapping", "javascript"], "topics": [], "urls": [], "use_cases": ["add momentum scrolling to web content on touch devices", "create horizontally paged carousels with snapping", "build scrollable vertical lists with scrollbars", "make custom scroll containers work consistently across desktop and mobile browsers", "implement bounce and snap behavior for scrollable panels"], "what_it_is": "FTScroller is a cross-browser JavaScript/CSS library that adds momentum scrolling with touch, mouse, or scrollwheel input to specified elements. It supports pagination, snapping, and bouncing, and was developed by FT Labs for the FT Web App.", "when_to_avoid": ["your target browsers support modern native scrolling with CSS overflow and scroll-snap", "you need a maintained library with active updates and bug fixes", "you are building with a modern framework that provides its own scrolling components"], "when_to_choose": ["you need consistent scrolling behavior across older or inconsistent browsers", "you want pagination, snapping, or bouncing beyond native overflow scrolling", "you need a lightweight standalone scrolling library without framework dependencies"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ftscroller", "repo": "ftlabs/ftscroller", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.843150+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:24:07.047176+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3b8727ba2e8b523051e1d8b419b272dc5ff56dd690851a358a2e5e75639250e4", "fetched_at": "2026-08-28T04:03:54.843150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ftlabs/ftscroller"}, {"content_hash": "a7a81070ca2c2b3114a95cdc5f18a6c9feb26a64a4f29362f57c1253efb800aa", "fetched_at": "2026-08-29T12:31:09.588912+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ftscroller"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.843150+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:24:07.047176+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3b8727ba2e8b523051e1d8b419b272dc5ff56dd690851a358a2e5e75639250e4", "fetched_at": "2026-08-28T04:03:54.843150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ftlabs/ftscroller"}, {"content_hash": "a7a81070ca2c2b3114a95cdc5f18a6c9feb26a64a4f29362f57c1253efb800aa", "fetched_at": "2026-08-29T12:31:09.588912+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ftscroller"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:24:07.047176+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3b8727ba2e8b523051e1d8b419b272dc5ff56dd690851a358a2e5e75639250e4", "fetched_at": "2026-08-28T04:03:54.843150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ftlabs/ftscroller"}, {"content_hash": "a7a81070ca2c2b3114a95cdc5f18a6c9feb26a64a4f29362f57c1253efb800aa", "fetched_at": "2026-08-29T12:31:09.588912+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ftscroller"}], "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:03:54.843150+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.843150+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.843150+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:24:07.047176+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3b8727ba2e8b523051e1d8b419b272dc5ff56dd690851a358a2e5e75639250e4", "fetched_at": "2026-08-28T04:03:54.843150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ftlabs/ftscroller"}, {"content_hash": "a7a81070ca2c2b3114a95cdc5f18a6c9feb26a64a4f29362f57c1253efb800aa", "fetched_at": "2026-08-29T12:31:09.588912+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ftscroller"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.843150+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.843150+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:24:07.047176+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3b8727ba2e8b523051e1d8b419b272dc5ff56dd690851a358a2e5e75639250e4", "fetched_at": "2026-08-28T04:03:54.843150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ftlabs/ftscroller"}, {"content_hash": "a7a81070ca2c2b3114a95cdc5f18a6c9feb26a64a4f29362f57c1253efb800aa", "fetched_at": "2026-08-29T12:31:09.588912+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ftscroller"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.843150+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.843150+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.843150+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:24:07.047176+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3b8727ba2e8b523051e1d8b419b272dc5ff56dd690851a358a2e5e75639250e4", "fetched_at": "2026-08-28T04:03:54.843150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ftlabs/ftscroller"}, {"content_hash": "a7a81070ca2c2b3114a95cdc5f18a6c9feb26a64a4f29362f57c1253efb800aa", "fetched_at": "2026-08-29T12:31:09.588912+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ftscroller"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.843150+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:54.843150+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:24:07.047176+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3b8727ba2e8b523051e1d8b419b272dc5ff56dd690851a358a2e5e75639250e4", "fetched_at": "2026-08-28T04:03:54.843150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ftlabs/ftscroller"}, {"content_hash": "a7a81070ca2c2b3114a95cdc5f18a6c9feb26a64a4f29362f57c1253efb800aa", "fetched_at": "2026-08-29T12:31:09.588912+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ftscroller"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:24:07.047176+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3b8727ba2e8b523051e1d8b419b272dc5ff56dd690851a358a2e5e75639250e4", "fetched_at": "2026-08-28T04:03:54.843150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ftlabs/ftscroller"}, {"content_hash": "a7a81070ca2c2b3114a95cdc5f18a6c9feb26a64a4f29362f57c1253efb800aa", "fetched_at": "2026-08-29T12:31:09.588912+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ftscroller"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:24:07.047176+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3b8727ba2e8b523051e1d8b419b272dc5ff56dd690851a358a2e5e75639250e4", "fetched_at": "2026-08-28T04:03:54.843150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ftlabs/ftscroller"}, {"content_hash": "a7a81070ca2c2b3114a95cdc5f18a6c9feb26a64a4f29362f57c1253efb800aa", "fetched_at": "2026-08-29T12:31:09.588912+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ftscroller"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:24:07.047176+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3b8727ba2e8b523051e1d8b419b272dc5ff56dd690851a358a2e5e75639250e4", "fetched_at": "2026-08-28T04:03:54.843150+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ftlabs/ftscroller"}, {"content_hash": "a7a81070ca2c2b3114a95cdc5f18a6c9feb26a64a4f29362f57c1253efb800aa", "fetched_at": "2026-08-29T12:31:09.588912+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/ftscroller"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5225, "days_push": 1846, "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}}