defaults
Every tunable has a fallback in the exported defaults object - the single source of truth for engine-wide numbers:
js
import { defaults } from 'gclass-anims'
// Config.js:56 exact snapshot
{
orderDivide: 5, // .order sequence: index / 5 -> seconds
spawnDelayMultiplier: 0.2, // priority-N -> N x 0.2s delay
spawnOffset: 20, // px travelled by directional spawns
clickOffset: 10, // click-hover lift (px)
clickExpandOffset: 15, // click-expand scale x10
clickDuration: 0.2,
ease: "back", // default ease-* when absent
effectDelay: 0.5, // loop edelay
effectDuration: 1, // loop etime
effectOffset: 20, // loop amount
progressStart: "top bottom", // scroll-progress range start
progressEnd: "center center",
textStagger: 0.03,
typewriterSplitCharDuration: 0.05,
minTextPartDuration: 0.3, // floor for back-solved split durations
revealDelay: 0, // scramble reveal delay
characterlist: "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz",
bootTime: 5, // boot overlay pause (s)
breakpoints: { xs: 475, s: 640, m: 768, l: 1024, xl: 1280 },
}Reading vs mutating
The engine reads this object at wiring time, so overriding entries before initAnimations() changes engine-wide behaviour without touching a single class.
Per-element classes always win over defaults - .time-2 beats effectDuration, .ease-expo beats ease.