in src/lib/attachments/observe.svelte.ts [79:102]
function setVars(name: ObservedElements) {
// 1. Standard rect (includes transforms)
const rect = node.getBoundingClientRect();
document.documentElement.style.setProperty(`--${name}-width`, `${rect.width}px`);
document.documentElement.style.setProperty(`--${name}-height`, `${rect.height}px`);
document.documentElement.style.setProperty(`--${name}-top`, `${rect.top}px`);
document.documentElement.style.setProperty(`--${name}-left`, `${rect.left}px`);
document.documentElement.style.setProperty(`--${name}-right`, `${rect.right}px`);
document.documentElement.style.setProperty(`--${name}-bottom`, `${rect.bottom}px`);
// 2. Offset position (ignores transforms)
const offset = getOffsetPosition(node);
document.documentElement.style.setProperty(`--${name}-width-offset`, `${offset.width}px`);
document.documentElement.style.setProperty(`--${name}-height-offset`, `${offset.height}px`);
document.documentElement.style.setProperty(`--${name}-top-offset`, `${offset.top}px`);
document.documentElement.style.setProperty(`--${name}-left-offset`, `${offset.left}px`);
document.documentElement.style.setProperty(`--${name}-right-offset`, `${offset.right}px`);
document.documentElement.style.setProperty(`--${name}-bottom-offset`, `${offset.bottom}px`);
observed[name] = {
rect,
offset,
};
}