A versatile slider with fine-tuned control, adjustable precision, and direct text input for exact values.
- Toggle Between Slider and Input: Switch between a slider and a direct input field for value selection.
- Adjustable Step Size: Show or hide the step size adjustment slider to control the precision of the value.
- Customizable Icons: Use toggle icons to enhance the user interface for swapping views and showing steps.
Install it via pip
:
pip install panel-precision-slider
This project is managed by pixi. You can install the package in development mode using:
git clone https://github.com/panel-extensions/panel-precision-slider
cd panel-precision-slider
pixi run pre-commit-install
pixi run postinstall
pixi run test
The PrecisionSlider
is a custom Panel component that provides a synchronized slider and input field for selecting numerical values with adjustable precision. Users can toggle between a slider and a direct input field, as well as show or hide the step size adjustment.
import panel as pn
from panel_precision_slider import PrecisionSlider
pn.extension()
# Instantiate the PrecisionSlider
precision_slider = PrecisionSlider(
value=5,
min=0,
max=10,
step=0.1,
show_step=True,
swap=False
)
# Display the slider
precision_slider
You can integrate PrecisionSlider
with other Panel widgets and layouts to build interactive dashboards.
import panel as pn
import numpy as np
import holoviews as hv
from panel_precision_slider import PrecisionSlider
hv.extension('bokeh')
pn.extension()
def sine_wave(frequency):
x = np.linspace(0, 10, 500)
y = np.sin(2 * np.pi * frequency * x)
return hv.Curve((x, y), 'x', 'sin(2πfx)')
precision_slider = PrecisionSlider(name="Select Value", value=2.5, min=0, max=5, step=0.05)
sine_plot = pn.bind(sine_wave, precision_slider.param.value)
layout = pn.Column(
"### Precision Slider Example",
precision_slider,
sine_plot
)
layout.servable()
Contributions are welcome! Please follow these steps to contribute:
- Fork the repository.
- Create a new branch:
git checkout -b feature/YourFeature
. - Make your changes and commit them:
git commit -m 'Add some feature'
. - Push to the branch:
git push origin feature/YourFeature
. - Open a pull request.
Please ensure your code adheres to the project's coding standards and passes all tests.