fix: resolve iOS toggle indicator sizing on initial page load

Wait for fonts to load and use double requestAnimationFrame before
measuring toggle button dimensions. This ensures layout is complete
before calculating indicator position, fixing the visual glitch on
iOS Safari where the toggle appeared incorrectly sized until toggled.
This commit is contained in:
Claude
2026-01-13 18:27:44 +00:00
parent 1c25833e69
commit 42260f46b5

View File

@@ -446,9 +446,24 @@ const previewHtml = await unified()
}
}
// Initialize indicator position on load
if (togglePreview) {
updateIndicator(togglePreview);
// Initialize indicator position after layout is complete
// Use double requestAnimationFrame to ensure layout/paint is finished,
// which fixes sizing issues on iOS Safari initial page load
function initializeIndicator() {
if (togglePreview) {
requestAnimationFrame(() => {
requestAnimationFrame(() => {
updateIndicator(togglePreview);
});
});
}
}
// Wait for fonts to load before measuring, then initialize
if (document.fonts && document.fonts.ready) {
document.fonts.ready.then(initializeIndicator);
} else {
initializeIndicator();
}
// Toggle event listeners