Caret-local invalidation
observeCaretGeometry() covers typing, selection
movement, composition and internal control scroll.
Integrations / Floating UI
Floating UI intentionally starts with reference geometry. Caret Geometry supplies that geometry for browser carets.
Caret Geometry tracks the caret. Your positioning engine tracks the world around it.
observeCaretGeometry() covers typing, selection
movement, composition and internal control scroll.
autoUpdate() covers ancestor scroll, resize and layout
movement. Both invoke the same positioning path.
contextElement matters
The virtual reference includes the real editable as its
contextElement. A positioner can use that element to
discover scroll and clipping ancestors and layout context. It does not
tell the positioner that typing moved the caret—that is why caret
observation remains separate.
The initial placement is correct, then every change is stale.
Scroll follows, but typing or arrow movement may not cause an environmental event.
Typing follows, but page or modal scroll leaves the popup stale.
getCaretRect() reports unavailable.observeCaretGeometry().Floating UI is a site/dev integration dependency only. The Caret Geometry runtime remains dependency-free. Floating UI virtual element documentation →