Version 2.0.0

Color slider

A color slider lets users visually change an individual channel of a color.

Anatomy#


Image illustrating through labels the component parts of a color slider, including its track and handle.

Options#


Key example showing three horizontal color sliders demonstrating use for selecting hue, brightness, and opacity.

Background#

The background of the color slider is a visual representation of the range of values a user can select from. This can represent color properties such as hues, color channel values (such as RGB or CMYK levels), or opacity. The exact format this background property takes will depend on what implementation you are working with. Some examples of the format include image, canvas, and gradient.

Key example showing 2 horizontal color sliders demonstrating use for selecting and opacity. Hue example has a value of 306, min value 0, max value 360, step 1. Opacity example has a value of 50, min value 0, max value 100, step 1.

Value, min value, max value, step#

The value is the number selected within the color slider’s range, from the min value to max value.

The min and max values also can be customized appropriately for what the color slider is being used for (such as 0 to 360 for hue). By default, the min value starts at 0 and max value is set to 100.

The step refers to the increment by which these values increase or decrease. A step value of 1 (default) allows a user to only select whole numbers within the min and max range.

Key example showing two color sliders. Horizontal color slider with annotated values from 0 (left) to 1 (right). Vertical color slider with annotated values from 0 (bottom) to 1 (top).

Orientation#

Color sliders can be either in horizontal or vertical orientation. By default, a color slider is horizontal and should be used when vertical space is more limited. The vertical orientation is used when horizontal space is more limited.

Key example showing horizontal color slider length annotated with customizable length.

Length#

The length of a color slider is size-2400 (192 px on desktop, 240 px on mobile) by default, but can be customized appropriately for its context. It has a fixed thickness of size-300 (24 px on desktop, 30 px on mobile).

Key example showing horizontal color slider in its disabled state where both the track and handle are grays.

Disabled#

A color slider in a disabled state shows that an input exists, but is not available in that circumstance. This can be used to maintain layout continuity and communicate that a slider may become available later.

Table of options#

From the design point of view, each component has a number of options. These options and their names are platform agnostic, and each implementation should adapt these to fit into their framework.

PropertyValuesDefault Value
background
This will vary depending on implementation.
value
number (from min to max)
min value
number
0
max value
number
100
step
number
1
orientation
horizontal / vertical
horizontal
length
number
size-2400
is disabled
yes / no
no

Behaviors#


Example of a color slider in a keyboard focus state for a blue color channel, with the handle enlarged to show the selected color.

Keyboard focus#

A color slider can be navigated using a keyboard. The keyboard focus state enlarges the handle to be twice as large.

Key example showing three horizontal sliders with the handle either at the first or last position, with the slider demonstrating color hue, channel, or transparency.

Handle behavior#

Unlike the slider itself, the color slider’s handle can slide all the way to the edge of the track. It always displays the selected color inside the handle and never gets cut off by the track or any container.

Examples of horizontally and vertically oriented color sliders, both in the minimum length of size-1000.

Minimum length#

A color slider’s minimum length is size-1000 (80 px on desktop, 100 px on mobile).

Usage guidelines#


Include labels#

Color sliders should be labeled and, when applicable, be accompanied by text fields. In a context when labeling each individual slider may be redundant, make sure to still label the group of sliders (e.g., “RGB,” “HSB,” etc.)

Key example of three color sliders correctly being used with labels and text fields.
Key example of three color sliders incorrectly being used without labels but with text fields.

Display color selection#

When using color sliders, it’s important to clearly display the color selection in real time. It can be in a color swatch, directly on the canvas, or both.

Key example of a color swatch above three color sliders being used to select values for red, green, and blue color channels and one color slider for transparency.

Color loupe on down/touch state#

The color loupe component can be used above the handle to show the selected color that would otherwise be covered by a cursor, stylus, or finger on the down/touch state. This can be customized to appear only on finger-input, or always appear regardless of input type.

Example of a color loupe used with a color slider for a blue color channel, showing the selected color that would otherwise be covered by a cursor on the down/touch state.

Keyboard interactions#


KeyInteraction
TabPlaces focus on the handle. If the handle is already in focus, moves focus to the next handle or next element in the page tab sequence.
Shift + TabPlaces focus on the previous handle or previous element in the page tab sequence.
Up, Down, Left, or Right ArrowMoves the handle up/down/left/right.

Changelog#


DateNumberNotes
May 13, 20202.0.0
  • Removed color loupe (separated into its own component)
  • Added background option
  • Added value, min and max values, step options
  • Added length option
Mar 26, 20201.0.1
  • Updated handle border transparency to meet minimum contrast ratio
Apr 20, 20191.0.0
  • This component has been included to the website.

Design checklist#


All interactive states

Includes all interactive states that are applicable (hover, down, focus, keyboard focus, disabled).

Multiple options

Includes relevant options (variant, style, size, orientation, optional iconography, decorations, selection, error state, etc.)

All color themes

Works properly across all four color themes (lightest, light, dark, darkest).

All platform scales

Includes a desktop scale (UWP, macOS, web desktop) and a mobile scale (iOS, Android, web mobile).

Defined behaviors

Includes guidelines for layout (wrapping, truncation, overflow), animation, interactions, etc.

Usage guidelines

Includes a list of dos and don’ts that highlight best practices and common mistakes.

Accessible contrast

Follows WCAG 2.0 standards for contrast (AA).

N/A

Internationalization guidelines

Works properly across various locales and includes guidelines for bi-directionality (RTL).

Keyboard interactions

Follows WCAG 2.0 standards for keyboard accessibility guidelines and includes a description of the keyboard interactions.

Design tokens

All design attributes (color, typography, layout, animation, etc.) are included in Spectrum DNA.

Generated UI kit

Includes a downloadable XD file that has been generated by code and shows multiple variations, states, color themes, and scales.

In Spectrum for Adobe XD plugin

Component is included in the Spectrum for Adobe XD plugin.