JengaMotion

class JengaMotion(val durationFast: Int = 120, val durationMedium: Int = 180, val durationSlow: Int = 240, val durationSlowest: Int = 400, val emphasized: Easing = CubicBezierEasing(0.2f, 0.8f, 0.2f, 1f), val standard: Easing = FastOutSlowInEasing, val linear: Easing = LinearEasing)(source)

Motion token set: animation durations and easing curves.

Durations are milliseconds, ported from the frontend's transition timings (.12s/.16s/.22s/.4s). emphasized is the brand's signature curve (cubic-bezier(0.2, 0.8, 0.2, 1)) used for entrances and prominent moves; standard suits small state changes. Read via JengaTheme.motion.

Constructors

Link copied to clipboard
constructor(durationFast: Int = 120, durationMedium: Int = 180, durationSlow: Int = 240, durationSlowest: Int = 400, emphasized: Easing = CubicBezierEasing(0.2f, 0.8f, 0.2f, 1f), standard: Easing = FastOutSlowInEasing, linear: Easing = LinearEasing)

Properties

Link copied to clipboard

Micro-interactions: hovers, small toggles (~120ms).

Link copied to clipboard

Default UI transitions (~180ms).

Link copied to clipboard

Larger moves: sheets, expands (~240ms).

Link copied to clipboard

Deliberate, attention-drawing moves: progress fills (~400ms).

Link copied to clipboard

Brand entrance/emphasis curve.

Link copied to clipboard

Constant-rate curve for looping/indeterminate motion.

Link copied to clipboard

General-purpose curve for small state changes.

Functions

Link copied to clipboard
fun copy(durationFast: Int = this.durationFast, durationMedium: Int = this.durationMedium, durationSlow: Int = this.durationSlow, durationSlowest: Int = this.durationSlowest, emphasized: Easing = this.emphasized, standard: Easing = this.standard, linear: Easing = this.linear): JengaMotion