Skip to main content

Button

Deprecated

This node is deprecated and kept only so existing projects keep working. It is not offered in the node picker for new use.

Legacy button visual, hidden from the node picker — superseded by net.noodl.controls.button.

The original Button visual, kept only so old projects load. The Button control (net.noodl.controls.button) supersedes it with label/icon layout, hover/pressed/focus states and accessibility.

When to use it​

Do not use in new graphs — use net.noodl.controls.button instead.

At a glance​

CategoryVisual
Type nameButton
Available inbrowser
SSR compatibilitysafe
Provided bynoodl-viewer-react
Behaviour specnot written yet

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
backgroundColorColor#000000—
blockTouchBoolean——
borderColorColor#000000—
borderRadiusNumber0—
borderStyleEnum (none, solid, dotted, dashed)none—
borderWidthNumber0—
boxShadowBlurRadiusNumber5—
boxShadowColorColorrgba(0,0,0,0.2)—
boxShadowEnabledBooleanfalse—
boxShadowInsetBooleanfalse—
boxShadowOffsetXNumber0—
boxShadowOffsetYNumber0—
boxShadowSpreadRadiusNumber2—
buttonTypeEnum (button, submit)button—
clickBubblingEnum (auto, always, never)auto—
colorColor#FFFFFF—
cssClassNameString``Extra CSS class names to put on this element, for styling from a stylesheet you supply
dataAttributesStringlist—data-* names (data-testid) for tests and scripts to find this element by; each gets a value input
enabledBooleantrue—
fontFamilyFont——
fontSizeNumber——
heightDimension100Height of the element; how the value is read depends on Size Mode
labelStringLabel—
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
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. Wired, it counts as true until the first value arrives, so set it to false here to start hidden (a lock, a private screen)
opacityNumber1How opaque this element is, from 0 for invisible to 1 for solid
paddingBottomNumber5—
paddingLeftNumber20—
paddingRightNumber20—
paddingTopNumber5—
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
scrollIntoViewAlignEnum (nearest, start, center, end)nearestWhere Scroll Into View leaves the element: Nearest edge moves only as far as needed
sizeModeEnum (explicit, contentWidth, contentHeight, contentSize)contentSizeWhether Width and Height are used as given, or the element sizes itself to fit its contents
styleCssString/* background-color: red; */Raw CSS declarations applied to this element, overriding the styling ports above
textStyleTextStyleNone—
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
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
widthDimension100Width of the element; how the value is read depends on Size Mode
zIndexNumber—Paint order among overlapping siblings; higher numbers paint on top

Signals​

NameTypeDefaultDescription
scrollIntoViewSignal—Scrolls the page, or the scrolling Group holding this element, until the element can be seen

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
childrenCountNumber—How many child elements are currently mounted inside this one
controlIdString——
enabledBoolean——
focusStateBoolean——
hoverStateBoolean——
pressedStateBoolean——
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

Signals​

NameTypeDefaultDescription
didMountSignal—Fires once this element has been added to the page and can be measured
hoverEndSignal——
hoverStartSignal——
onBlurSignal——
onClickSignal——
onFocusSignal——
pointerDownSignal——
pointerUpSignal——
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
boxShadowEnabled = trueboxShadowOffsetX, boxShadowOffsetY, boxShadowInset, boxShadowBlurRadius, boxShadowSpreadRadius, boxShadowColor—
sizeMode = explicit OR sizeMode = contentHeightwidth—
sizeMode = explicit OR sizeMode = contentWidthheight—
———

Ports at runtime​

Declared-port-groups gate box-shadow and width/height ports on parameter values; irrelevant for new work — the node is hidden from the picker.

Button

Code export​

Exports to React. A project that uses it exports this node as React code.

How export works shows what an export writes, with a worked example.

Generated

This page is generated from node-catalog-enriched.json, the node's spec in packages/nodegx-node-spec and the export ledger. Do not edit it by hand — run npm run docs:nodes to regenerate, and fix the source instead.