React 组件

UGSlider 数值滑块

用于在连续或离散区间内选择数值,支持单值、范围、方向、刻度、提示和完整提交语义。

导入方式

按需从包入口导入组件,并在应用入口引入一次样式文件。

tsx
import { UGSlider } from '@ug666/ui-react'

基础与步进

拖动、点击轨道和方向键遵循同一边界与步进;区间模式点击轨道时移动最近手柄。

36

区间选择

传入二元数组后显示两个滑块,并保证起始值不会越过结束值。

20 – 70
20
70

刻度与格式化

marks 只负责说明关键位置,formatTooltip 负责面向用户的数值表达。

50%
静音适中最大

离散停靠与标记步进

showStops 展示可选位置;step='mark' 时拖动和方向键都只会落在 marks 上。

静音最大

数字输入与提示位置

单值横向滑块可与数字输入同步;提示位置和辅助技术文本互不耦合。

65%

垂直方向

垂直滑块通过 height 获得稳定轨道尺寸,适合音频和工具面板。

45

尺寸与状态

尺寸同时控制交互高度与手柄大小;禁用和表单错误使用独立状态。

原生表单与重置

单值提交一个值,区间提交两个同名值;原生 reset 恢复 defaultValue。

20 – 70

属性

属性类型默认值说明
value / defaultValuenumber | [number, number]— / 0受控值或非受控初始值;数组自动启用区间模式。
min / maxnumber0 / 100可选数值范围;传反时会自动纠正边界。
stepnumber | 'mark'1数值步进;mark 时只能停在 marks 定义的位置。
rangeboolean根据值推断显式启用双滑块区间选择。
vertical / heightboolean / number | stringfalse / 200切换垂直方向并设置轨道高度。
marksRecord<number, ReactNode | SliderMark>显示刻度标签,并可为单个标签设置样式。
showValuebooleanfalse在控件旁显示当前单值或区间。
showStopsbooleanfalse显示数值步进或 marks 对应的离散停靠点。
showInput / showInputControlsbooleanfalse / true单值横向模式显示同步数字输入框,并控制步进按钮。
inputSize'sm' | 'default' | 'lg'继承 Slider独立设置数字输入框尺寸。
showTooltip / formatTooltipboolean / (value) => ReactNodefalse / 原值显示滑块值提示并格式化内容。
tooltipPlacement'top' | 'right' | 'bottom' | 'left'水平 top / 垂直 right设置提示相对滑块的位置。
formatValueText(value) => string设置屏幕阅读器读取的 aria-valuetext。
rangeStartLabel / rangeEndLabelstring最小值 / 最大值为区间的两个滑块提供独立无障碍名称。
disabled / sizeboolean / 'sm' | 'default' | 'lg'false / 'default'禁用交互或继承 ConfigProvider 尺寸。
onValueChange(value: SliderValue) => void拖动或键盘调整期间触发。
onValueCommit(value: SliderValue) => void指针释放、失焦或键盘操作结束时触发。
原生属性InputHTMLAttributes透传 name、aria-*、form 等原生属性到滑块输入。