Custom Marks & Shapes
Five check icons and full control over size and border radius, from a square box to a perfect circle.
Newed UI - Component Library
NWD Checkbox (Custom Marks/Shapes) is the checkbox Bubble was always missing. Built to replace the native checkbox, it offers far more styling flexibility than Bubble’s native element and brings full styling control, custom check mark styles, and click animations together in one polished component. Fully customizable through 20+ properties, giving you complete control over every visual and behavioral detail.
No data collected This plugin does not collect user data.
Five check icons and full control over size and border radius, from a square box to a perfect circle.
Background, border and font colors set independently for the unchecked, hovered and checked states.
Preselect a value, mark the input as required, and style the invalid state without a single workflow.
Six animation styles on click, including bounce, elastic and pop, that respect the user's reduced motion setting.
Keyboard ready with Tab and Space, a visible focus ring, an accessible label and description, and reduced motion support.
Value changed event, Reset, Focus and Set value actions, and exposed states for the value, is clickable, is required, is valid and is focused.
Place the plugin element wherever you need it.
Adjust the settings to match your use case, including the label, the checkbox shape and size, the colors of each state, and the default value.
Use the value changed event to react to the user, and read the exposed states to use the checked value anywhere in your app.
The label uses Bubble's native font properties. The properties in this section control the checkbox box itself and the label colors for each state.
Bubble's native font alignment moves the whole element, the control and its label together, not just the text. Turn on 'Stretch label to fill the line' and the label takes the rest of the line instead, pushing the control to the opposite edge, with the same native alignment positioning the text inside it. For anything beyond that, wrap the element in a group and align the group.
Text shown next to the checkbox.
defaultCheckbox label
Side of the label relative to the checkbox.
rightleftdefaultright
The label fills the rest of the line, pushing it to the edge opposite the control, and the native font alignment then positions the text inside it. If disabled, the label hugs the control and the native font alignment moves the whole component instead.
defaultno
Size of the box, in pixels.
default18
Corner radius of the box, in pixels.
default4
Animation played on the box when the checkbox is clicked.
nonebounceelasticjellypoppulsedefaultbounce
Checkbox background color when unchecked.
default#FFFFFF
Checkbox border color when unchecked.
default#CACACA
Checkbox background color on hover, when the input is enabled.
default#FAFAFA
Checkbox border color on hover, when the input is enabled.
default#30B3FE
Input font color on hover, when the input is enabled. Empty keeps the native font color.
defaultno default
optionalCheckbox background color when checked.
default#30B3FE
Checkbox border color when checked.
default#30B3FE
Input font color when checked. Empty keeps the native font color.
defaultno default
optionalMark shown inside the checked box.
checkcheck bolddashcrossplusdefaultcheck
Color of the check mark.
default#FFFFFF
Value applied on load and on reset. Yes means checked, no means unchecked.
defaultno
Disables the component, preventing any interaction.
defaultno
Opacity applied to the checkbox when disabled, from 0 to 1. The checkbox keeps the colors of its current state, so a checked one still reads as checked. The label is not affected and uses Input font color (disabled).
default0.5
Input font color when disabled.
default#CACACA
Marks the field as required and enables input validation.
defaultno
Input background color when invalid (required with no value).
default#FFDEDE
Input border color when invalid (required with no value).
default#FF6666
Input font color when invalid (required with no value). Empty keeps the native font color.
defaultno default
optionalName read by screen readers. When empty, uses the placeholder or the visible label.
defaultno default
optionalHint read by screen readers after the name. Empty for none.
defaultno default
optionalValues the element exposes for the rest of the page to read.
True when checked. Keeps the value while the element is hidden.
True when the component is not disabled.
True when the input is marked as required.
True when the field is not required, or when it is required and has a valid value.
True while the element has keyboard focus. Tab in sets it, and Tab out or a click outside clears it.
Where a workflow can start.
Triggered when the checkbox is checked or unchecked, including by reset.
What a workflow can tell the element to do.
The actions can be triggered from any workflow event. The plugin also responds to Bubble's native reset actions (Reset a group/popup).
Restores the default value.
Focuses the checkbox.
Checks or unchecks the checkbox from a workflow.
New value (yes checks, no unchecks). Empty counts as no.
defaultno default
The native checkbox offers almost no styling control: you cannot change the check mark, the shape, the hovered state or the animation, and its appearance drifts between browsers. This plugin renders its own box, so it looks the same everywhere and matches your design.
No. Place the element on the page, configure the properties in the editor, and connect it to your workflows. All properties have descriptions and sensible defaults, so you can get started quickly without deep technical knowledge.
Yes. The plugin exposes a Focus action and a Reset action, and it also responds to Bubble's native reset actions (Reset a group/popup). Both are ignored while the input is disabled.
Yes. The visual properties support Bubble's predefined styles, so the colors, the size, the border radius, the check icon and the animation can be saved once and reused on every checkbox in the app.