{"adoption": {"forks": 719, "observed_at": "2026-08-28T04:09:56.180844+00:00", "stars": 7141}, "canonical_url": "https://ross.abutalabs.com/products/jvfloatlabeledtextfield", "card": {"archived": false, "artifact_type": "library", "description": "UITextField subclass with floating labels - inspired by Matt D. Smith's design: http://dribbble.com/shots/1254439--GIF-Mobile-Form-Interaction?list=users", "domain": ["mobile-development", "frontend", "web-design"], "enriched": true, "function": ["ui-components", "form-handling"], "health_score": 20, "homepage": null, "language": "Objective-C", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["jverdi/JVFloatLabeledTextField"], "name": "jverdi/JVFloatLabeledTextField", "platform": [], "pushed_at": "2023-04-17T14:38:05+00:00", "repo": "jverdi/JVFloatLabeledTextField", "stars": 7141, "tags": ["objective-c", "uikit", "floating-label-pattern", "cocoapods", "carthage", "swift-package-manager", "text-field", "text-view", "ux-pattern", "form-input", "ios", "mobile", "swift"], "topics": ["floating-labels", "objective-c", "pod", "carthage", "ui-components", "uikit", "forms"], "urls": [], "use_cases": ["add floating labels to iOS form text fields", "keep field labels visible while users fill out mobile forms", "implement the float label UX pattern in UIKit", "replace placeholder-only labels in iOS forms", "use floating label text views in an Objective-C or Swift app"], "what_it_is": "An Objective-C UIKit library providing UITextField and UITextView subclasses that implement the Float Label Pattern, where placeholders transition into floating labels above fields once populated. It is distributed via CocoaPods, Carthage, and Swift Package Manager for iOS 9+.", "when_to_avoid": ["building with SwiftUI rather than UIKit", "you need cross-platform (Android or web) floating labels", "your project targets iOS versions below 9", "you need actively developed new features rather than a stable maintenance-mode component"], "when_to_choose": ["building an iOS app with UIKit forms that need persistent field labels", "you want the original, battle-tested Float Label Pattern implementation", "you need a component installable via CocoaPods, Carthage, or SPM", "your project supports iOS 9 or later and uses Objective-C or Swift"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/jvfloatlabeledtextfield", "repo": "jverdi/JVFloatLabeledTextField", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.180844+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:40:02.027112+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d341555d7fc197c4073187752cb3b2e8f832aaf6e418b015f0d24f2d6b2616", "fetched_at": "2026-08-28T04:09:56.180844+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jverdi/JVFloatLabeledTextField"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.180844+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:40:02.027112+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d341555d7fc197c4073187752cb3b2e8f832aaf6e418b015f0d24f2d6b2616", "fetched_at": "2026-08-28T04:09:56.180844+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jverdi/JVFloatLabeledTextField"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:40:02.027112+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d341555d7fc197c4073187752cb3b2e8f832aaf6e418b015f0d24f2d6b2616", "fetched_at": "2026-08-28T04:09:56.180844+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jverdi/JVFloatLabeledTextField"}], "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:09:56.180844+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.180844+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.180844+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:40:02.027112+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d341555d7fc197c4073187752cb3b2e8f832aaf6e418b015f0d24f2d6b2616", "fetched_at": "2026-08-28T04:09:56.180844+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jverdi/JVFloatLabeledTextField"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.180844+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.180844+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:40:02.027112+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d341555d7fc197c4073187752cb3b2e8f832aaf6e418b015f0d24f2d6b2616", "fetched_at": "2026-08-28T04:09:56.180844+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jverdi/JVFloatLabeledTextField"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.180844+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.180844+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.180844+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:40:02.027112+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d341555d7fc197c4073187752cb3b2e8f832aaf6e418b015f0d24f2d6b2616", "fetched_at": "2026-08-28T04:09:56.180844+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jverdi/JVFloatLabeledTextField"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.180844+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:56.180844+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:40:02.027112+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d341555d7fc197c4073187752cb3b2e8f832aaf6e418b015f0d24f2d6b2616", "fetched_at": "2026-08-28T04:09:56.180844+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jverdi/JVFloatLabeledTextField"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:40:02.027112+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d341555d7fc197c4073187752cb3b2e8f832aaf6e418b015f0d24f2d6b2616", "fetched_at": "2026-08-28T04:09:56.180844+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jverdi/JVFloatLabeledTextField"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:40:02.027112+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d341555d7fc197c4073187752cb3b2e8f832aaf6e418b015f0d24f2d6b2616", "fetched_at": "2026-08-28T04:09:56.180844+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jverdi/JVFloatLabeledTextField"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:40:02.027112+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d341555d7fc197c4073187752cb3b2e8f832aaf6e418b015f0d24f2d6b2616", "fetched_at": "2026-08-28T04:09:56.180844+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jverdi/JVFloatLabeledTextField"}], "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": 4719, "days_push": 1234, "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}}