termino

Slider

A draggable slider for continuous values. Supports vertical and horizontal orientations.

~/components/slider — focus, ←→ or drag
live
$ termino slider-demo
volume 65 ██████████████████████████░░░░░░░░░░░░░
event focus() — use arrows

##Basic usage

Construct API is not available yet — use SliderRenderable directly:

tsrenderable
1import { SliderRenderable, createCliRenderer } from "@opentui/core"
2
3const renderer = await createCliRenderer()
4
5const slider = new SliderRenderable(renderer, {
6id: "volume",
7orientation: "horizontal",
8width: 30,
9height: 1,
10min: 0,
11max: 100,
12value: 25,
13onChange: (value) => {
14 console.log("Value:", value)
15},
16})
17
18renderer.root.add(slider)

##Vertical slider

ts
1const slider = new SliderRenderable(renderer, {
2orientation: "vertical",
3width: 2,
4height: 10,
5min: 0,
6max: 1,
7value: 0.5,
8})

##Properties

properties
proptypedefaultdescription
orientation"vertical" | "horizontal"requiredSlider direction
valuenumberminCurrent value
minnumber0Minimum value
maxnumber100Maximum value
viewPortSizenumberMath.max(1, (max - min) * 0.1)Viewport size used to calculate the thumb size
backgroundColorColorInput"#252527"Track color
foregroundColorColorInput"#9a9ea3"Thumb color
onChange(value: number) => void-Called when the stored value changes