---
url: /components/sliders/guidelines.md
description: >-
  Sliders let users make selections from a range of values. There are four
  configurations: continuous, discrete, centered, range selection.
---

# Sliders

Sliders let users make selections from a range of values. There are four configurations: continuous, discrete, centered, range selection.

[Overview](overview.md) · [Specs](specs.md) · **Guidelines** · [Accessibility](accessibility.md)

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fm7m4gc9t-slider%20motion.mp4?alt=media" aria-label="Photo editor with sliders labeled pop, sharpen, and denoise being adjusted."></video>

Sliders can adjust values in real time, such as image attributes

## Usage

Sliders are used to select values along a track. They’re ideal for adjusting settings such as volume and brightness, or changing the intensity of image filters.<br><br>Sliders can use icons or labels to represent a numeric or relative scale.

![Sound settings screen with continuous sliders labeled call volume and alarm volume.](/assets/b29e876a-mabg8tbj-02.7rUeGjEA.webp)

Use sliders to pick a value from a range, like volume loudness

Changes made with sliders must take effect immediately, so people can understand the effects of their selection as they're moving the slider.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Fm7llbz94-GM3_Expressive_Slider_guideline_3b_IA_V02%20.mp4?alt=media" aria-label="The brightness slider changes the screen’s brightness in real time."></video>

Selection changes are immediate

There are three different variants of sliders: **standard**, **centered**, and **range:**<br><br>Standard sliders select one value from a range of values. Use this when the slider should start from zero or the beginning of a sequence.

![Horizontal standard slider with an end stop indicator.](/assets/8feef039-m7lk01w5-04.D7K_RsXH.webp)

Horizontal standard slider

![Vertical standard slider with an end stop indicator.](/assets/6de9bbcd-m7lk1j0t-05.THILwcrP.webp)

Vertical standard slider

Centered sliders select a value from a positive and negative value range. Use this when zero, or the default value, is in the middle of the range.

![Horizontal centered slider with a negative value and visible stop indicators at each end.](/assets/02d54a66-m7lk3lyv-06.Bgriq1ed.webp)

Horizontal centered slider

![Vertical centered slider with a negative value and visible stop indicators at each end.](/assets/9699046e-m7lk4tsn-07.BA5eKW8B.webp)

Vertical centered slider

Range sliders select two values on one slider to create a range. Use this when defining a minimum and maximum value.<br><br>Avoid using range sliders vertically, as this can add too much cognitive load. People are used to most sliders being horizontal.

::: tip Do
![Horizontal range selection slider with 2 values selected, and a stop indicator at each end.](/assets/f786c3ae-m7lk6981-08.C9s6WQ9t.webp)

Horizontal range slider
:::

::: danger Don't
![Vertical range slider with 2 values selected, and a stop indicator at each end.](/assets/692072b4-m7ln45vm-09-don-t.ityTQlwn.webp)

Because of the additional cognitive load of a range slider, avoid using it in vertical orientation.
:::

## Anatomy

![6 elements of a slider.](/assets/74b66c47-m7m553sk-04-1.VDq99gI8.webp)

1. Value indicator (optional)
2. Stop indicators (optional)
3. Active track
4. Handle
5. Inactive track
6. Inset icon (optional)

### Track

The track shows the full range of values that can be selected on the slider. It has two sections: active and inactive.

* The **active&#xA0;**&#x73;ection of the track is from the minimum value to the handle. For range sliders, the active track is between the two handles.
* The **inactive** section of the track is from the handle to the maximum value, or outside the two handles of a range slider.

For left-to-right (LTR) languages, the values increase from left to right. For right-to-left (RTL) languages, this is reversed.

![Sliders for font size and display size with stop indicators along the track.](/assets/703a3b00-m7lk9dsb-11.FjOB92Vo.webp)

The track on a slider shows the available range

### Handle

The handle can be moved along the track to choose a value.<br><br>When sliders have two handles, the handles choose the minimum and maximum values in a range.<br><br>The handle changes shape to indicate when it’s pressed.

![The handle is a vertical line on the current value of the slider. It shrinks in width when selected.](/assets/160553c1-m7lkaurk-12.CGEqmOJD.webp)

A handle changes shape when it's being pressed or dragged

![2 unselected handles on a slider with range selection.](/assets/f1564fc6-m7lkbdhm-13.D6krstPA.webp)

Two handles are used for sliders with range selection

## Configurations

### Value

The value displays the specific value that corresponds with the handle’s placement. <br><br>A value appears when interacting with the corresponding handle. For range sliders, only one value should be shown at a time.<br><br>If the value is shown elsewhere, the indicator is not required.

![A value of 50 is above a slider handle in the middle of the track.](/assets/a1146007-lx1s2vu5-13.4X57maNQ.webp)

A value can appear while the handle is being pressed or dragged

![A value of 75 is above the pressed range slider handle. The unselected slider doesn’t show the value.](/assets/d401e046-m7lkclo7-14.BYqR09Fh.webp)

For range sliders, the value only appears on one handle at a time

Instead of showing the built-in value label, a separate text input field can be added outside of the slider. If this is added, the slider and value in this text field should automatically update to match each other.

Make sure people can tab to the text field directly after the slider.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flx2tgm3i-GM3-Components-Sliders-3-v01.mp4?alt=media" aria-label="Navigating to an adjacent text label, changing the value to 100 using arrow keys. The slider auto-updates based on input value."></video>

Use **Tab** to navigate to values that are shown outside the slider, like a text input field

### Stop indicators

Stop indicators show which predetermined values can be chosen on the slider. The slider handle snaps to the closest stop. <br><br>Avoid having too many stop indicators on a slider, because it can become visually crowded and difficult to adjust the value.<br><br>All sliders have stops at the end of the inactive track to ensure at least a 3:1 contrast with the background. If the inactive track has this level of contrast already, the end stops can be removed.

![Stop indicators are equally spaced out on a slider.](/assets/15bbba03-lx1s1ozg-10.DLaaUXOF.webp)

Stop indicators show each available value on a slider

Icons or text can be added outside the slider to indicate the range of values and make the slider more accessible. This can be used instead of a stop indicator.

![Plus and minus icons on each end of the slider.](/assets/dedb761c-m7lkfou6-17.ni5dzT0X.webp)

Plus and minus icons, or text, can be added to the left and right of the slider

### Orientation

Sliders can be oriented either horizontally or vertically, depending on what is best for your use case.

![Horizontal slider.](/assets/2039ee7d-m7lkhuu1-18.B4jo1zah.webp)

Standard slider in horizontal orientation

![Vertical slider. Zero is at the bottom.](/assets/e0463ec7-m7lkj1b8-19.BioC4fVe.webp)

Standard slider in vertical orientation

### Inset icon

Standard sliders that are M, L, or XL can include an icon within the track. This icon should illustrate what the slider controls. Avoid adding inset icons to XS or S sliders.<br><br>When there’s not enough space for the icon on the active track, like at a low value, the icon moves to the inactive track.<br><br>Consider swapping which icon is displayed at zero, like a volume icon becoming a mute icon.

::: tip Do
![Inset icon on the active track when the handle is at 50%, and on the inactive track when the handle is at 0.](/assets/d27733f5-m7lkmte8-20.B3rPJVoG.webp)

Inset icons change placement based on the handle
:::

::: danger Don't
![An inset icon on an XS slider. The icon bounds are cut off by the slider container.](/assets/e720f092-m7lni1k4-21-don-t.L8i8e-cm.webp)

Don’t use an inset icon with sliders that have track thicknesses under 40dp
:::

Don’t use inset icons on centered or range sliders. It makes it unclear where the start of the slider is.

::: danger Don't
![Centered slider with an inset icon on one end, and a stop indicator on the other.](/assets/2b31f21f-m7lnlfie-22-don-t.CPWAfUXq.webp)

Don’t use an inset icon on a centered slider
:::

::: danger Don't
![Range slider with an inset icon on one end, and a stop indicator on the other.](/assets/b3b8fbd8-m7lnor7e-23-don-t.pWjOZSBi.webp)

Don’t use an inset icon on a range slider
:::

### Size

Sliders come in different sizes: XS, S, M, L, and XL. Use larger sizes to increase the targets and provide a larger visual emphasis.<br><br>The active and inactive tracks should always be the same size.

![5 sizes of sliders.](/assets/0803bc8b-m7lkolpk-24.BrHa0HM9.webp)

1. XS: 16dp
2. S: 24dp
3. M: 40dp
4. L: 56dp
5. XL: 96dp

XL sliders should be reserved for hero moments, where the slider itself is the most important element on the page.

![An XL slider used to adjust living room temperature on mobile. No other controls are on screen.](/assets/9f90ac66-m7lkr4j4-25.CTKFaPkP.webp)

XL sliders should be the focus of the page

## Behaviors

### Select & drag

Select a value by dragging the handle.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flx2tddmn-GM3-Components-Sliders-4-1-v01.mp4?alt=media" aria-label="Slider handle moves smoothly. The value increases and decreases by single digits."></video>

**Standard slider**: The handle drags smoothly

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flx2tdv5o-GM3-Components-Sliders-4-2-v01.mp4?alt=media" aria-label="Slider handle snaps to the nearest multiple of 10 when moved."></video>

**Slider with stop indicators:** The handle snaps to the closest stop indicator while dragged

### Select jump

Select a value by selecting part of the track.

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flx2tec5h-GM3-Components-Sliders-5-1-v01.mp4?alt=media" aria-label="Slider handle moves smoothly to selected value of the slider."></video>

**Standard**__&#xA0;slider__: The handle moves to the selected location

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flx2tep43-GM3-Components-Sliders-5-2-v01.mp4?alt=media" aria-label="Slider handle moves smoothly to the closest stop indicator value."></video>

**Slider with stop indicators:** The handle moves to the closest stop indicator

### Select & arrow

Select a value using the keyboard.<br><br>**Tab:** Focus lands on handle <br><br>**Arrows:&#xA0;**&#x53;elected value increases or decreases by one value or stop indicator<br><br>**Space & arrows:** Selected value increases or decreases by a larger interval or stop indicator

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flx2tf2t6-GM3-Components-Sliders-6-1-v01.mp4?alt=media" aria-label="Tab selects the slider, and arrow keys move the value by 1."></video>

**Standard**__&#xA0;slider__: The handle moves one value

<video controls src="https://firebasestorage.googleapis.com/v0/b/design-spec/o/projects%2Fgoogle-material-3%2Fimages%2Flx2tffc3-GM3-Components-Sliders-6-2-v01.mp4?alt=media" aria-label="Tab selects the slider, and arrow keys move the value by 10."></video>

**Slider with stop indicators:&#xA0;**&#x54;he handle moves to the next stop indicator
