42 lines
4.8 KiB
Markdown
42 lines
4.8 KiB
Markdown
# Research and API decisions
|
|
|
|
Research date: **2026-10-21 UTC**. HTTP audit timestamps, redirects, failures and response hashes are retained in `source-audit.json`; package versions are locked in `package-lock.json`. Latest npm metadata and official GitHub releases both reported Reveal.js 6.0.2 and Anime.js 4.5.0 at research time. These are dated observations, not evergreen “latest” promises.
|
|
|
|
## Official Reveal.js findings
|
|
|
|
- [Initialization](https://revealjs.com/initialization/): `Reveal.initialize()` resolves when ready. Official documentation explicitly identifies the UMD bundle as suitable for filesystem use; use it for a portable single file.
|
|
- [API](https://revealjs.com/api/): navigate using the framework API, not ad hoc visibility hacks. Query current slide and indices for deterministic tests.
|
|
- [Keyboard](https://revealjs.com/keyboard/): numeric key bindings can override or disable defaults; preserve accessibility and avoid double fullscreen handling.
|
|
- [Auto-Animate](https://revealjs.com/auto-animate/): object continuity across slides can be useful, but do not combine two animation systems on one property. Our starter deliberately disables it and uses bounded Anime motion inside slides.
|
|
- [PDF export](https://revealjs.com/pdf-export/): `?print-pdf` invokes dedicated pagination; ordinary print CSS alone is not equivalent to a validated PDF. Test the actual exported PDF if required.
|
|
- [Official demo](https://revealjs.com/demo/): nested navigation, fragments and progressive disclosure demonstrate capability; copying every feature creates cognitive load. Adopt only what supports the story.
|
|
- [Release 6.0.2](https://github.com/hakimel/reveal.js/releases/tag/6.0.2): exact runtime chosen for this package.
|
|
|
|
## Official Anime.js findings
|
|
|
|
The main animejs.com site and several documentation paths timed out or became unreachable from this environment; one guessed migration URL redirected to the homepage. Those were NOT treated as verified documentation. Research continued through the author's official GitHub release, package README, migration wiki and exact-tag example sources.
|
|
|
|
- [Release v4.5.0](https://github.com/juliangarnier/anime/releases/tag/v4.5.0), source commit `2c9cf8ea00329f6768c7d7902252ed977d75ce42`.
|
|
- [Official migration guide](https://github.com/juliangarnier/anime/wiki/Migrating-from-v3-to-v4), read directly from the official wiki raw endpoint. A response hash is in `upstream-sources.json`; the wiki URL is mutable, not a claimed commit pin.
|
|
- [Official package README](https://github.com/juliangarnier/anime/tree/v4.5.0): named imports (`animate`, `stagger`); this deck uses equivalent properties from the UMD `anime` namespace.
|
|
- V3 `anime({targets, easing:'easeOutCubic'})` becomes v4 `animate(targets,{ease:'outCubic'})`.
|
|
- V3 `anime.timeline` becomes `createTimeline`; inherited child options go under `defaults`.
|
|
- V3 callbacks become `onBegin`, `onUpdate`, `onComplete`; `finished` becomes `.then()`.
|
|
- V4 `loop:1` means one repeat (two iterations), unlike v3. Avoid loops in explanatory deck motion.
|
|
- V3 path helpers become the `svg` module's `createMotionPath` and `createDrawable`; do not rename blindly without validating geometry.
|
|
- V4 `reverse()` plays backwards; it does not just toggle direction. Use lifecycle completion/cancellation deliberately.
|
|
|
|
## Production choices derived from research
|
|
|
|
Use Reveal only for slide navigation and sizing; use Anime only for bounded content motion. Content is visible by default and motion is enhancement. No external imagery is needed for the bundled original examples. Each interactive SVG group has a real detail action, accessible name, state and keyboard behavior. Native text remains editable and searchable.
|
|
|
|
The approved prior channel deck supplied preferences, not reusable proprietary content: editable diagrams, calm motion, Work Sans, visible fullscreen, offline packaging, exhaustive node testing. Neither its fifteen slides nor its 46-node acceptance scope is imposed on future decks. The historical artifact's embedded Anime bundle identifies itself as 3.2.1 despite prior context describing 3.2.2; the new package does not reuse that bundle.
|
|
|
|
## Explanatory mechanism follow-up
|
|
|
|
For the subsequently inspected Awwwards recordings of the Anime.js homepage, see [explanatory mechanisms](explanatory-mechanisms.md). Read it before selecting mechanical assembly or exploded-view motion. Recorded visuals establish the explanatory sequence, not the rendering engine or live input behavior.
|
|
|
|
## Failed candidates and limits
|
|
|
|
`revealjs.com/examples/` and `slides.com/news/introducing-auto-animate` returned 404; neither is cited as a successful source. Browser Use could not start its isolated daemon; local Playwright Chromium was used for real rendering and interaction QA instead. Anime site availability is an explicit research caveat, not hidden by invented page summaries.
|