MARKETPLACE
PLUGINS
SOLID TOGGLE SWITCH
Solid Toggle Switch logo

Solid Toggle Switch

Published August 2026
   •    Updated August 2026

Plugin details

A free toggle switch that behaves itself. One change event per click, correct values inside repeating groups, and full keyboard and screen-reader support.
── WHY ANOTHER TOGGLE? ──

Toggles look trivial and then quietly leak bugs into your workflows. This one closes the five that come up most often:

- One event per change. Fires once, and only when the value actually changed. Never on page load, never two or three times per click. No counter workarounds, no debounce hacks, no workflows running twice.

- Repeating groups keep their row. Bind the optional Sync key to Current cell's Thing's unique id and the toggle re-syncs whenever Bubble recycles it onto a different row. No stale values from the previous row.

- You can tell what caused the change. A Change source state reports user, workflow, preset or reset — so a workflow reacting to changes can ignore its own writes instead of looping forever.

- Honest height in the responsive engine. The element reports the height you set, so parent groups can size around it.

- Accessible by default. Proper switch role, Tab focus with a visible ring, Space and Enter to toggle, and on/off state announced correctly to screen readers.

Also handled: clicks don't propagate to parent groups or clickable repeating-group cells, nothing flashes before the first paint, and autobinding only writes back on genuine user interaction — so a workflow write can't echo into your database.

── CUSTOMISATION ──

Every field accepts dynamic expressions, and the visual ones are style-enabled so you can define them once as a Bubble style.

Track colour when yes / when no · Handle colour when yes / when no · Width · Height · Track roundness · Handle width · Handle roundness · Handle inset · Shadow colour · Shadow horizontal offset · Shadow vertical offset · Shadow blur radius · Transition time · Preset status · Disabled · Sync key

The same element gives you a full iOS pill, a square switch, a Material-style rounded rectangle, large or tiny, flat and shadowless, or a wide switch you can layer a text label over.

── REFERENCE ──

States: Value (yes/no, autobindable) · Change source (text)
Events: A toggle is changed · A toggle is turned on · A toggle is turned off
Actions: Change toggle value · Flip toggle value · Set disabled

Supports Bubble's Reset relevant inputs, which restores the preset value without firing the change event.

Free. No subscription, no usage limits, no feature gate.

Free

For everyone

stars   •   0 ratings
0 installs  
This plugin does not collect or track your personal data.

Platform

Web

Contributor details

Velcod logo
Velcod
Joined 2025   •   1 Plugin
View contributor profile

Instructions

QUICK START
1. Drag the Toggle element onto your page.
2. Set Preset status to the value it should start with — usually a yes/no field on your Thing, e.g. Current User's Notifications enabled.
3. To save changes automatically, enable autobinding on the element and choose the field to modify. Otherwise use the "A toggle is changed" event and write This Toggle's Value yourself.

USING IT INSIDE A REPEATING GROUP

Bind Sync key to Current cell's Thing's unique id.

Bubble recycles element instances between rows as you scroll or change the data source. Without a Sync key the toggle can keep showing the previous row's value. This one field is the whole fix — leave it empty everywhere else.

AVOIDING WORKFLOW LOOPS

If a workflow reacts to "A toggle is changed" and then changes the toggle again, add a condition:

   Only when This Toggle's Change source is "user"

Change source reports one of: initial, user, workflow, preset, reset.

SIZING

Set Width and Height in pixels.
Track roundness — leave blank for a pill (half the height), set 0 for a square switch.
Handle width and Handle roundness — leave blank and they derive from the height.
Handle inset — defaults to 4px. Raise it on larger toggles (about 6px at 52px tall).

FIELDS

Track colour when yes / when no — the bar colour in each state
Handle colour when yes / when no — the knob colour in each state
Width, Height — element size in pixels
Track roundness — 0 for square, half the height for a pill
Handle width, Handle roundness, Handle inset — knob geometry
Shadow colour / horizontal offset / vertical offset / blur radius — knob shadow
Transition time — animation duration in seconds
Preset status — the value the toggle starts at, and what Reset returns it to
Disabled — blocks interaction and dims the element
Sync key — repeating-group row identity, see above

TROUBLESHOOTING

Toggle shows another row's value → set Sync key.
Workflow runs twice → check you aren't reacting to both "A toggle is changed" and "A toggle is turned on/off" for the same job.
Value gets reset unexpectedly → the toggle only re-syncs when Preset status or Sync key actually changes, so check whether your Preset status expression is flipping.
Toggle won't move → check the Disabled field.

Types

This plugin can be found under the following types:
Element   •   Event   •   Action

Categories

This plugin can be found under the following categories:
Productivity   •   Data (things)   •   Technical   •   Visual Elements

Resources

Support contact
Documentation
Tutorial

Rating and reviews

No reviews yet

This plugin has not received any reviews.
Bubble