Download this notebook from GitHub (right-click to download).

import math
import panel as pn

The EditableRangeSlider widget allows selecting a floating-point range using a slider with two handles and for more precise control also offers a number input boxes.

For more information about listening to widget events and laying out widgets refer to the widgets user guide. Alternatively you can learn how to build GUIs by declaring parameters independently of any specific widgets in the param user guide. To express interactivity entirely using Javascript without the need for a Python server take a look at the links user guide.


For layout and styling related parameters see the customization user guide.


  • start (float): The range’s lower bound

  • end (float): The range’s upper bound

  • step (float): The interval between values

  • value (tuple): Tuple of upper and lower bounds of selected range

  • value_throttled (tuple): Tuple of upper and lower bounds of selected range throttled until mouseup


  • bar_color (color): Color of the slider bar as a hexadecimal RGB value

  • direction (str): Whether the slider should go from left to right (‘ltr’) or right to left (‘rtl’)

  • disabled (boolean): Whether the widget is editable

  • format (str, bokeh.models.TickFormatter): Formatter to apply to the slider value

  • name (str): The title of the widget

  • orientation (str): Whether the slider should be displayed in a ‘horizontal’ or ‘vertical’ orientation.

  • tooltips (boolean): Whether to display tooltips on the slider handle

range_slider = pn.widgets.EditableRangeSlider(
    name='Range Slider', start=0, end=math.pi, value=(math.pi/4., math.pi/2.),


RangeSlider.value returns a tuple of float values that can be read out and set like other widgets:

(0.7853981633974483, 1.5707963267948966)

A custom format string or bokeh TickFormatter may be used to format the slider values:

from bokeh.models.formatters import PrintfTickFormatter

str_format = pn.widgets.EditableRangeSlider(name='Distance', format='0.0a', start=100000, end=1000000)

tick_format = pn.widgets.EditableRangeSlider(name='Distance', format=PrintfTickFormatter(format='%.3f m'))

pn.Column(str_format, tick_format)


Since the EditableRangeSlider widget is a composite widget its options can only be controlled from Python. Try out the effect of these parameters interactively:

pn.Row(range_slider.controls(jslink=False), range_slider)
This web page was generated from a Jupyter notebook and not all interactivity will work on this website. Right click to download and run locally for full Python-backed interactivity.

Download this notebook from GitHub (right-click to download).