Hacking Bubble: The Keyboard Shortcuts Hack

How to create keyboard shortcuts in Bubble, a no-code visual web editor.

Ryan Roberts
October 08, 2016 • 6 minute read
Hacking Bubble: The Keyboard Shortcuts Hack

Creating keyboard shortcuts in Bubble seemed impossible at first. Until one day, while playing around with some conditionals, workflows, and input fields, I found a way to create a shortcut in Bubble.


But before we continue, after this article was originally published, a keyboard shortcut plugin was made available, which renders this article useless. However, this article could still show you new ways that you can use Bubble beyond how it’s probably suppose to.

[New Free Plugin] Air Keyboard Shortcut
The Air Keyboard Shortcut plugin allows you to define shortcut key combination and use it to trigger workflow actions…

The Philosophy of The Shortcut

Input fields are back again, we used them last time to learn how to convert data and this time we are using them to create shortcuts. If you want to make something like Dribbble’s keyboard shortcut for liking a post, this will get you there.

We will be covering the basics of creating keyboard shortcuts and there are many ways to set them up. We’ll be covering just one way so you can get an idea of how it works. After learning how it works, you’ll be able to tweak it to work for what you’re making.

The Bubbler’s Dilemma

You can do this with code, check out https://jsfiddle.net/dmtf6n27/38/ copy and paste the JavaScript into an HTML element in Bubble. Surround the Javascript with a <script> tag and you’re done. Well, if you just want the shortcut to do essentially nothing but display an alert. Which is fine if that’s what you’re looking for. You can even put in dynamic information for it to display in the alert. But, I don’t think that’s what we want.

We can’t use it to run a workflow, or toggle an element’s visibility, or do anything really fun since Bubble can’t get information from the HTML element yet. Just put information into it, albeit, dynamically.


Update: We can now get information from HTML elements using this plugin.

Toolbox plugin - collection of utility elements
Announcing Toolbox, a plugin containing some element-based utilities. #List of Numbers Generate a list of numbers. Can…

The “Real Solution”

The “real solution” to creating a shortcut for your app is to use the Input Form. It allows us to capture the user’s keyboard and do something based on the value inside the Input Form.

We just have to make sure that it always has focus unless the user is filling out another Input Form or things could get annoying pretty fast. This is where things can get complicated, because you will have to direct focus. It’s tricky unless you don’t have any sort of input fields that will conflict with the input field used for capturing the user’s keyboard.

We’ll have to make sure after each time a user loses focus of another input field, we return focus to it for the shortcuts.

Setting up the input field

In the Bubble editor (Create an account here and follow the tutorials if you are unfamiliar), let’s start off by drawing out an input form. Create a new condition under the conditionals tab for the input form. This new condition goes as “When this input isn’t focused”. Select the dropdown for that condition to change the state of the input’s visibility. Make sure the option is unchecked. This will make sense why we are doing this later on.

Bubble input field.

We never want the input to actually be shown to the user, it just technically will be visible when focused. So, edit the style of the input so people won’t be aware of it on your page. It’ll act as a hidden element just capturing the user’s keyboard presses.

Settings up the workflows

We’ll need three or more workflows for this. One for making sure the focus is on the input field. The second is to do something with the value inside the input field. And the third for clearing the input field automatically. If we don’t automatically clear the input after every keystroke, the input will be populated with previous values while trying to enter the new shortcut command.

Making the input always in focus

Create a new workflow for when a condition is true and set it to run every time, not just once. Set the condition for when the Input isn’t visible. Soon this may start making sense why we made the input invisible if not focused. Create two actions for this workflow, one for showing the input (making it visible again), and the second to give focus to the input. If you preview your app now, the input should never lose focus.

This will be different if you have multiple input forms on your web page. When you have multiple inputs, you will need to create flow control (a series of workflows for directing where the current focus should be), but that’s not in the scope of this article.

Doing something with the input value

Since the input is now always in focus, we’ll need to make something happen when the correct shortcut key(s) have been entered. You can make a popup display (what we’ll be doing), changing something in the database, or pretty much anything else you can do with workflows.

Congratulations page.

Create another when condition is true workflow and set the condition to be true when the value of the input is ‘A’. Make sure it’s a capital, since we want the shortcut key command to be “Shift + a”. Make sure this will also run every time and not just once.

Let’s create an action that will toggle the popup’s visibility. You can find this under Element Actions. If we preview this, pressing “Shift + a” should make the popup become visible. However, if we press it again, it won’t disappear.

Why is that, you ask? The input still has the last value in it, so we will have to make sure a value doesn’t stay in the input. To do this, let’s create our third when condition is true workflow. Set the condition to when the input contains more than zero characters. This will run every time as well.

Bubble workflow.

Don’t worry! We can still do something with the value before it’s erased.

The action for this new workflow is reset contents. This will get rid of the content inside the input for us, preventing an overlap of values. I also recommend to limit the amount of characters that can be entered.

Bubble character limit.

Preview this and you should be able to press “Shift + a” to show the popup. By pressing it again, the popup should diappear.

If this isn’t working for you, let me know in the comment section and I or someone else can help you out.

Limitations

With this method we cannot currently capture if the user has the Command or Control key down. We can get the Option (or Alt) key if pressed down. For example: if we want the shortcut to be “Option + a”, we would just need to see if the value they entered was å. The Option key plus the A key will generate that symbol. You can just use the special character to determine if the shortcut has been pressed. We can also use the Shift key as a modifier which is like the Option key, it just capitalizes the letter, of course.

We can’t get a lot of info from the user’s keyboard, however, we should have enough to do some great things with it.

The Limitations Hack

If you need to use other modifiers besides the shift key, you can see how to get around those limitations here.


Hacking Bubble is a series on how to make Bubble do things it probably wasn’t meant to do.

Don’t miss out on the latest Bubble content by signing up here.

Was this article useful? Do you have a better or different approach? Leave a comment!

Start building with a free account

Build your app on Bubble's Free plan. No need to upgrade until you're ready to launch your app.

Join Bubble

LATEST STORIES

blog-thumbnail

27+ SaaS Stats on Market Growth, Usage, Launching a SaaS Startup, and More

SaaS spend and growth is up in 2024, even though growth rates have cooled slightly from previous years. Get the details on why, the state of the SaaS market, and more in this roundup of stats you should know.

Bubble
December 11, 2024 • 11 minute read
blog-thumbnail

Bubble vs. Glide: Comparing the Top No-Code Platforms

Glide is great for a quick, out-of-the-box, no-code solution when you need less customization. However, Bubble offers much stronger customization, community, and versatility. Here’s our comparison of both platforms.

Bubble
December 11, 2024 • 24 minute read
blog-thumbnail

Top 25 Brand and Customer Loyalty Stats for 2025 — What You Need to Know

Customer and brand loyalty are crucial to business success. Learn the top customer loyalty strategies and statistics, what impacts customer retention, and more.

Bubble
December 09, 2024 • 7 minute read
blog-thumbnail

Bubble vs. FlutterFlow: Comparing the Top No-Code Platforms

FlutterFlow is a no-code development platform built on Google’s open source software development kit, Flutter. Bubble’s no-code platform has been used to build and scale nearly 5 million apps over the last 10+ years. Here’s how they compare.

Bubble
December 06, 2024 • 21 minute read

The Essential Brand Elements: 15 Assets That Will Help Your Startup Stand Out

November 20, 2024 • 15 minute read

What Is User Acceptance Testing (UAT) and How to Do It Well

October 30, 2024 • 12 minute read

Web Content Architecture 101: 5 Simple Steps to Organize Your Site's Structure

October 25, 2024 • 9 minute read

Intuitive UX Design: 10 Great Examples and Why They Work

October 15, 2024 • 13 minute read

Software Development Lifecycle (SDLC) in No-Code Development: Stages and Principles Explained

August 26, 2024 • 9 minute read

Build the next big thing with Bubble

Start building for free