diff --git a/package-lock.json b/package-lock.json index eb78abd..71e6d44 100644 Binary files a/package-lock.json and b/package-lock.json differ diff --git a/package.json b/package.json index ed15de9..de9e90c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@fwdekker/template", - "version": "0.0.15", + "version": "0.0.16", "description": "The base template for pages on fwdekker.com.", "author": "Felix W. Dekker (https://fwdekker.com)", "license": "MIT", diff --git a/src/main/css/nav.css b/src/main/css/nav.css index 5ed1408..23a8cff 100644 --- a/src/main/css/nav.css +++ b/src/main/css/nav.css @@ -58,11 +58,16 @@ .nav ul li ul { - display: none; + /*display: none;*/ position: absolute; left: 0; } +.nav ul li ul li ul { + left: 100%; + top: 0; +} + .nav ul li:hover > ul, .nav ul li:focus-within > ul, .nav ul li ul:hover { @@ -70,5 +75,6 @@ } .nav ul li ul li { + min-width: 7em; width: 100%; } diff --git a/src/main/js/Template.js b/src/main/js/Template.js index d4d48b9..77f7eb7 100644 --- a/src/main/js/Template.js +++ b/src/main/js/Template.js @@ -61,15 +61,18 @@ export const nav = function () { * Unpacks a navigation entry returned from the navigation API into an HTML element. * * @param entry {Object} the entry to unpack + * @param [depth] {Object} the current nesting level * @returns {HTMLElement} the navigation list entry as HTML, described by its children */ -const unpackEntry = function (entry) { +const unpackEntry = function (entry, depth = 0) { if (entry.entries.length === 0) return h("li", h("a", {href: entry.link, innerHTML: entry.name})); + const arrow = depth === 0 ? "▾" : "▸" + return h("li", - h("a", {href: entry.link, innerHTML: `${entry.name} ▾`}), - h("ul", entry.entries.map(it => unpackEntry(it))) + h("a", {href: entry.link, innerHTML: `${entry.name} ${arrow}`}), + h("ul", entry.entries.map(it => unpackEntry(it, depth + 1))) ); };