From 0aa62525cb7eadb698fb9c1a921fe63ebcd5f1a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tristan=20Dani=C3=ABl=20Maat?= Date: Sat, 13 Aug 2022 20:54:26 +0100 Subject: [PATCH] Make the navbar collapse button work --- src/lib/js/index.ts | 31 ++++++++++++++++++++++++++++++- src/lib/scss/_custom-bulma.scss | 7 +++---- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/src/lib/js/index.ts b/src/lib/js/index.ts index 5047237..52b7ce1 100644 --- a/src/lib/js/index.ts +++ b/src/lib/js/index.ts @@ -1,4 +1,4 @@ -document.addEventListener("DOMContentLoaded", () => { +function registerFlashCloseButtons() { const flashButtons = document.querySelectorAll(".notification .delete"); flashButtons.forEach((button) => { @@ -39,6 +39,35 @@ document.addEventListener("DOMContentLoaded", () => { flash.parentNode.parentNode.removeChild(block); } }); +} + +function registerNavCollapseButtons() { + const navbarButtons = document.getElementsByClassName("navbar-burger"); + + for (const navbarButton of navbarButtons) { + navbarButton.addEventListener("click", () => { + if ( + !(navbarButton instanceof HTMLElement) || + !navbarButton.dataset.target + ) { + throw new Error("invalid navbar button"); + } + + const target = document.getElementById(navbarButton.dataset.target); + + if (target === null) { + throw new Error("could not find navbar button target"); + } + + navbarButton.classList.toggle("is-active"); + target.classList.toggle("is-active"); + }); + } +} + +document.addEventListener("DOMContentLoaded", () => { + registerFlashCloseButtons(); + registerNavCollapseButtons(); }); export {}; diff --git a/src/lib/scss/_custom-bulma.scss b/src/lib/scss/_custom-bulma.scss index 769137b..016a3c1 100644 --- a/src/lib/scss/_custom-bulma.scss +++ b/src/lib/scss/_custom-bulma.scss @@ -21,13 +21,12 @@ $link: $green; $link-hover: color.scale($green, $lightness: +10%); $link-active: color.scale($green, $lightness: +10%); $link-focus: color.scale($green, $lightness: +10%); -$input-color: $grey-darker; -$input-placeholder-color: $grey-darker; // Some opacity is applied to this -$input-focus-color: $black; +$input-color: $grey-light; +$input-placeholder-color: $grey-light; // Some opacity is applied to this $weight-normal: 400; -$body-background-color: $black; +$scheme-main: $black; $family-sans-serif: Nunito, $family-sans-serif; $family-monospace: Hack, $family-monospace;