davideisinger.com

My personal website
Log | Files | Refs | README

commit 8ba10c69d0fe11af33a39dec082a0d8b2bb99c8e
parent 8dc1df0208bdc195b8f9dba370da620cc1f73da2
Author: David Eisinger <[email protected]>
Date:   Sun, 11 Oct 2026 09:11:29 -0400

Remove shift on play start

Diffstat:
Mtest/navigation.cjs | 7+++++++
Mthemes/v2/assets/css/style.scss | 5+++++
2 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/test/navigation.cjs b/test/navigation.cjs @@ -171,10 +171,17 @@ function write(name, text) { await click('/music/'); assert.equal(await page.locator('#content audio:visible').count(), 0); assert.equal(await page.locator('.track-toggle').count(), 2); + const trackTitlePositions = () => page.locator('.music-track .track-title').evaluateAll(titles => + titles.map(title => { + const rect = title.getBoundingClientRect(); + return { x: rect.x, y: rect.y, width: rect.width, height: rect.height }; + })); + const positionsBeforePlaying = await trackTitlePositions(); await page.getByRole('button', { name: 'Play Older Song', exact: true }).click(); await page.waitForFunction(() => !originalAudio.paused && originalAudio.currentTime > 0.1 && originalAudio.src.includes('Older%20Song.mp3')); assert.equal(await page.locator('#site-header .track-title').textContent(), 'Older Song'); + assert.deepEqual(await trackTitlePositions(), positionsBeforePlaying); assert.equal(await page.locator('#site-header .track-source a').textContent(), 'Older post'); assert.equal(new URL(await page.locator('#site-header .track-source a').getAttribute('href'), origin).pathname, '/journal/older/'); diff --git a/themes/v2/assets/css/style.scss b/themes/v2/assets/css/style.scss @@ -416,6 +416,11 @@ pre { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; + + // Preserve the text baseline before a timestamp appears. + &:empty::before { + content: "\00a0"; + } } .music-track {