Skip to main content

Slider

Slider control: picks a number between min and max by dragging a thumb; value and valuePercent stream out live.

The Slider renders a draggable range input bounded by min/max with step granularity. value (the number) and valuePercent (0–100 regardless of bounds) update continuously while dragging; onChange fires per change. Thumb and track are styleable separately, and the standard control surface (enabled, focus/hover/pressed states) applies.

When to use it

Continuous or stepped numeric input where feel matters more than precision: volume, brightness, price ranges. For exact numeric entry pair it with (or replace it by) a Text Input.

At a glance

CategoryVisual
Type namenet.noodl.controls.range
Available inbrowser
SSR compatibilitysafe
Provided bynoodl-viewer-react

Inputs

Values

NameTypeDefaultDescription
alignXEnum (left, center, right)Horizontal alignment of this element within the space its parent gives it
alignYEnum (top, center, bottom)Vertical alignment of this element within the space its parent gives it
blockTouchBooleanStops every pointer event that lands on this control from reaching the nodes it sits inside. Blunt: it takes hover and pointer-down with it, so reach for Click Bubbling first if it is only clicks you want to keep in
clickBubblingEnum (auto, always, never)autoWhether a click on this control also fires Click on the nodes it sits inside. Automatic keeps it here as soon as this control's own Click is connected, so a Favourite button inside a clickable card runs Favourite and not the card; Always is the older behaviour where both run; Never keeps every click here, wired or not
cssClassNameString``Extra CSS class names to put on this element, for styling from a stylesheet you supply
enabledBooleantrueLets the user interact with this control; when off it still renders and occupies its space but ignores clicks, touches and typing
marginBottomNumberSpace outside the element's bottom edge, between it and its neighbours
marginLeftNumberSpace outside the element's left edge, between it and its neighbours
marginRightNumberSpace outside the element's right edge, between it and its neighbours
marginTopNumberSpace outside the element's top edge, between it and its neighbours
maxNumber100Value at the far right of the track; the current value is clamped down to it if it is above
minNumber0Value at the far left of the track; the current value is clamped up to it if it is below
mixBlendModeEnum (normal, multiply, screen, overlay, darken, lighten, color-dodge, color-burn, hard-light, soft-light, difference, exclusion, hue, saturation, color, luminosity)normalHow this element's colours blend with whatever is painted behind it
mountedBooleantrueRemoves the element from the page entirely when false, unlike Visible which leaves its space behind
opacityNumber1How opaque this element is, from 0 for invisible to 1 for solid
paddingBottomNumber0Space inside the element's bottom edge, between it and its content
paddingLeftNumber0Space inside the element's left edge, between it and its content
paddingRightNumber0Space inside the element's right edge, between it and its content
paddingTopNumber0Space inside the element's top edge, between it and its content
positionEnum (relative, absolute, sticky, fixed)relativeHow the element is placed: In Layout follows its siblings, Absolute ignores them, Sticky pins to the parent edge on overflow, Fixed stays put and takes no space
stepNumber1Smallest amount the handle can move by, so the value lands on multiples of it
styleCssString/* background-color: red; */Raw CSS declarations applied to this element, overriding the styling ports above
thumbBorderBottomColorColorColour of the bottom edge of the handle you drag only, overriding Thumb Border Color
thumbBorderBottomLeftRadiusNumberHow rounded the bottom left corner of the handle you drag is, overriding Thumb Corner Radius
thumbBorderBottomRightRadiusNumberHow rounded the bottom right corner of the handle you drag is, overriding Thumb Corner Radius
thumbBorderBottomStyleEnum (none, solid, dotted, dashed)Line style for the bottom edge of the handle you drag only, overriding Thumb Border Style; None hides that edge
thumbBorderBottomWidthNumberThickness in pixels of the bottom edge of the handle you drag, which has no effect while that edge's Border Style is None
thumbBorderColorColor#000000Colour of the border around the handle you drag, which has no effect while Thumb Border Style is None
thumbBorderLeftColorColorColour of the left edge of the handle you drag only, overriding Thumb Border Color
thumbBorderLeftStyleEnum (none, solid, dotted, dashed)Line style for the left edge of the handle you drag only, overriding Thumb Border Style; None hides that edge
thumbBorderLeftWidthNumberThickness in pixels of the left edge of the handle you drag, which has no effect while that edge's Border Style is None
thumbBorderRadiusNumber0How rounded all four corners of the handle you drag are; half its width and height makes it a circle
thumbBorderRightColorColorColour of the right edge of the handle you drag only, overriding Thumb Border Color
thumbBorderRightStyleEnum (none, solid, dotted, dashed)Line style for the right edge of the handle you drag only, overriding Thumb Border Style; None hides that edge
thumbBorderRightWidthNumberThickness in pixels of the right edge of the handle you drag, which has no effect while that edge's Border Style is None
thumbBorderStyleEnum (none, solid, dotted, dashed)noneLine style for all four edges of the handle you drag; None hides the border and leaves its Width and Color inactive
thumbBorderTopColorColorColour of the top edge of the handle you drag only, overriding Thumb Border Color
thumbBorderTopLeftRadiusNumberHow rounded the top left corner of the handle you drag is, overriding Thumb Corner Radius
thumbBorderTopRightRadiusNumberHow rounded the top right corner of the handle you drag is, overriding Thumb Corner Radius
thumbBorderTopStyleEnum (none, solid, dotted, dashed)Line style for the top edge of the handle you drag only, overriding Thumb Border Style; None hides that edge
thumbBorderTopWidthNumberThickness in pixels of the top edge of the handle you drag, which has no effect while that edge's Border Style is None
thumbBorderWidthNumber0Thickness in pixels of the border around the handle you drag, which has no effect while Thumb Border Style is None
thumbBoxShadowBlurRadiusNumber5How soft the shadow edge is; 0 gives a hard edge
thumbBoxShadowColorColor#00000033Colour of the shadow, usually a mostly-transparent black
thumbBoxShadowEnabledBooleanDraws a shadow behind the handle you drag; the rest of this group does nothing while it is off
thumbBoxShadowInsetBooleanfalseDraws the shadow inside the element instead of behind it, for a recessed look
thumbBoxShadowOffsetXNumber0How far right the shadow sits from the element; negative values move it left
thumbBoxShadowOffsetYNumber0How far down the shadow sits from the element; negative values move it up
thumbBoxShadowSpreadRadiusNumber2Grows the shadow outwards before it is blurred; negative values shrink it
thumbColorColor#000000Fill colour of the handle
thumbHeightNumber16Height of the handle the user drags
thumbWidthNumber16Width of the handle the user drags
trackActiveColorColor#f0f0f0Colour of the part of the track between Min and the handle
trackBorderBottomColorColorColour of the bottom edge of the bar the handle slides along only, overriding Track Border Color
trackBorderBottomLeftRadiusNumberHow rounded the bottom left corner of the bar the handle slides along is, overriding Track Corner Radius
trackBorderBottomRightRadiusNumberHow rounded the bottom right corner of the bar the handle slides along is, overriding Track Corner Radius
trackBorderBottomStyleEnum (none, solid, dotted, dashed)Line style for the bottom edge of the bar the handle slides along only, overriding Track Border Style; None hides that edge
trackBorderBottomWidthNumberThickness in pixels of the bottom edge of the bar the handle slides along, which has no effect while that edge's Border Style is None
trackBorderColorColor#000000Colour of the border around the bar the handle slides along, which has no effect while Track Border Style is None
trackBorderLeftColorColorColour of the left edge of the bar the handle slides along only, overriding Track Border Color
trackBorderLeftStyleEnum (none, solid, dotted, dashed)Line style for the left edge of the bar the handle slides along only, overriding Track Border Style; None hides that edge
trackBorderLeftWidthNumberThickness in pixels of the left edge of the bar the handle slides along, which has no effect while that edge's Border Style is None
trackBorderRadiusNumber0How rounded all four corners of the bar the handle slides along are; half its width and height makes it a circle
trackBorderRightColorColorColour of the right edge of the bar the handle slides along only, overriding Track Border Color
trackBorderRightStyleEnum (none, solid, dotted, dashed)Line style for the right edge of the bar the handle slides along only, overriding Track Border Style; None hides that edge
trackBorderRightWidthNumberThickness in pixels of the right edge of the bar the handle slides along, which has no effect while that edge's Border Style is None
trackBorderStyleEnum (none, solid, dotted, dashed)noneLine style for all four edges of the bar the handle slides along; None hides the border and leaves its Width and Color inactive
trackBorderTopColorColorColour of the top edge of the bar the handle slides along only, overriding Track Border Color
trackBorderTopLeftRadiusNumberHow rounded the top left corner of the bar the handle slides along is, overriding Track Corner Radius
trackBorderTopRightRadiusNumberHow rounded the top right corner of the bar the handle slides along is, overriding Track Corner Radius
trackBorderTopStyleEnum (none, solid, dotted, dashed)Line style for the top edge of the bar the handle slides along only, overriding Track Border Style; None hides that edge
trackBorderTopWidthNumberThickness in pixels of the top edge of the bar the handle slides along, which has no effect while that edge's Border Style is None
trackBorderWidthNumber0Thickness in pixels of the border around the bar the handle slides along, which has no effect while Track Border Style is None
trackBoxShadowBlurRadiusNumber5How soft the shadow edge is; 0 gives a hard edge
trackBoxShadowColorColor#00000033Colour of the shadow, usually a mostly-transparent black
trackBoxShadowEnabledBooleanDraws a shadow behind the bar the handle slides along; the rest of this group does nothing while it is off
trackBoxShadowInsetBooleanfalseDraws the shadow inside the element instead of behind it, for a recessed look
trackBoxShadowOffsetXNumber0How far right the shadow sits from the element; negative values move it left
trackBoxShadowOffsetYNumber0How far down the shadow sits from the element; negative values move it up
trackBoxShadowSpreadRadiusNumber2Grows the shadow outwards before it is blurred; negative values shrink it
trackColorColor#f0f0f0Colour of the part of the track the handle has not reached yet
trackHeightNumber6Thickness of the bar the handle slides along
transformOriginXNumber50Horizontal point the element rotates and scales around, as a fraction of its width
transformOriginYNumber50Vertical point the element rotates and scales around, as a fraction of its height
transformRotationNumber0Rotates the element clockwise in degrees, without affecting the layout
transformScaleNumber1Scales the element about its transform origin; 1 leaves it unscaled
transformXNumber0Moves the element right after layout, without moving its siblings
transformYNumber0Moves the element down after layout, without moving its siblings
valueNumberMoves the handle to this value, clamped to Min and Max; changing it from the graph does not fire Changed. An empty value leaves the handle where it is
variantStringName of a saved variant of this node type to apply, replacing the styling set here
visibleBooleantrueHides the element while keeping the space it occupies in the layout
widthNumber100Overall width of the slider, which is the length of the track plus the handle
zIndexNumberPaint order among overlapping siblings; higher numbers paint on top

Outputs

Values

NameTypeDefaultDescription
boundingHeightNumberHeight this element actually ended up with after layout, in pixels
boundingWidthNumberWidth this element actually ended up with after layout, in pixels
childIndexNumberThis element's position among its parent's children, counting from 0
enabledBooleanReports back whether this control is currently accepting interaction, following the Enabled input
focusStateBooleanTrue while this control holds keyboard focus, so typing and Enter go to it
hoverStateBooleanTrue while the pointer is over this control; stays false on touch devices with no pointer
pressedStateBooleanTrue while a mouse button or finger is held down on this control, and false again the moment it is released or slides off
screenPositionXNumberDistance in pixels from the left edge of the window to this element's left edge
screenPositionYNumberDistance in pixels from the top edge of the window to this element's top edge
thisReferenceA reference to this node itself, for ports that take a node rather than a value
valueNumberThe value the handle is currently at, between Min and Max, as a number
valuePercentNumberWhere the handle sits as a whole number from 0 to 100, regardless of Min and Max

Signals

NameTypeDefaultDescription
didMountSignalFires once this element has been added to the page and can be measured
hoverEndSignalFires when the pointer leaves this control, including when it leaves while a button is still held
hoverStartSignalFires when the pointer moves onto this control
onBlurSignalFires when keyboard focus leaves this control, which is the usual place to validate what was entered
onChangeSignalFires when the user moves the handle; a value arriving on the Value input does not fire it
onFocusSignalFires the moment this control takes keyboard focus, whether from a click, a tab or a Focus action
pointerDownSignalFires as a mouse button or finger goes down on this control, before any click has completed
pointerUpSignalFires when the mouse button or finger is lifted, and also when a touch is cancelled by the system
willUnmountSignalFires just before this element is removed from the page, while it still exists

Dynamic ports

This node's port list changes at runtime (declared-port-groups); the tables above may be incomplete for a given instance.

Declares conditional/expandable port groups whose visibility depends on parameter values (see declaredPortGroups).

ConditionInputs shownOutputs shown
trackBorderStyle = solid OR trackBorderStyle = dashed OR trackBorderStyle = dottedtrackBorderWidth, trackBorderColor
trackBorderLeftStyle = solid OR trackBorderLeftStyle = dashed OR trackBorderLeftStyle = dotted OR borderStyle = solid OR borderStyle = dashed OR borderStyle = dottedtrackBorderLeftWidth, trackBorderLeftColor
trackBorderTopStyle = solid OR trackBorderTopStyle = dashed OR trackBorderTopStyle = dotted OR borderStyle = solid OR borderStyle = dashed OR borderStyle = dottedtrackBorderTopWidth, trackBorderTopColor
trackBorderRightStyle = solid OR trackBorderRightStyle = dashed OR trackBorderRightStyle = dotted OR borderStyle = solid OR borderStyle = dashed OR borderStyle = dottedtrackBorderRightWidth, trackBorderRightColor
trackBorderBottomStyle = solid OR trackBorderBottomStyle = dashed OR trackBorderBottomStyle = dotted OR borderStyle = solid OR borderStyle = dashed OR borderStyle = dottedtrackBorderBottomWidth, trackBorderBottomColor
trackBoxShadowEnabled = truetrackBoxShadowOffsetX, trackBoxShadowOffsetY, trackBoxShadowInset, trackBoxShadowBlurRadius, trackBoxShadowSpreadRadius, trackBoxShadowColor
thumbBorderStyle = solid OR thumbBorderStyle = dashed OR thumbBorderStyle = dottedthumbBorderWidth, thumbBorderColor
thumbBorderLeftStyle = solid OR thumbBorderLeftStyle = dashed OR thumbBorderLeftStyle = dotted OR borderStyle = solid OR borderStyle = dashed OR borderStyle = dottedthumbBorderLeftWidth, thumbBorderLeftColor
thumbBorderTopStyle = solid OR thumbBorderTopStyle = dashed OR thumbBorderTopStyle = dotted OR borderStyle = solid OR borderStyle = dashed OR borderStyle = dottedthumbBorderTopWidth, thumbBorderTopColor
thumbBorderRightStyle = solid OR thumbBorderRightStyle = dashed OR thumbBorderRightStyle = dotted OR borderStyle = solid OR borderStyle = dashed OR borderStyle = dottedthumbBorderRightWidth, thumbBorderRightColor
thumbBorderBottomStyle = solid OR thumbBorderBottomStyle = dashed OR thumbBorderBottomStyle = dotted OR borderStyle = solid OR borderStyle = dashed OR borderStyle = dottedthumbBorderBottomWidth, thumbBorderBottomColor
thumbBoxShadowEnabled = truethumbBoxShadowOffsetX, thumbBoxShadowOffsetY, thumbBoxShadowInset, thumbBoxShadowBlurRadius, thumbBoxShadowSpreadRadius, thumbBoxShadowColor

Ports at runtime

Declared-port-groups: label and per-visual-state styling ports appear per configuration.

Watch out for

  • Writing to a backend on every onChange while dragging — debounce with a Timer first.

Examples

Settings form: the standard input controls bound to values

One of each core control: Text Input's live string comes out of onTextChanged, Checkbox exposes checked (level) plus onChange (edge), Dropdown (net.noodl.controls.options) takes an items list and emits the selected value, Slider (net.noodl.controls.range) emits a numeric value between min/max, and a Radio Button Group reports the value of whichever child Radio Button is selected. Values flow into a live summary — no submit step needed for value binding.

Text Input, Number Remapper, Delay

Generated

This page is generated from node-catalog-enriched.json. Do not edit it by hand — run npm run docs:nodes to regenerate, and fix the source enrichment instead.