Skip to main content

Slider

Open in ChatGPT
Shadow dwc-slider 24.10
Java API

The Slider component gives users a way to select a numeric value by dragging a knob along a track between a minimum and maximum bound. Step intervals, tick marks, and labels can be configured to guide the selection.

A new Slider spans a range from 0 to 100 with a starting value of 50, so it works without any setup. Properties such as orientation, tick marks, labels, and tooltips cover more specific cases, like the volume control below.

Show Code

Slider value​

The Slider value represents the current position of the knob on the slider and is defined as an integer within the Slider's range. This value dynamically updates as the user interacts with the slider, making it an essential property for tracking user input.

Default value

By default, the Slider starts with a value of 50, assuming the default range of 0 to 100.

Setting and getting the value​

You can set the Slider's value during initialization or update it later using the setValue() method. To retrieve the current value, use the getValue() method.

Slider slider = new Slider();
slider.setValue(25); // Sets the slider to 25

Integer value = slider.getValue();
System.out.println("Current Slider Value: " + value);

Minimum and maximum values​

The minimum and maximum values define the allowable range of the Slider, determining the boundaries within which the Slider knob can move. By default, the range is set from 0 to 100, but you can customize these values to suit your needs.

The intervals on the Slider have a default step of 1, meaning the number of intervals is determined by the range. For example:

  • A Slider with a range of 0 to 10 will have 10 intervals.
  • A Slider with a range of 0 to 100 will have 100 intervals.

These intervals are evenly distributed along the slider track, with their spacing depending on the Slider’s dimensions.

Below is an example of creating a Slider with a custom range:

Show Code

Tick configuration​

The Slider component offers flexible tick configuration, allowing you to customize how tick marks are displayed and how the slider knob interacts with them. This includes adjusting major and minor tick spacing, showing/hiding tick marks, and enabling snapping to tick marks for precise user input.

Major and minor tick spacing​

You can define the spacing for major and minor tick marks, which determines how frequently they appear on the Slider track:

  • Major ticks are larger and often labeled to represent key values.
  • Minor ticks are smaller and appear between major ticks to offer finer intervals.

Set the tick spacing using the following setMajorTickSpacing() and setMinorTickSpacing() methods:

slider.setMajorTickSpacing(10); // Major ticks every 10 units
slider.setMinorTickSpacing(2); // Minor ticks every 2 units

Show or hide ticks​

You can toggle the visibility of tick marks using the setTicksVisible() method. By default, tick marks are hidden.

slider.setTicksVisible(true); // Show tick marks
slider.setTicksVisible(false); // Hide tick marks

Snapping​

To ensure the Slider knob aligns with the nearest tick mark during user interaction, enable snapping using the setSnapToTicks() method:

slider.setSnapToTicks(true); // Enable snapping

Here’s an example of a fully configured Slider showing major and minor tick settings along with the snapping capability for precise adjustments:

Show Code

Orientation and inversion​

The Slider component supports two orientations: horizontal (default) and vertical. You can change the orientation to suit your UI layout and app requirements.

In addition to orientation, the Slider can also be inverted. By default:

  • A horizontal Slider goes from minimum (left) to maximum (right).
  • A vertical Slider goes from minimum (bottom) to maximum (top).

When inverted, this direction is reversed. Use the setInverted(true) method to enable inversion.

Show Code

Labels​

The Slider component supports labels on tick marks to help users interpret the values more easily. You can use default numeric labels or provide custom ones, and you can toggle their visibility as needed.

Default labels​

By default, the slider can display numeric labels at major tick marks. These values are determined by the setMajorTickSpacing() setting. To enable default labels, use:

slider.setLabelsVisible(true);

Custom labels​

You can replace the default numeric labels with custom text using the setLabels() method. This is helpful when you want to display more meaningful values (e.g., temperature, currency, or categories).

Map<Integer, String> customLabels = Map.of(
0, "Cold",
30, "Cool",
50, "Moderate",
80, "Warm",
100, "Hot"
);

slider.setLabels(customLabels);
slider.setLabelsVisible(true);

Toggling label visibility​

Whether you're using default or custom labels, you can control their visibility with setLabelsVisible(true) or hide them with setLabelsVisible(false).

Show Code

Tooltips​

Tooltips enhance usability by displaying the Slider’s value directly above or under the knob, helping users make more precise adjustments. You can configure the tooltip’s behavior, visibility, and format to suit your needs.

To enable tooltips, use the setTooltipVisible() method. By default, tooltips are disabled:

slider.setTooltipVisible(true); // Enable tooltips
slider.setTooltipVisible(false); // Disable tooltips

Tooltips can also be configured to appear only when the user interacts with the Slider. Use the setTooltipVisibleOnSlideOnly() method to enable this behavior. This is especially useful for reducing visual clutter while still providing helpful feedback during interaction.

Here’s an example of a fully configured Slider with tooltips:

Tooltip customization​

By default, the Slider shows a tooltip with its current value. If you want to customize this text, use the setTooltipText() method. This is useful when you want the tooltip to show static or descriptive text instead of the live value.

You can also use a JavaScript expression to format the tooltip dynamically. If your expression includes the return keyword, it's used as-is. If not, it's automatically wrapped with return and ; to form a valid function. For example:

// Shows value followed by a dollar sign
slider.setTooltipText("return x + '$'");

Or simply:

// Interpreted as: return x + ' units';
slider.setTooltipText("x + ' units'");

Styling​

Themes​

The Slider comes with 6 themes built in for quick styling without the use of CSS. Theming is supported by use of a built-in enum class. Shown below are sliders with each of the supported Themes applied:

Show Code

Loading...