{"adoption": {"forks": 157, "observed_at": "2026-08-28T04:03:27.572346+00:00", "stars": 1068}, "canonical_url": "https://ross.abutalabs.com/products/react-spring-bottom-sheet", "card": {"archived": false, "artifact_type": "library", "description": "Accessible ♿️, Delightful ✨, & Fast 🚀", "domain": ["frontend", "web-development", "accessibility"], "enriched": true, "function": ["ui-components", "animation", "state-management"], "health_score": 80, "homepage": "https://react-spring.bottom-sheet.dev/", "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["stipsan/react-spring-bottom-sheet"], "name": "stipsan/react-spring-bottom-sheet", "platform": ["cross-platform"], "pushed_at": "2026-08-26T17:14:12+00:00", "repo": "stipsan/react-spring-bottom-sheet", "stars": 1068, "tags": ["bottom-sheet", "react-spring", "modal", "drawer", "gesture-control", "typescript", "css-custom-properties", "web-server"], "topics": ["react", "animation", "ux", "bottom-sheet", "bottomsheet", "sheet", "modal", "overlay", "popup", "dialog", "drag-drop", "gesture-control", "draggableview", "drawer", "bottom-drawer", "react-spring", "tailwind-css"], "urls": [], "use_cases": ["add a draggable bottom sheet modal to a react app", "implement an accessible bottom drawer with keyboard and screen reader support", "create a mobile-style bottom panel with snap points", "build a blocking dialog that requires user interaction before closing", "customize sheet animations purely with css variables", "add sticky header and footer to a bottom sheet"], "what_it_is": "A React bottom sheet component library built on react-spring and react-use-gesture, providing accessible, animated draggable bottom panels with snap points. It emphasizes keyboard navigation and screen reader support while remaining highly performant and customizable via CSS custom properties.", "when_to_avoid": ["you are not using React", "you need a full-featured modal/dialog system beyond bottom sheets", "you need a bottom sheet for React Native rather than the web"], "when_to_choose": ["you need an accessible bottom sheet in a React project", "you want spring-based animations with full CSS customization", "you need snap points, rubber banding, and touch gesture support", "you want a small, performant component with TypeScript support"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/react-spring-bottom-sheet", "repo": "stipsan/react-spring-bottom-sheet", "role": "main", "score": 67}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.572346+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:55:07.904226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98f3d1487ea70522042927cc166a192aef3add6442ec5d113ee65aa17f450d96", "fetched_at": "2026-08-28T04:03:27.572346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stipsan/react-spring-bottom-sheet"}, {"content_hash": "662f37323be5ac6087b0a59ebcc8082a9ca9a46e9e9a55740dbaeae3803fe3a3", "fetched_at": "2026-08-29T12:56:57.037774+00:00", "kind": "homepage", "missing": false, "url": "https://react-spring.bottom-sheet.dev/"}, {"content_hash": "617a0f1e68a6e37831a5c99028942e57414c47d68a977c5dd081c54e94aee42b", "fetched_at": "2026-08-29T12:56:57.046948+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-spring-bottom-sheet"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.572346+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:55:07.904226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98f3d1487ea70522042927cc166a192aef3add6442ec5d113ee65aa17f450d96", "fetched_at": "2026-08-28T04:03:27.572346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stipsan/react-spring-bottom-sheet"}, {"content_hash": "662f37323be5ac6087b0a59ebcc8082a9ca9a46e9e9a55740dbaeae3803fe3a3", "fetched_at": "2026-08-29T12:56:57.037774+00:00", "kind": "homepage", "missing": false, "url": "https://react-spring.bottom-sheet.dev/"}, {"content_hash": "617a0f1e68a6e37831a5c99028942e57414c47d68a977c5dd081c54e94aee42b", "fetched_at": "2026-08-29T12:56:57.046948+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-spring-bottom-sheet"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:55:07.904226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98f3d1487ea70522042927cc166a192aef3add6442ec5d113ee65aa17f450d96", "fetched_at": "2026-08-28T04:03:27.572346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stipsan/react-spring-bottom-sheet"}, {"content_hash": "662f37323be5ac6087b0a59ebcc8082a9ca9a46e9e9a55740dbaeae3803fe3a3", "fetched_at": "2026-08-29T12:56:57.037774+00:00", "kind": "homepage", "missing": false, "url": "https://react-spring.bottom-sheet.dev/"}, {"content_hash": "617a0f1e68a6e37831a5c99028942e57414c47d68a977c5dd081c54e94aee42b", "fetched_at": "2026-08-29T12:56:57.046948+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-spring-bottom-sheet"}], "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:27.572346+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.572346+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.572346+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:55:07.904226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98f3d1487ea70522042927cc166a192aef3add6442ec5d113ee65aa17f450d96", "fetched_at": "2026-08-28T04:03:27.572346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stipsan/react-spring-bottom-sheet"}, {"content_hash": "662f37323be5ac6087b0a59ebcc8082a9ca9a46e9e9a55740dbaeae3803fe3a3", "fetched_at": "2026-08-29T12:56:57.037774+00:00", "kind": "homepage", "missing": false, "url": "https://react-spring.bottom-sheet.dev/"}, {"content_hash": "617a0f1e68a6e37831a5c99028942e57414c47d68a977c5dd081c54e94aee42b", "fetched_at": "2026-08-29T12:56:57.046948+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-spring-bottom-sheet"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.572346+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.572346+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:55:07.904226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98f3d1487ea70522042927cc166a192aef3add6442ec5d113ee65aa17f450d96", "fetched_at": "2026-08-28T04:03:27.572346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stipsan/react-spring-bottom-sheet"}, {"content_hash": "662f37323be5ac6087b0a59ebcc8082a9ca9a46e9e9a55740dbaeae3803fe3a3", "fetched_at": "2026-08-29T12:56:57.037774+00:00", "kind": "homepage", "missing": false, "url": "https://react-spring.bottom-sheet.dev/"}, {"content_hash": "617a0f1e68a6e37831a5c99028942e57414c47d68a977c5dd081c54e94aee42b", "fetched_at": "2026-08-29T12:56:57.046948+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-spring-bottom-sheet"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.572346+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.572346+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.572346+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:55:07.904226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98f3d1487ea70522042927cc166a192aef3add6442ec5d113ee65aa17f450d96", "fetched_at": "2026-08-28T04:03:27.572346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stipsan/react-spring-bottom-sheet"}, {"content_hash": "662f37323be5ac6087b0a59ebcc8082a9ca9a46e9e9a55740dbaeae3803fe3a3", "fetched_at": "2026-08-29T12:56:57.037774+00:00", "kind": "homepage", "missing": false, "url": "https://react-spring.bottom-sheet.dev/"}, {"content_hash": "617a0f1e68a6e37831a5c99028942e57414c47d68a977c5dd081c54e94aee42b", "fetched_at": "2026-08-29T12:56:57.046948+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-spring-bottom-sheet"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.572346+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:27.572346+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:55:07.904226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98f3d1487ea70522042927cc166a192aef3add6442ec5d113ee65aa17f450d96", "fetched_at": "2026-08-28T04:03:27.572346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stipsan/react-spring-bottom-sheet"}, {"content_hash": "662f37323be5ac6087b0a59ebcc8082a9ca9a46e9e9a55740dbaeae3803fe3a3", "fetched_at": "2026-08-29T12:56:57.037774+00:00", "kind": "homepage", "missing": false, "url": "https://react-spring.bottom-sheet.dev/"}, {"content_hash": "617a0f1e68a6e37831a5c99028942e57414c47d68a977c5dd081c54e94aee42b", "fetched_at": "2026-08-29T12:56:57.046948+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-spring-bottom-sheet"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:55:07.904226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98f3d1487ea70522042927cc166a192aef3add6442ec5d113ee65aa17f450d96", "fetched_at": "2026-08-28T04:03:27.572346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stipsan/react-spring-bottom-sheet"}, {"content_hash": "662f37323be5ac6087b0a59ebcc8082a9ca9a46e9e9a55740dbaeae3803fe3a3", "fetched_at": "2026-08-29T12:56:57.037774+00:00", "kind": "homepage", "missing": false, "url": "https://react-spring.bottom-sheet.dev/"}, {"content_hash": "617a0f1e68a6e37831a5c99028942e57414c47d68a977c5dd081c54e94aee42b", "fetched_at": "2026-08-29T12:56:57.046948+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-spring-bottom-sheet"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:55:07.904226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98f3d1487ea70522042927cc166a192aef3add6442ec5d113ee65aa17f450d96", "fetched_at": "2026-08-28T04:03:27.572346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stipsan/react-spring-bottom-sheet"}, {"content_hash": "662f37323be5ac6087b0a59ebcc8082a9ca9a46e9e9a55740dbaeae3803fe3a3", "fetched_at": "2026-08-29T12:56:57.037774+00:00", "kind": "homepage", "missing": false, "url": "https://react-spring.bottom-sheet.dev/"}, {"content_hash": "617a0f1e68a6e37831a5c99028942e57414c47d68a977c5dd081c54e94aee42b", "fetched_at": "2026-08-29T12:56:57.046948+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-spring-bottom-sheet"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:55:07.904226+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "98f3d1487ea70522042927cc166a192aef3add6442ec5d113ee65aa17f450d96", "fetched_at": "2026-08-28T04:03:27.572346+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stipsan/react-spring-bottom-sheet"}, {"content_hash": "662f37323be5ac6087b0a59ebcc8082a9ca9a46e9e9a55740dbaeae3803fe3a3", "fetched_at": "2026-08-29T12:56:57.037774+00:00", "kind": "homepage", "missing": false, "url": "https://react-spring.bottom-sheet.dev/"}, {"content_hash": "617a0f1e68a6e37831a5c99028942e57414c47d68a977c5dd081c54e94aee42b", "fetched_at": "2026-08-29T12:56:57.046948+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/react-spring-bottom-sheet"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "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": 2107, "days_push": 7, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}