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
blockTouchBoolean—Stops 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
boxSizingEnum (border-box, content-box)border-boxWhether Width and Height include this element's padding and border, or only its content
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
marginBottomNumber—Space outside the element's bottom edge, between it and its neighbours
marginLeftNumber—Space outside the element's left edge, between it and its neighbours
marginRightNumber—Space outside the element's right edge, between it and its neighbours
marginTopNumber—Space 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
thumbBorderBottomColorColor—Colour of the bottom edge of the handle you drag only, overriding Thumb Border Color
thumbBorderBottomLeftRadiusNumber—How rounded the bottom left corner of the handle you drag is, overriding Thumb Corner Radius
thumbBorderBottomRightRadiusNumber—How 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
thumbBorderBottomWidthNumber—Thickness 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
thumbBorderLeftColorColor—Colour 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
thumbBorderLeftWidthNumber—Thickness 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
thumbBorderRightColorColor—Colour 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
thumbBorderRightWidthNumber—Thickness 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
thumbBorderTopColorColor—Colour of the top edge of the handle you drag only, overriding Thumb Border Color
thumbBorderTopLeftRadiusNumber—How rounded the top left corner of the handle you drag is, overriding Thumb Corner Radius
thumbBorderTopRightRadiusNumber—How 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
thumbBorderTopWidthNumber—Thickness 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
thumbBoxShadowEnabledBoolean—Draws 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
trackBorderBottomColorColor—Colour of the bottom edge of the bar the handle slides along only, overriding Track Border Color
trackBorderBottomLeftRadiusNumber—How rounded the bottom left corner of the bar the handle slides along is, overriding Track Corner Radius
trackBorderBottomRightRadiusNumber—How 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
trackBorderBottomWidthNumber—Thickness 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
trackBorderLeftColorColor—Colour 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
trackBorderLeftWidthNumber—Thickness 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
trackBorderRightColorColor—Colour 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
trackBorderRightWidthNumber—Thickness 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
trackBorderTopColorColor—Colour of the top edge of the bar the handle slides along only, overriding Track Border Color
trackBorderTopLeftRadiusNumber—How rounded the top left corner of the bar the handle slides along is, overriding Track Corner Radius
trackBorderTopRightRadiusNumber—How 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
trackBorderTopWidthNumber—Thickness 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
trackBoxShadowEnabledBoolean—Draws 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
valueNumber—Moves 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
variantString—Name 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
zIndexNumber—Paint order among overlapping siblings; higher numbers paint on top

Outputs​

Values​

NameTypeDefaultDescription
boundingHeightNumber—Height this element actually ended up with after layout, in pixels
boundingWidthNumber—Width this element actually ended up with after layout, in pixels
childIndexNumber—This element's position among its parent's children, counting from 0
enabledBoolean—Reports back whether this control is currently accepting interaction, following the Enabled input
focusStateBoolean—True while this control holds keyboard focus, so typing and Enter go to it
hoverStateBoolean—True while the pointer is over this control; stays false on touch devices with no pointer
pressedStateBoolean—True while a mouse button or finger is held down on this control, and false again the moment it is released or slides off
screenPositionXNumber—Distance in pixels from the left edge of the window to this element's left edge
screenPositionYNumber—Distance in pixels from the top edge of the window to this element's top edge
thisReference—A reference to this node itself, for ports that take a node rather than a value
valueNumber—The value the handle is currently at, between Min and Max, as a number
valuePercentNumber—Where the handle sits as a whole number from 0 to 100, regardless of Min and Max

Signals​

NameTypeDefaultDescription
didMountSignal—Fires once this element has been added to the page and can be measured
hoverEndSignal—Fires when the pointer leaves this control, including when it leaves while a button is still held
hoverStartSignal—Fires when the pointer moves onto this control
onBlurSignal—Fires when keyboard focus leaves this control, which is the usual place to validate what was entered
onChangeSignal—Fires when the user moves the handle; a value arriving on the Value input does not fire it
onFocusSignal—Fires the moment this control takes keyboard focus, whether from a click, a tab or a Focus action
pointerDownSignal—Fires as a mouse button or finger goes down on this control, before any click has completed
pointerUpSignal—Fires when the mouse button or finger is lifted, and also when a touch is cancelled by the system
willUnmountSignal—Fires 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.