Product media placeholder
Replace this area with a screenshot or short walkthrough video during the media sweep.
Clamped integer counter with separate `increment` and `decrement` inputs. Counter never grows past `max` or below `min` — out-of-range pulses are silently absorbed inside the node, so the visible `value` always reflects bounds. Sister of `pulseCounter`, but bidirectional and clamped. Avoids the `cDn − cUp` two-counter-subtract hack and its over-scroll drift bug at boundaries.
Inputs
| Port | Type | Description |
|---|---|---|
increment | float | Rising-edge trigger. Advances counter by `step`, clamped at `max`. |
decrement | float | Rising-edge trigger. Advances counter by `-step`, clamped at `min`. |
reset | float | Rising-edge trigger. Returns counter to `start`. |
Outputs
| Port | Type | Description |
|---|---|---|
value | float | Current counter value. Always in [`min`, `max`]. |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
start | int | 0 | Initial value (and reset target). |
min | int | 0 | Lower clamp bound. |
max | int | 10 | Upper clamp bound. |
step | int | 1 | Magnitude of each increment / decrement. min 1 |
Use cases
- Section-snap navigation — wire wheel-down pulse to `increment`, wheel-up to `decrement`. `value` is the active section index, always in [0, N-1] with no boundary drift.
- Hover-driven step counter — `enter` and `leave` pulses with `min: 0, max: 1` give a clean 0/1 binary state.
- Click-driven page navigator — Next/Prev button pulses with bounded counter.
Envelope
Use bidirectionalCounter as the node type inside a graph node envelope. Add id, optional params, optional connections, and optional activeWhen based on the guide context.
Generated source
Registry faster-motion-docs/node-registry.jsonCategory page /help/faster-motion/faster-motion-node-category-inputs/