GCS Studios

NWD Dropdown+Search (Single/Multi) v1.31.0

NWD Dropdown+Search (Single/Multi) was built to replace both of Bubble’s dropdowns, the native element and the Multiselect Dropdown plugin maintained by Bubble, and offers far more styling flexibility and control. It brings single and multi selection with chips, static and dynamic data, built in search, bulk selection and smart positioning together in one polished component. Fully customizable through 90+ properties, giving you complete control over every visual and behavioral detail.

No data collected

Why use this?

Built for what Bubble does not cover.

Bubble's native dropdown only does single selection, with no multiple or bulk choice, and its look is limited and dated. It is built on the traditional select element, where some properties cannot be styled and others are overridden by each browser.

For multiple selection there is an official Bubble plugin, Multiselect Dropdown, but it costs you a second element that does not match the look of the native single dropdown, and it is just as limited in behaviour and styling.

Key features 6

Flexible Selection

Pick one option or many in the same element, shown as removable chips or as text with a live counter, with a select all control and an optional limit for long lists.

Instant Search

Type to filter the list as you go, in a search field that takes the focus as soon as the panel opens.

Any Data Source

Works with data types, option sets and static lists, and gives your workflows back the same type you put in.

Complete Styling Control

The input, the panel and every option state are yours to style, custom scrollbars included.

Accessible Experience

Fully operable from the keyboard and announced to screen readers, with motion preferences respected.

Workflow Ready

Everything the input knows is available to your workflows, and every change is an event you can react to.

In detail

Powerful Selection Engine

  • Seamless single and multi selection in one powerful element
  • Works with any data source including Datatypes, Option Sets, and other static or dynamic values
  • Smart defaults that preselect values effortlessly
  • Built in instant search to quickly find options as you type
  • Select all or a customized list with clear visual feedback
  • Multi selection shown as removable chips, wrapping or on a single line, or as text with a live counter
  • Selection kept in the order of the list or in the order it was made, with an optional limit and a message when it is reached

Fully Customizable

  • 90+ properties for complete visual and behavioral control
  • Fully customizable option states: available, hovered and selected
  • Search field with its own colors, icons and height, which follows the element by default
  • Advanced visual customization including custom scrollbars, modern glass effects, and a built in icon library
  • Seamless integration with native Bubble styles while preserving a consistent appearance across browsers and matching your app design

Smooth User Experience

  • Search field focused automatically when the panel opens, with an option to clear it on close
  • Smooth animation types with smart directional positioning that adapts beautifully to any screen
  • Keyboard ready with Tab, Enter, Space, Escape, and the arrow keys to move through the options
  • Screen reader ready with an accessible label and description, and reduced motion support
  • Handles disabled, required, and invalid states with customizable styling that integrates with Bubble styles
  • Consistent experience across browsers and devices

Workflow Friendly

  • All relevant values available via exposed states, including the selected value in single and multiple modes, is clickable, is required, is valid, and is focused
  • Default value available to your workflows even while the element is hidden
  • Reset action with flexible behavior that integrates with native Bubble actions (Reset a group/popup) or custom workflows
  • Focus action that can be triggered from anywhere for total control over workflow and accessibility
  • Set value action that can be triggered from anywhere, with a field for each selection mode and control over how it behaves when the input is disabled
  • Value changed event for seamless Bubble integration

Reliable & Production-Ready

  • Built with lightweight CSS and JavaScript for fast, reliable performance
  • Designed around practical use cases and real Bubble development needs
  • Tested in real-world applications before being released publicly
  • Created to extend Bubble with functionality and customization beyond what native Bubble elements typically offer

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

    Point the data source at your list, choose single or multi selection, and decide whether the searchbox and the bulk selection appear. The floating panel and the option list have their own styling sections.

  3. 03
    Connect to your workflows

    Use the value changed event to capture confirmed selections, and read the exposed states according to the selection mode you chose.

INPUT 9

For basic styling of the dropdown input, use Bubble's native properties such as font, background, border, border radius, padding, and box shadow. Additional properties for the dropdown input field are configured in this section.

General

Input placeholder

text

Text displayed in the input while it has no value.

Input placeholder color

color

Color of the placeholder text.

Persistent placeholder?

yes/no

Keeps the placeholder visible after a value is selected.

Selection mode

dropdown

Defines whether the user can select one or multiple options.

  • singleallows selecting only one option at a time.
  • multipleallows selecting multiple options.

Input icon

Display input icon?

yes/no

Controls whether the input icon is displayed.

Input icon class

dropdown

Icon displayed in the input.

  • chevrona chevron pointing down, which turns when the panel opens.
  • chevron up downa pair of chevrons pointing up and down.
  • filtera funnel drawn in outline, for filtering contexts.
  • filter filleda solid funnel.
  • filter listlines of decreasing length, for filtering contexts.

Input icon size

number

Icon size in pixels. When empty, it is calculated from the input font size.

This property is not dynamic to facilitate control through native styles, since native styles in Bubble only support static properties.

Input icon color

color

Color of the input icon.

Input icon placement

dropdown

Whether the icon appears to the left or right of the input text.

  • leftpositions the icon on the left side of the dropdown trigger.
  • rightpositions the icon on the right side of the dropdown trigger.

MULTIPLE SELECTION 18

General

Multiple selection display

dropdown

How the selected options appear in the input when the selection mode is multiple: the labels as text with the counter tag, or one chip per option, each with a button to remove it.

  • counter
  • chips

Selection order

dropdown

Order of the selected options in the chips, in the input text and in the published value (multiple): the order of the list, or the order in which they were selected.

  • list order
  • selection order

Max selections

number

Sets the maximum number of options that can be selected in multi selection mode. Leave it empty for no limit.

Limit reached label

text

Message displayed inside the panel when the selection limit is reached.

Limit reached font color

color

Font color of the limit reached message.

Counter tag

Counter display mode

dropdown

Sets when the counter tag is shown.

  • alwaysalways shows the counter tag with the number of selected items.
  • conditionallyshows the counter only when the selected items exceed the visible space.

Counter bg color

color

Sets the background color of the counter tag.

Counter border color

color

Sets the border color of the counter tag.

Counter font color

color

Sets the text color of the counter tag.

Counter border radius

number

Sets the border radius (in pixels) of the counter tag.

This property is not dynamic to facilitate control through native styles, since native styles in Bubble only support static properties.

Chips

Chips layout

dropdown

Wrap breaks the chips into new lines and the input grows with them, so turn on Fit height to content. Single line keeps one line and shows the chips that do not fit as +N, styled as the counter tag.

  • wrap
  • single line

Keep selected options in the list?

yes/no

Keeps the selected options in the list, marked as selected. Unchecked, they leave the list while they are chips and come back when removed. Keyboard users deselect through the list, so keep it checked when that matters.

Chip bg color

color

Sets the background color of the chips.

Chip border color

color

Sets the border color of the chips.

Chip font color

color

Sets the text color of the chips. Empty uses the input font color.

Chip remove icon color

color

Sets the color of the remove button on each chip. Empty uses the chip font color.

Chip remove icon bg color (hovered)

color

Background color of the circle behind the remove button on each chip, on hover. Empty uses the remove icon color at 10% opacity.

Chip border radius

number

Sets the border radius (in pixels) of the chips.

DATA SOURCE & DEFAULT DATA 8

Choices style

dropdown

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

  • staticuse a manually defined list of options.
  • dynamicuse data from Datatypes, Option Sets, basic types or values provided by other plugins.

Define the data source and default value(s) (if applicable) based on the Selection mode set for the input. For a dynamic source, also specify the field to be used as the caption.

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.

Static choices

Static choices source (press Enter between each option)

text

Sets the list of static choices. Enter one option per line and press Enter between each option. With Type of choices set to number, write one number per line, with a dot for decimals and no thousands separator (3.5, 1000); lines that are not numbers are left out.

Default static value (if multiple, press Enter between each option)

text

Sets the default static value(s) selected for single or multiple selection (static choices). It should be of the same type as the type of content defined in Type of choices.

Dynamic choices

Dynamic choices source

list dynamic value

Sets the list of dynamic choices.

Option caption

text

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

Default dynamic value (single)

dynamic value

Sets the default dynamic value selected for single selection (dynamic choices).

Default dynamic value (multiple)

list dynamic value

Sets the default dynamic values selected for multi selection (dynamic choices).

FLOATING PANEL 10

General

Max visible options

number

Sets the maximum number of visible options before scrolling. Accepts values between 1 and 30.

This property is not dynamic to facilitate control through native styles, since native styles in Bubble only support static properties.

Panel position

dropdown

Preferred or forced opening direction of the floating panel relative to the input.

  • auto-topopens upward if there is enough space above, downward otherwise. If neither side has enough space, opens toward the side with more space.
  • auto-bottomopens downward if there is enough space below, upward otherwise. If neither side has enough space, opens toward the side with more space.
  • topalways opens upward, regardless of available space.
  • bottomalways opens downward, regardless of available space.

Animation type

dropdown

Opening animation of the floating panel.

  • noneno animation, the dropdown appears instantly.
  • dropslides down smoothly from the trigger.
  • elasticadds a bouncing effect for a playful interaction.
  • expandgrows from the trigger area outward.
  • fadefades in gently.
  • popquick scale in effect with a sharp feel.
  • slideslides into view from a direction.
  • zoomscales up smoothly from a smaller size.

Appearance

Panel bg color

color

Background color of the floating panel.

Panel border color

color

Sets the border color of the floating panel.

Glass effect

dropdown

Intensity of the glassmorphism effect on the floating panel.

  • noneno glass effect.
  • subtleapplies a subtle glass effect.
  • lightapplies a light glass effect.
  • mediumapplies a medium glass effect.
  • strongapplies a strong glass effect.
  • intenseapplies an intense glass effect.

Scrollbar

Scrollbar style

dropdown

Look of the scrollbar in the panel lists: hidden (the list still scrolls), minimal (a handle only) or arrows (a handle with an arrow at each end), each in thin or regular width. Firefox shows its own scrollbar for arrows.

  • hidden
  • minimal thin
  • minimal regular
  • arrows thin
  • arrows regular

Fade list edges?

yes/no

Fades the top and bottom edges of the panel lists while there are more items to scroll to on that side.

Empty state

Empty state label

text

Message displayed inside the panel when there are no options to show.

Empty state font color

color

Font color of the empty state message.

BULK SELECTION 7

Enable bulk selection?

yes/no

Enables the bulk selection action inside the panel. Only available in multiple selection mode.

Bulk selection mode

dropdown

Sets the bulk selection action behavior.

  • select allselects all available options in the dropdown.
  • select customselects a predefined subset of options based on a custom list.

Custom selection list

list dynamic value

Sets the custom list of options to be selected when using select custom mode.

Bulk selection label

text

Sets the label for the bulk selection action.

Label font color

color

Sets the font and icon color of the bulk selection action in its default state.

Label font color (selected)

color

Sets the font and icon color of the bulk selection action when all items in the given mode are selected.

Divider line color

color

Color of the divider line below the bulk selection action.

LIST OF OPTIONS 15

Available options

Option bg color (available)

color

Sets the background color of options in their default state. Empty leaves them transparent.

Option border color (available)

color

Sets the border color of options in their default state. Empty leaves them without a visible border.

Option font color (available)

color

Sets the font color of options in their default state. Empty follows the element font color.

Hovered options

Option bg color (hovered)

color

Sets the background color of options when hovered.

Option border color (hovered)

color

Sets the border color of options when hovered.

Option font color (hovered)

color

Sets the font color of options when hovered.

Selected options

Option bg color (selected)

color

Sets the background color of options when selected.

Option border color (selected)

color

Sets the border color of options when selected.

Option font color (selected)

color

Sets the font color of options when selected.

Selection icon

Display selection icon?

yes/no

Displays the selection icon next to each option.

Selection icon class

dropdown

Sets the icon displayed next to each option. Check keeps the space of the icon on unselected options, so the text stays still; check ghost does not.

  • checka check on selected options. The space stays reserved on the others, so the text does not move.
  • check ghostthe same check, without the reserved space: the text can shift when an option is selected.
  • squarean empty square that gets a check inside when selected.
  • square filledan empty square that turns solid, with a check, when selected.
  • circlean empty circle that gets a check inside when selected.
  • circle filledan empty circle that turns solid, with a check, when selected.

Selection icon size

number

Sets the size (in pixels) of the selection icon. When empty, it is calculated from the font size.

This property is not dynamic to facilitate control through native styles, since native styles in Bubble only support static properties.

Selection icon color

color

Sets the color of the selection icon in its default state.

Selection icon color (selected)

color

Sets the color of the selection icon when the option is selected.

Selection icon placement

dropdown

Sets the position of the selection icon.

  • leftdisplays the selection icon on the left side of each option.
  • rightdisplays the selection icon on the right side of each option.

INPUT BEHAVIOR 9

Disabled state

This input is disabled?

yes/no

Disables the component, preventing any interaction.

Disabling an input (native input or plugin input) makes it read-only in the UI, but it's not a secure way to prevent edits. Because it's handled client-side, users can still tamper with it. Use server-side protections like privacy rules, workflow conditions, or backend workflows to enforce security.

For styling, you can use the exposed is clickable state to apply conditionals at the element level, or use the properties below to define global styles for the disabled state.

Input bg color (disabled)

color

Input background color when disabled.

Input border color (disabled)

color

Input border color when disabled.

Input font color (disabled)

color

Input font color when disabled.

Required state

This input is required?

yes/no

Marks the field as required and enables input validation.

Unlike native Bubble inputs, this does not prevent workflows from running automatically. You should use the is valid state in your workflows to handle validation logic.

For styling, you can use the exposed is valid state to apply conditionals at the element level, or use the properties below to define global styles for the invalid state.

Input bg color (invalid)

color

Input background color when invalid.

Input border color (invalid)

color

Input border color when invalid.

Focused state

Input bg color (focused)

color

Input background color when focused.

For styling, you can use the exposed is focused state to apply conditionals at the element level, or use the properties below to define global styles for the focused state.

Input border color (focused)

color

Input border color when focused.

ACCESSIBILITY 2

Accessible label

text

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

Accessible description

text

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

States 6

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

value (single)

dynamic value

Exposes the currently selected item in single selection mode. Returns empty when no option is selected.

value (multiple)

dynamic valuelist

Exposes the list of selected items in multi selection mode. Returns empty when no options are 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 value is accepted. False when it is required and has no confirmed selection. It updates on every change, so a workflow can rely on it; the invalid style only shows after the person leaves the field or closes the panel, or when a workflow sets the value.

is focused

yes/no

True when the panel is open.

Events 1

Where a workflow can start.

value changed

event

Triggered whenever the selection changes: when an option is selected, deselected, or 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

Resets the component to its initial state, reapplying default values if configured, or returning to an empty state, and updates the exposed states accordingly.

Focus no params

Focuses the dropdown and opens its panel programmatically. Ignored if the component is disabled.

Set value 3 params

Sets the selection from a workflow, using the field that matches the current selection mode.

Apply even when disabled?

yes/no

Yes applies the value even while the element is disabled. No makes the action do nothing in that state.

Value (single)

dynamic value

Option to select when the element is in single selection mode. It must be one of the current choices; empty clears the selection.

Value (multiple)

list dynamic value

Options to select when the element is in multiple selection mode. Only options that exist in the current choices are applied; empty clears the selection.

FAQ 7

Is any specific or advanced knowledge required to use the plugin?

No. The plugin is designed to be easy to use. Just place the element on the page, configure the properties in the editor, and connect your preferred data source or static values.

Does it work with Bubble Datatypes and Option Sets?

Yes. The plugin supports Datatypes, Option Sets, static choices, and other dynamic values, allowing it to adapt to many different Bubble use cases without requiring complex workarounds.

Can I use it for both single and multi selection?

Yes. The same element supports both single and multi selection modes, making it easy to reuse across different forms, filters, and selection flows. In multi selection, the choices can appear as removable chips, wrapping into new lines or kept on one line with a +N, or as text with a counter.

Can I limit how many options can be selected?

Yes. Set Max selections in the Multiple Selection section. When the limit is reached, a message appears at the bottom of the panel, and its text and color are yours to set. You can also choose whether the selection follows the order of the list or the order in which it was made.

Does it support search and preselected values?

Yes. The plugin includes built in instant search and supports smart default values, making it easier to guide users and speed up selection.

The dropdown is not showing options, what should I check?

Make sure that:

  1. The data source or static choices were provided correctly
  2. The selected choices type matches the values being passed
  3. If using Dynamic choices, the source contains items
  4. If using Static choices, the values are separated correctly
  5. If using default values, they match the available options
Can I predefine styles and reuse them across multiple inputs?

Yes. The visual properties support Bubble's predefined styles, so a look can be saved once and applied to every input in the app. A few sizing fields are deliberately not dynamic, and that is what lets them travel inside the style instead of being set one input at a time.

NWD UI - Input

This plugin is maintained by GCS Studios and is part of the NWD UI - Input family, form controls built from scratch for Bubble, inspired by a personal component library originally built for React. Each one is carefully designed and tested in real applications before release, for the level of control, polish and reliability that native Bubble inputs often do not provide. See more plugins on the GCS Studios contributor page.

Each control here is drawn by the plugin instead of being restyled from a native one, so they match each other across the library and keep the same shape in every browser.