Hi everyone! ![]()
I’ve been working on forms recently, especially for Bubble Mobile, and one small thing kept bothering me:
Most forms still need a separate text element above each input just to explain what the field is.
For simple forms that is fine, but once you start building longer forms, onboarding screens, profile pages, checkout flows, surveys, or internal tools, it quickly becomes a lot of extra elements to manage.
So, I always wondered: how can I make this easier, given that Bubble is a platform designed to simplify programming?
So I put together a set of floating label inputs for Bubble Web and Bubble Mobile.
The idea is simple: the label starts inside the field, then smoothly moves up when the user focuses the input or enters a value.

It keeps the UI cleaner, saves vertical space, and gives the form a more polished/native feel.
The plugin currently includes:
Works on Web & Bubble Mobile
Floating Label Input
Floating Label Multi Dropdown
Floating Label Multiline Input
Smooth floating label animation
Cleaner forms without separate text labels for every field
Better UX for mobile forms
Published states for value/focus/validation
Workflow events when values change
Set focus action
Disabled state support
Mobile native React Native components
Web version included too
A small example:
Instead of creating:
- Text: “Full name”
- Input
- Text: “Age”
- Input
- Text: “Message”
- Multiline input
You can use one element per question, because the label is already part of the input behavior.
That makes the page cleaner in the editor and usually creates a nicer experience for the user too.
When you install the plugin (on both the web and mobile versions), it comes with three separate elements: Input, Multidropdown, and Multiline Input.
Web Demo
Try it → Web demo page
Web Editor
See how to use it → Web Editor
Mobile Demo
Try it → Mobile demo page
Mobile Editor
See how to use it → Mobile editor
Marketplace
Get the plugin → Plugin page
Curious to hear what you think, especially from people building mobile forms in Bubble.