package mosaic

  1. Overview
  2. Docs

Module Scroll_box.Scroll_accel

type t

The type for scroll acceleration strategies.

Note. Values are stateful: they track timing internally.

val linear : unit -> t

linear () is an acceleration strategy that always returns a 1.0 multiplier. No acceleration is applied.

val macos : ?a:float -> ?tau:float -> ?max_multiplier:float -> unit -> t

macos () is a macOS-style exponential acceleration strategy with:

  • a exponential coefficient. Defaults to 0.8.
  • tau time constant in seconds. Defaults to 3.0.
  • max_multiplier upper bound on the returned multiplier. Defaults to 6.0.
val tick : t -> now:float -> float

tick t ~now is the current multiplier given the monotonic timestamp now in milliseconds. Call once per scroll event. Resets automatically on timeout.

val reset : t -> unit

reset t clears the velocity history of t.