Need help with JVFloatLabeledTextField?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

7.1K Stars 758 Forks MIT License 284 Commits 24 Opened issues


UITextField subclass with floating labels - inspired by Matt D. Smith's design:

Services available


Need anything else?

Contributors list


Build Status Carthage compatible Pod Version Pod Platform Pod License CocoaPods

is the first implementation of a UX pattern that has come to be known the "Float Label Pattern".

Due to space constraints on mobile devices, it is common to rely solely on placeholders as a means to label fields. This presents a UX problem, in that, once the user begins to fill out a form, no labels are present.

This UI component library, which includes both a

subclass, aims to improve the user experience by having placeholders transition into floating labels that hover above the fields after they are populated with text.

Credits for the concept to Matt D. Smith (@mds), and his original design:

Matt D. Smith's Design

The component is officially supported for iOS 9 and greater.

Getting started via CocoaPods

sudo gem install cocoapods

Create a

in your project directory:
pod init

Add the following to your

project's target:
pod 'JVFloatLabeledTextField'

Then run CocoaPods with

pod install

Finally, include

in your project.

Getting started via Carthage

brew update
brew install carthage

Create a

in your project directory that contains:
github "jverdi/JVFloatLabeledTextField"

Then run carthage with

carthage update
and add
to your project from the

Finally, include

in your project: ```


Getting started via SPM (Xcode 11+)

Click File -> Swift Packages -> Add Package Dependency, enter JVFloatLabeledText repo's URL.

After select the package, you can choose the dependency type (tagged version, branch or commit). Then Xcode will setup all the stuff for you.

If you're a framework author and use JVFloatLabeledTextField as a dependency, update your Package.swift file:

```swift let package = Package( dependencies: [ .package(url: "", from: "1.2.2") ], )

Additional References

How the Float Label Pattern Started - Matt D. Smith
Float Label Pattern - Brad Frost
Material Design - Floating Labels - Google

Ports and Alternate Implementations

Android - Henrik Sandström
Android - Kaushik Gopal
Android - Kevin Johnson
Xamarin.iOS - Greg Shackles
Xamarin.Android - Johan du Toit
CSS Jonathan Snook
JQuery / Zepto.js - Achmad Mahardi
JQuery - Mike Mitchell
AngularJS - Dave Ackerman
Bootstrap plugin - Matt Powell
JavaFX - Andy Till
Swift - Dirk Fabisch
Swift - Fahim Farook
Swift - Neeraj Kumar
Swift - Jimmy Jose
Swift - Skyscanner (Daniel Langh, Gergely Orosz, Raimon Lapuente)
ObjC - Arthur Ariel Sabintsev
ObjC - Rob Phillips
4D - Maurice Inzirillo
Appcelerator Titanium - The Smiths
B4i - Erel Uziel

Added a port? Let me know - @jverdi

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.