Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

ColorPicker

Inherits: VBoxContainer < BoxContainer < Container < Control < CanvasItem < Node < Object

A widget that provides an interface for selecting or modifying a color.

Description

A widget that provides an interface for selecting or modifying a color. It can optionally provide functionalities like a color sampler (eyedropper), color modes, and presets.

Note: This control is the color picker widget itself. You can use a ColorPickerButton instead if you need a button that brings up a ColorPicker in a popup.

Tutorials

Properties

bool

can_add_swatches

true

Color

color

Color(1, 1, 1, 1)

ColorModeType

color_mode

0

bool

color_modes_visible

true

bool

deferred_mode

false

bool

edit_alpha

true

bool

hex_visible

true

PickerShapeType

picker_shape

0

bool

presets_visible

true

bool

sampler_visible

true

bool

sliders_visible

true

Methods

void

add_preset ( Color color )

void

add_recent_preset ( Color color )

void

erase_preset ( Color color )

void

erase_recent_preset ( Color color )

PackedColorArray

get_presets ( ) const

PackedColorArray

get_recent_presets ( ) const

Theme Properties

int

center_slider_grabbers

1

int

h_width

30

int

label_width

10

int

margin

4

int

sv_height

256

int

sv_width

256

Texture2D

add_preset

Texture2D

bar_arrow

Texture2D

color_hue

Texture2D

color_okhsl_hue

Texture2D

expanded_arrow

Texture2D

folded_arrow

Texture2D

overbright_indicator

Texture2D

picker_cursor

Texture2D

sample_bg

Texture2D

screen_picker

Texture2D

shape_circle

Texture2D

shape_rect

Texture2D

shape_rect_wheel


Signals

color_changed ( Color color )

Emitted when the color is changed.


preset_added ( Color color )

Emitted when a preset is added.


preset_removed ( Color color )

Emitted when a preset is removed.


Enumerations

enum ColorModeType:

ColorModeType MODE_RGB = 0

Allows editing the color with Red/Green/Blue sliders.

ColorModeType MODE_HSV = 1

Allows editing the color with Hue/Saturation/Value sliders.

ColorModeType MODE_RAW = 2

Allows the color R, G, B component values to go beyond 1.0, which can be used for certain special operations that require it (like tinting without darkening or rendering sprites in HDR).

ColorModeType MODE_OKHSL = 3

Allows editing the color with Hue/Saturation/Lightness sliders.

OKHSL is a new color space similar to HSL but that better match perception by leveraging the Oklab color space which is designed to be simple to use, while doing a good job at predicting perceived lightness, chroma and hue.

Okhsv and Okhsl color spaces


enum PickerShapeType:

PickerShapeType SHAPE_HSV_RECTANGLE = 0

HSV Color Model rectangle color space.

PickerShapeType SHAPE_HSV_WHEEL = 1

HSV Color Model rectangle color space with a wheel.

PickerShapeType SHAPE_VHS_CIRCLE = 2

HSV Color Model circle color space. Use Saturation as a radius.

PickerShapeType SHAPE_OKHSL_CIRCLE = 3

HSL OK Color Model circle color space.

PickerShapeType SHAPE_NONE = 4

The color space shape and the shape select button are hidden. Can't be selected from the shapes popup.


Property Descriptions

bool can_add_swatches = true

  • void set_can_add_swatches ( bool value )

  • bool are_swatches_enabled ( )

If true, it's possible to add presets under Swatches. If false, the button to add presets is disabled.


Color color = Color(1, 1, 1, 1)

  • void set_pick_color ( Color value )

  • Color get_pick_color ( )

The currently selected color.


ColorModeType color_mode = 0

The currently selected color mode. See ColorModeType.


bool color_modes_visible = true

  • void set_modes_visible ( bool value )

  • bool are_modes_visible ( )

If true, the color mode buttons are visible.


bool deferred_mode = false

  • void set_deferred_mode ( bool value )

  • bool is_deferred_mode ( )

If true, the color will apply only after the user releases the mouse button, otherwise it will apply immediately even in mouse motion event (which can cause performance issues).


bool edit_alpha = true

  • void set_edit_alpha ( bool value )

  • bool is_editing_alpha ( )

If true, shows an alpha channel slider (opacity).


bool hex_visible = true

  • void set_hex_visible ( bool value )

  • bool is_hex_visible ( )

If true, the hex color code input field is visible.


PickerShapeType picker_shape = 0

The shape of the color s