Browse documentation
Sliders and progress
Edit numeric values or report the progress of a task.
Import
Load the optional component layer before using the examples below.
Ruby
require "zaniah/ui"Values and ranges
A slider edits one value; a range slider edits lower and upper bounds.
Rendered example

Ruby
Zaniah::UI::Slider.new(value: 35, min: 0, max: 100, label: "Volume")
Zaniah::UI::RangeSlider.new(value: [20, 80], label: "Range")
Read-only indicators
Use ProgressBar for task completion, Spinner when progress is unknown, and Meter for a measured quantity with thresholds.
Ruby
Zaniah::UI::ProgressBar.new(value: 60, label: "Export")
Zaniah::UI::Spinner.new(label: "Loading")
Zaniah::UI::Meter.new(value: 72, low: 25, high: 80)
API summary
Constructor options and behaviors are drawn from the component reference.
| Component | Constructor and methods | Variants or behavior |
|---|---|---|
Slider | (value:, min:, max:, step:, label:); on_change | pointer + arrow/Home/End/Page keys |
RangeSlider | (value: [low, high], ...) | two thumbs |
ProgressBar | (value:, min:, max:, label:) | determinate/indeterminate |
Spinner | (label:, size:) | animated loading indicator |
Meter | (value:, low:, high:, optimum:) | thresholds |
Accessibility
Sliders support arrow, Home, End, and Page keys. Always label a progress indicator so its purpose is clear.
| Component | Semantic role |
|---|---|
Slider | slider |
RangeSlider | slider |
ProgressBar | progressbar |
Spinner | progressbar/busy |
Meter | meter |