Legacy rendering application migration audit

Reference Last tested 24 October 2026

Audit a rendering application by recording the behavior each component must preserve, the state it owns and the resources it must release. Replace implementation details only after those requirements have an explicit test, keeping unknown behavior and unverified rights visible in the inventory.

Record one interaction at a time

Choose one component and a short sequence that exposes its important states. Include the starting geometry, the input, any interruption, the final state and removal from the page. Keep a screenshot or trace from a system you are authorized to inspect only when your project has established the relevant rights; this page uses no previous site’s material.

A useful inventory separates observed facts from intended requirements. “The panel must retain focus when reordered” is a requirement until tested. “Focus remained on the named input during the recorded reorder” is an observation with a particular environment. A package name, old option name or screenshot alone does not join those two statements.

Use the audit table

The following fields are an original review template. They are not findings about an existing application and do not imply that any old implementation has been inspected.

AreaRecord before replacingReplacement evidence
GeometryCoordinate space, size owner, alignment and originBefore/after rectangles under resize and reorder
InputPointer, keyboard and focus sequenceRecorded actions and final focus target
TimingDuration model and completion meaningTimestamped state changes and explicit limits
InterruptionCancel, reverse, retarget and reset policyRapid-input cases with final ownership
Style ownershipProperties written and retainedFinal styles after effects are removed
CleanupListeners, observers and scheduled callbacksRepeated mount/remove checks
FallbackUnsupported features and static stateRequired content available in the fallback
Content rightsSource provenance and permission boundaryApproved inventory, separate from technical testing

Do not collapse the table into a numerical migration score. A missing cleanup test and an unresolved content permission are different gaps. One cannot compensate for the other, and completing six checkboxes in the companion tool settles neither.

Translate responsibilities rather than names

For geometry, identify the coordinate system before copying numeric values. A viewport rectangle is not automatically a parent-relative offset. getBoundingClientRect() reports an element’s rectangle relative to the viewport 1. Use that distinction to define the before/after evidence for your own component rather than guessing that two similarly named options mean the same thing.

For input, identify who attaches each listener and who removes it. Native event listeners can use an abort signal so that aborting its controller removes the associated listener 2. That is one current mechanism available to an implementation, not proof that an application has complete teardown. Observers, outstanding frames and detached nodes remain separate inventory items.

For animation, distinguish an effect ending from its result becoming authoritative. A cancelled non-idle animation rejects its current completion promise with AbortError 3. A migration must decide what cancellation leaves behind and whether a late completion is still allowed to update the UI. The cancellation guide provides an original example with that decision stated explicitly.

This route receives historical documentation and Angular-integration links associated with Famo.us. The former framework is context for the audit, not the theme or implementation of this site. No former documentation, code, demo, logo or screenshot has been copied or used to generate these replacements.

If your own authorized application contains align/origin options, directives, deprecated modules or transition callbacks, record their actual use and observed behavior in your inventory. This page supplies no version-specific mapping for them. Any claim that a modern replacement preserves those semantics remains open until a project-specific test establishes it. Old names can identify what needs investigation; they are not a specification by themselves.

Use the checklist as a local reminder

The demo tracks whether evidence has been collected for six categories. It stores no server record, sends no request and contains no approval button. The written count always distinguishes collected categories from approval. Clear local checklist resets the inputs so another component can be inventoried.

Keep the evidence files and unresolved questions outside that count. Record the application version and test environment with each observation.

Not covered on this page

Sources

  1. MDN, Element: getBoundingClientRect() method, living documentation. https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect (opened 24 October 2026). ↩

  2. MDN, EventTarget: addEventListener() method, living documentation. https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener (opened 24 October 2026). ↩

  3. MDN, Animation: cancel() method, living documentation. https://developer.mozilla.org/en-US/docs/Web/API/Animation/cancel (opened 24 October 2026). ↩

Code on this page is original and MIT licensed.

How we test: methods. Found a mistake? Corrections.