Newed UI - Component Library

NWD Radio Buttons (Row/Column/Grid) v0.5.0

NWD Radio Buttons (Row/Column/Grid) is the radio group Bubble was always missing. Built to replace the native radio buttons, it lays the options out in a row, a column, or a grid and brings flexible layout, static or dynamic choices, and click animations together in one polished component. Fully customizable through 30+ properties, giving you complete control over every visual and behavioral detail.

No data collected This plugin does not collect user data.

← All plugins

Key features 6

Row, Column or Grid

Lay the options out vertically, horizontally or in a grid with a chosen number of columns and a single spacing control.

Static or Dynamic Choices

Type the options line by line, or feed them from Datatypes and Option Sets while keeping the type your workflows expect.

Full State Styling

Radio background, border, dot and font colors set independently for the unselected, hovered and selected states.

Click Animations

Six animation styles on click, including bounce, elastic and pop, that respect the user's reduced motion setting.

Accessible Experience

A real radio group: Tab reaches it, the arrow keys move between options, and it carries an accessible label and description.

Workflow Ready

Value changed event, Reset, Focus and Set value actions, and exposed states for the value, its index, is clickable, is required, is valid and is focused.

How to use 3

  1. 01
    Insert the element on the page

    Place the plugin element wherever you need it.

  2. 02
    Configure the properties

    Adjust the settings to match your use case, including the layout, the choices source, the colors of each state, and the default value.

  3. 03
    Connect to your workflows

    Use the value changed event to react to the user, and read the exposed states to use the selected option or its index anywhere in your app.

RADIO BUTTONS 17

The option labels use Bubble's native font properties. The properties in this section control the radio 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.

General

Label placement

dropdown

Side of the label relative to the radio.

  • right
  • left

defaultright

Stretch label to fill the line?

yes/no

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

Radio size

number

Diameter of the radio, in pixels.

default18

Click animation

dropdown

Animation played on the radio when an option is clicked.

  • none
  • bounce
  • elastic
  • jelly
  • pop
  • pulse

defaultbounce

Layout

Options layout

dropdown

How the options are arranged.

  • vertical
  • horizontal
  • grid

defaultvertical

Grid columns

number

Number of columns when the layout is grid.

default2

Options gap

number

Space between options, in pixels.

default8

Unselected state

Radio bg color (unselected)

color

Radio background color when unselected.

default#FFFFFF

Radio border color (unselected)

color

Radio border color when unselected.

default#CACACA

Option font color (unselected)

color

Font color of the options. When empty, uses the element font color.

defaultno default

optional

Hovered state

Radio bg color (hovered)

color

Radio background color on hover, when the input is enabled.

default#FAFAFA

Radio border color (hovered)

color

Radio border color on hover, when the input is enabled.

default#30B3FE

Option font color (hovered)

color

Option font color on hover, when the input is enabled. Empty keeps the native font color.

defaultno default

optional

Selected state

Radio bg color (selected)

color

Radio background color when selected.

default#FFFFFF

Radio border color (selected)

color

Radio border color when selected.

default#30B3FE

Radio dot color

color

Border and dot color of the selected radio.

default#30B3FE

Option font color (selected)

color

Font color of the selected option. When empty, uses the option font color.

defaultno default

optional

DATA SOURCE & DEFAULT DATA 7

Choices style

dropdown

Sets how the options are sourced, either from a static list or a dynamic data source.

  • static
  • dynamic

defaultno default

Type of choices

app type

Sets the type of the options. Static choices are converted to this type, and dynamic choices and default values must match it.

defaultno default

Static choices

Static choices source (press Enter between each option)

text

Sets the list of static choices. Enter one option per line.

defaultno default

optional

Default static value

text

Option selected on load and on reset (static choices).

defaultno default

optional

Dynamic choices

Dynamic choices source

list dynamic value

Sets the list of dynamic choices.

defaultno default

optional

Option caption

text

Sets which field to display as the option label for dynamic choices.

defaultno default

optional

Default dynamic value

dynamic value

Option selected on load and on reset (dynamic choices).

defaultno default

optional

INPUT BEHAVIOR 7

Disabled state

This input is disabled?

yes/no

Disables the component, preventing any interaction.

defaultno

Input opacity (disabled)

number

Opacity applied to the radio button when disabled, from 0 to 1. The radio button 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 (disabled)

color

Input font color when disabled.

default#CACACA

Required state

This input is required?

yes/no

Marks the field as required and enables input validation.

defaultno

Input bg color (invalid)

color

Input background color when invalid (required with no value).

default#FFDEDE

Input border color (invalid)

color

Input border color when invalid (required with no value).

default#FF6666

Input font color (invalid)

color

Option font color when invalid (required with no selection). Empty keeps the native font color.

defaultno default

optional

ACCESSIBILITY 2

Accessible label

text

Name read by screen readers. When empty, uses the placeholder or the visible label.

defaultno default

optional

Accessible description

text

Hint read by screen readers after the name. Empty for none.

defaultno default

optional

States 6

Values the element exposes for the rest of the page to read.

value

dynamic value

Selected option. Empty when nothing is selected.

value index

number

Position of the selected option, starting at 1. Empty when nothing is selected.

is clickable

yes/no

True when the component is not disabled.

is required

yes/no

True when the input is marked as required.

is valid

yes/no

True when the field is not required, or when it is required and has a valid value.

is focused

yes/no

True while the element has keyboard focus. Tab in sets it, and Tab out or a click outside clears it.

Events 1

Where a workflow can start.

value changed

event

Triggered when a different option is selected or when the selection is reset.

Actions 3

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).

Reset no params

Restores the default option, or clears the selection.

Focus no params

Focuses the selected option, or the first one.

Set value 1 param

Selects an option from a workflow. The value must be one of the current choices; empty clears the selection.

Value

dynamic value

Option to select. It must be one of the current choices; empty clears the selection.

defaultno default

optional

FAQ 5

Why use NWD Radio Buttons instead of the native Bubble radio buttons?

The native element gives you almost no control over the layout or the look of each option, and its appearance drifts between browsers. This plugin renders its own radios, arranges them in a row, a column or a grid, and looks the same everywhere.

Does it work with Datatypes and Option Sets?

Yes. Set the choices style to dynamic, pick the type of choices, and point the source at your list. The caption comes from the field you choose, and the exposed value keeps the original type, so a Thing stays a Thing in your workflows.

Does it require any advanced knowledge to set up?

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.

Can I focus or reset the component from a Bubble workflow?

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.

Can I predefine styles and reuse them across multiple radio groups?

Yes. The visual properties support Bubble's predefined styles, so the layout, the colors, the size and the animation can be saved once and reused on every radio group in the app.