summaryrefslogtreecommitdiff
path: root/docs/public/nav.js
diff options
context:
space:
mode:
authorGravatar Nate Moore <natemoo-re@users.noreply.github.com> 2021-07-19 19:36:09 -0500
committerGravatar GitHub <noreply@github.com> 2021-07-19 19:36:09 -0500
commit325e8cba2d63eae909a8f6ca1f92722ed2f514db (patch)
treeaf7fcf9452364ec0dea03de66d9b9618b5d3c0bd /docs/public/nav.js
parent7f57651686fb63e2158aa512a0b00dc262ee7425 (diff)
downloadastro-325e8cba2d63eae909a8f6ca1f92722ed2f514db.tar.gz
astro-325e8cba2d63eae909a8f6ca1f92722ed2f514db.tar.zst
astro-325e8cba2d63eae909a8f6ca1f92722ed2f514db.zip
Improve docs theme (#717)
* Revert "Revert "New getting started guide (#715)"" This reverts commit dc4ba25b01254ed1c2088c081e8c861172ae58a4. * style: update docs theme * style: implement feedback * feat: remove FOUC * Update docs/src/pages/404.astro Co-authored-by: Caleb Jasik <calebjasik@jasik.xyz> * Fix 404 title prop * chore: implement feedback * fix: ul, ol styles * fix: center logo on mobile * fix: improve navbar header contrast * fix: improve logo overlap * fix: `.nav-link` radius * fix: small mobile tweaks * feat: improve nav styles * feat: improve embed styles * fix: feedback items * fix: make header sticky on mobile Co-authored-by: Caleb Jasik <calebjasik@jasik.xyz>
Diffstat (limited to 'docs/public/nav.js')
-rw-r--r--docs/public/nav.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/docs/public/nav.js b/docs/public/nav.js
new file mode 100644
index 000000000..93fadcd61
--- /dev/null
+++ b/docs/public/nav.js
@@ -0,0 +1,37 @@
+const nav = document.querySelector('body > header');
+
+if (!window.matchMedia('(prefers-reduced-motion)').matches) {
+ window.addEventListener('scroll', onScroll, { passive: true });
+}
+
+let prev = -1;
+let prevDir = 0;
+let threshold = 32;
+
+function onScroll() {
+ const curr = window.scrollY;
+ const dir = curr > prev ? 1 : -1;
+
+ if (curr < threshold) {
+ show();
+ document.documentElement.classList.add('initial');
+ } else if (dir !== prevDir) {
+ if (dir === 1) {
+ hide();
+ } else {
+ show();
+ }
+ }
+
+ prev = curr;
+}
+
+const hide = () => {
+ nav.classList.add('hidden')
+ document.documentElement.classList.add('scrolled');
+ document.documentElement.classList.remove('initial');
+};
+const show = () => {
+ nav.classList.remove('hidden');
+ document.documentElement.classList.remove('scrolled');
+}