diff --git a/src/pages/index.astro b/src/pages/index.astro index 11ad0c8..298e747 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -823,6 +823,7 @@ const canonical = new URL('/', Astro.site); .footer { padding-top: 1rem; border-top: 1px solid var(--line); + transition: opacity 350ms ease-out; } /* The stack is the journey to the site's closing information. Enhancement adds @@ -833,10 +834,6 @@ const canonical = new URL('/', Astro.site); pointer-events: none; } - .footer.is-footer-revealed { - animation: fade-in 500ms ease-out forwards; - } - .footer p { margin: 0; } @@ -872,11 +869,6 @@ const canonical = new URL('/', Astro.site); } } - @keyframes fade-in { - from { opacity: 0; } - to { opacity: 1; } - } - @keyframes fade-up { from { transform: translate3d(0, 1rem, 0); @@ -1231,16 +1223,16 @@ const canonical = new URL('/', Astro.site); { passive: true }, ); - let footerRevealed = false; + const setFooterVisible = (isVisible: boolean) => { + if (!footer) return; - const revealFooter = () => { - if (!footer || footerRevealed) return; - - footerRevealed = true; - footer.classList.remove('is-awaiting-final-card'); - footer.classList.add('is-footer-revealed'); - footer.removeAttribute('aria-hidden'); - footer.removeAttribute('inert'); + footer.classList.toggle('is-awaiting-final-card', !isVisible); + footer.toggleAttribute('inert', !isVisible); + if (isVisible) { + footer.removeAttribute('aria-hidden'); + } else { + footer.setAttribute('aria-hidden', 'true'); + } }; const activateTechnology = (index: number) => { @@ -1252,7 +1244,7 @@ const canonical = new URL('/', Astro.site); }); if (progressCurrent) progressCurrent.textContent = String(index + 1).padStart(2, '0'); - if (index === cards.length - 1) revealFooter(); + setFooterVisible(index === cards.length - 1); }; activateTechnology(0);