{"adoption": {"forks": 60, "observed_at": "2026-08-28T04:04:00.016607+00:00", "stars": 1210}, "canonical_url": "https://ross.abutalabs.com/products/keyboardlayoutguide", "card": {"archived": false, "artifact_type": "library", "description": "⌨️ KeyboardLayoutGuide, back from when it didn't exist.", "domain": ["mobile-development"], "enriched": true, "function": ["ui-components", "state-management"], "health_score": 29, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["freshOS/KeyboardLayoutGuide"], "name": "freshOS/KeyboardLayoutGuide", "platform": [], "pushed_at": "2024-09-20T07:48:41+00:00", "repo": "freshOS/KeyboardLayoutGuide", "stars": 1210, "tags": ["autolayout", "uikit", "keyboard-layout-guide", "swift-package-manager", "ios", "swift", "mobile"], "topics": ["ios", "swift", "keyboard", "keyboard-layout", "layoutguide", "layout", "autolayout"], "urls": [], "use_cases": ["pin a button above the iOS keyboard with autolayout", "avoid handling keyboard show/hide notifications in UIKit", "keep a text field visible when the keyboard appears", "constrain views to the keyboard top anchor", "handle keyboard layout with safe area insets"], "what_it_is": "A Swift library that provides Apple's missing keyboardLayoutGuide for iOS, letting developers pin views to the keyboard via Auto Layout constraints without handling keyboard notifications. It respects the safe area and only animates when views are fully on screen.", "when_to_avoid": ["you build with SwiftUI and can use the native keyboardLayoutGuide", "your app targets platforms other than iOS", "you need highly custom keyboard animation behavior beyond constraint-based layout"], "when_to_choose": ["you build UIKit apps on iOS and want simple keyboard-avoiding layouts", "you want a drop-in layout guide instead of manual notification handling", "you need safe-area-aware keyboard constraints with minimal setup"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/keyboardlayoutguide", "repo": "freshOS/KeyboardLayoutGuide", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.016607+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:18:11.422297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4b99eaf75c2673a7158cedb5eee7a88770336cd5b01af1b7aeb01b92a74af96", "fetched_at": "2026-08-28T04:04:00.016607+00:00", "kind": "readme", "missing": false, "url": "https://github.com/freshOS/KeyboardLayoutGuide"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.016607+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:18:11.422297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4b99eaf75c2673a7158cedb5eee7a88770336cd5b01af1b7aeb01b92a74af96", "fetched_at": "2026-08-28T04:04:00.016607+00:00", "kind": "readme", "missing": false, "url": "https://github.com/freshOS/KeyboardLayoutGuide"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:18:11.422297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4b99eaf75c2673a7158cedb5eee7a88770336cd5b01af1b7aeb01b92a74af96", "fetched_at": "2026-08-28T04:04:00.016607+00:00", "kind": "readme", "missing": false, "url": "https://github.com/freshOS/KeyboardLayoutGuide"}], "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:00.016607+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.016607+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.016607+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:18:11.422297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4b99eaf75c2673a7158cedb5eee7a88770336cd5b01af1b7aeb01b92a74af96", "fetched_at": "2026-08-28T04:04:00.016607+00:00", "kind": "readme", "missing": false, "url": "https://github.com/freshOS/KeyboardLayoutGuide"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.016607+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.016607+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:18:11.422297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4b99eaf75c2673a7158cedb5eee7a88770336cd5b01af1b7aeb01b92a74af96", "fetched_at": "2026-08-28T04:04:00.016607+00:00", "kind": "readme", "missing": false, "url": "https://github.com/freshOS/KeyboardLayoutGuide"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.016607+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.016607+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.016607+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:18:11.422297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4b99eaf75c2673a7158cedb5eee7a88770336cd5b01af1b7aeb01b92a74af96", "fetched_at": "2026-08-28T04:04:00.016607+00:00", "kind": "readme", "missing": false, "url": "https://github.com/freshOS/KeyboardLayoutGuide"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.016607+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:00.016607+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:18:11.422297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4b99eaf75c2673a7158cedb5eee7a88770336cd5b01af1b7aeb01b92a74af96", "fetched_at": "2026-08-28T04:04:00.016607+00:00", "kind": "readme", "missing": false, "url": "https://github.com/freshOS/KeyboardLayoutGuide"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:18:11.422297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4b99eaf75c2673a7158cedb5eee7a88770336cd5b01af1b7aeb01b92a74af96", "fetched_at": "2026-08-28T04:04:00.016607+00:00", "kind": "readme", "missing": false, "url": "https://github.com/freshOS/KeyboardLayoutGuide"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:18:11.422297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4b99eaf75c2673a7158cedb5eee7a88770336cd5b01af1b7aeb01b92a74af96", "fetched_at": "2026-08-28T04:04:00.016607+00:00", "kind": "readme", "missing": false, "url": "https://github.com/freshOS/KeyboardLayoutGuide"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:18:11.422297+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e4b99eaf75c2673a7158cedb5eee7a88770336cd5b01af1b7aeb01b92a74af96", "fetched_at": "2026-08-28T04:04:00.016607+00:00", "kind": "readme", "missing": false, "url": "https://github.com/freshOS/KeyboardLayoutGuide"}], "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": 3214, "days_push": 712, "days_rel": 712, "gap_med": null, "n_releases_24m": 1}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}