Newed UI - Component Library

NWD Color Picker (HEX/RGB/HSL) v0.9.0 Pending review

NWD Color Picker (HEX/RGB/HSL) is the color input Bubble was always missing. Built as a native-like input, it brings a full color panel, transparency, presets, an eyedropper and typed colors together in one polished component, and it can publish a truly empty value when no color is chosen. 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

Full Color Panel

Pick a color in a saturation area with hue and transparency sliders, or type any CSS color straight into the input.

Fast Picking

Grab any color on screen with the eyedropper, or offer a row of preset colors for the picks people make most.

Complete Styling Control

Over 30 properties covering three input layouts, the swatch shape from square chip to circle, and the floating panel with glass effects.

Truly Optional Value

Publishes an empty value when no color is chosen, so an optional color field in your database can really stay empty.

Accessible Experience

Reach every control with Tab, Enter, Space, Escape and the arrow keys, with an accessible label, screen reader support and reduced motion respected.

Workflow Ready

Read the color in five formats plus every channel as a number, set it from any workflow, and react to value changed.

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

    Choose the layout, the output format and the colors, and set a default value if the field should start filled.

  3. 03
    Connect to your workflows

    Use the value changed event to react to a new color, and read the exposed states to use it anywhere in your app. For Bubble's own color fields, use value (rgba).

INPUT 8

For basic styling of the input, use Bubble's native properties such as font, background, border, border radius, padding and box shadow. The properties in this section cover what is specific to the color picker.

General

Input placeholder

text

Text displayed in the input while it has no value.

defaultPick a color

optional

Input placeholder color

color

Color of the placeholder text.

default#AAAAAA

Color format

dropdown

Format of the value and of the text shown in the input.

  • hexreturns the color as a hex code. With transparency enabled it has 8 digits, which Bubble's own color fields do not read.
  • rgbreturns the color as rgb() or rgba().
  • hslreturns the color as hsl() or hsla().

defaulthex

Input layout

dropdown

Which parts the input shows: compact is the color swatch alone, standard adds the color code next to it, and full adds the opacity field as well. Enabling transparency inside the panel is a separate setting.

  • compactthe color swatch alone, filling the whole input.
  • standardthe swatch next to the color code.
  • fullthe swatch, the color code and the opacity field.

defaultstandard

Swatch border radius

number

Corner radius of the input swatch, in pixels. Use 0 for a square swatch, and a value equal to or greater than half its size for a circle. It is independent of the element's native roundness, and applies in both layouts. The preset swatches and the swatch inside the panel are not affected.

default6

Swatch relief

text

Outline drawn over the swatch, always on all four sides so it stays visible against any background. Line is a thin outline, shadow is a drop shadow under the swatch, and veil is an inner relief shaded from top to bottom. The tone of line and veil follows the chosen color: dark over light colors, light over dark ones.

  • linea thin outline around the swatch.
  • shadowa drop shadow under the swatch.
  • veilan inner relief, shaded from top to bottom.

defaultveil

Display color tooltip?

yes/no

Shows the color code on hover, over the input swatch and over each preset.

defaultno

Tooltip show delay (ms)

number

Time (in milliseconds) before the tooltip appears after hover.

default400

DEFAULT DATA 1

Default value

text

Color applied on load and on reset (hex, rgb or hsl).

defaultno default

optional

FLOATING PANEL 13

General

Enable transparency?

yes/no

Adds the opacity slider.

defaultyes

Display format switcher?

yes/no

Shows the selected color inside the panel, in a field that switches between hex, rgb and hsl with each click, next to a button that copies it. The format chosen here changes only what the panel shows, never the value the input publishes.

defaultno

Display eyedropper?

yes/no

Turns the color preview inside the panel into an eyedropper, to pick a color from anywhere on the screen. Only Chrome and Edge support it; elsewhere the preview stays a preview.

defaultno

Panel position

dropdown

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

  • auto-topopens above the input, and flips below when there is not enough room.
  • auto-bottomopens below the input, and flips above when there is not enough room.
  • topalways opens above the input.
  • bottomalways opens below the input.

defaultauto-bottom

Animation type

dropdown

Opening animation of the floating panel.

  • nonethe panel simply appears.
  • dropfalls into place from above.
  • elasticovershoots slightly and settles.
  • expandgrows from the edge of the input.
  • fadefades in.
  • popscales up quickly from the centre.
  • slideslides in from the resolved direction.
  • zoomzooms in from a smaller size.

defaultfade

Appearance

Panel bg color

color

Background color of the floating panel.

default#FFFFFF

Panel border color

color

Sets the border color of the floating panel.

default#DEDEDE

Glass effect

dropdown

Intensity of the glassmorphism effect on the floating panel.

  • nonesolid panel background.
  • subtlebarely visible blur behind the panel.
  • lightlight blur.
  • mediumbalanced blur, the most common choice.
  • strongheavy blur.
  • intensemaximum blur, for panels over busy backgrounds.

defaultnone

Presets

Divider line color

color

Color of the divider line above the presets. Leave it empty to follow the panel background.

defaultno default

optional

Display presets?

yes/no

Shows the preset swatches inside the panel. Turning it off hides them even when the list is filled.

defaultyes

Presets label

text

Title shown above the preset colors. Leave it empty to show the presets without a title.

defaultPreset colors

optional

Presets label font color

color

Color of the title above the preset colors. Leave it empty to follow the element's font color.

defaultno default

optional

Preset colors (press Enter between each color)

text

Colors shown as quick picks in the panel. One color per line, and it accepts a dynamic list, so the palette can come from your data.

defaultno default

optional

INPUT BEHAVIOR 9

Disabled state

This input is disabled?

yes/no

Disables the component, preventing any interaction.

defaultno

Input bg color (disabled)

color

Input background color when disabled.

default#F4F4F4

Input border color (disabled)

color

Input border color when disabled.

default#CACACA

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

Focused state

Input bg color (focused)

color

Input background color when focused.

default#FFFFFF

Input border color (focused)

color

Input border color when focused.

default#30B3FE

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 18

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

The color is published in five formats at the same time, plus every channel as a separate number. Use value (rgba) for Bubble's own color fields, and contrast color when text has to stay readable on top of the chosen color.

value

text

Selected color in the chosen format. Empty when no color is selected.

value (hex)

text

Selected color as hex (#RRGGBB or #RRGGBBAA).

value (rgba)

text

Selected color as rgba().

value (hsla)

text

Selected color as hsla(), always with the alpha channel.

value (oklch)

text

Selected color as oklch(), for custom CSS. Bubble's own color fields do not read this format; use value (rgba) for those.

red

number

Red channel of the selected color, from 0 to 255.

green

number

Green channel of the selected color, from 0 to 255.

blue

number

Blue channel of the selected color, from 0 to 255.

hue

number

Hue of the selected color, from 0 to 360.

saturation

number

Saturation of the selected color, from 0 to 100.

lightness

number

Lightness of the selected color, from 0 to 100.

alpha

number

Opacity from 0 to 1.

contrast color

text

Black or white, whichever reads better on top of the selected color. Transparency is ignored, because what shows through is the background behind the element.

is dark

yes/no

Yes when the selected color is dark enough to need light text on top of it. Empty color reads as not dark.

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 input has focus.

Events 1

Where a workflow can start.

value changed

event

Triggered when a different color is confirmed: closing the panel, picking a preset or resetting.

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 color, or clears it.

Focus no params

Focuses the input and opens the color panel.

Set value 2 params

Sets the color from a workflow, in any CSS format the input accepts. An empty value clears the color and a value that is not a color is ignored.

Apply even when disabled?

boolean

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

defaultno default

Value

text

New color. Accepts any CSS color the input accepts when typed, in any format. An empty value clears the color, and an unrecognized value is ignored.

defaultno default

optional

FAQ 6

Why use NWD Color Picker?

Bubble has no native color input, so apps usually fall back on a plain text field where the user types a hex code by hand. This plugin gives a real picker with a saturation area, hue and transparency sliders, presets and an eyedropper, and it publishes the chosen color in several formats at once.

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

No. Place the element on the page, configure the properties in the editor, and read the exposed states in your workflows. Nothing needs to be installed and no external service is involved.

Which color formats can be typed into the input?

Anything the browser understands as a CSS color: named colors such as tomato, hex with 3, 4, 6 or 8 digits, rgb, hsl and hwb, and the modern formats lab, lch, oklab, oklch, color() in any color space and color-mix(). The output format chosen in the properties does not restrict what can be typed; it only decides how the value comes back.

Can the field stay empty?

Yes, and that is unusual: the element publishes an empty value when no color is chosen, so an optional color field in your database can really stay empty instead of defaulting to black or white. The Set value action clears the color when it receives an empty value.

Which state should be used to fill a Bubble color field?

Use value (rgba). With transparency enabled, the hex output has 8 digits, and Bubble's own color fields do not read that format. The value (rgba) state always works, with or without transparency.

The color is not appearing in the editor canvas, what should I check?

The editor preview only shows values typed as literals. If the default value comes from a dynamic expression, the canvas shows the empty pattern while the app shows the color normally. This is a limitation of the Bubble editor, not of the element.