diff --git a/docs/css/kolibri-base.css b/docs/css/kolibri-base.css index 35fd0b62..b98c2ea2 100644 --- a/docs/css/kolibri-base.css +++ b/docs/css/kolibri-base.css @@ -92,7 +92,7 @@ em { /* emphasis looks like highlighted with text marker */ &::before { content: ""; position: absolute; - inset: -3px; + inset: 0; /* -3px leads to strange line-break issues */ background-color: var(--kolibri-color-select); z-index: -10; rotate: -2deg; diff --git a/docs/src/examples/navigation/simple/starter.js b/docs/src/examples/navigation/simple/starter.js index 77098ff8..66697ba6 100644 --- a/docs/src/examples/navigation/simple/starter.js +++ b/docs/src/examples/navigation/simple/starter.js @@ -21,8 +21,8 @@ siteController.registerPage(URI_HASH_HOME, HomePage()); siteController.registerPage(URI_HASH_UNSTYLED, UnstyledPage()); siteController.registerPage(URI_HASH_MASTER_DETAIL, MasterDetailPage()); -SimpleNavigationProjector(siteController, siteProjector.sideNavigationElement); -SimpleNavigationProjector(siteController, siteProjector.topNavigationElement); +SimpleNavigationProjector(siteController, siteProjector.sideNavigationElement, true); +SimpleNavigationProjector(siteController, siteProjector.topNavigationElement, false); siteController.gotoUriHash(window.location.hash); diff --git a/docs/src/kolibri/navigation/projector/simple/simpleNavigationProjector.js b/docs/src/kolibri/navigation/projector/simple/simpleNavigationProjector.js index f952b455..3ef2a279 100644 --- a/docs/src/kolibri/navigation/projector/simple/simpleNavigationProjector.js +++ b/docs/src/kolibri/navigation/projector/simple/simpleNavigationProjector.js @@ -1,8 +1,20 @@ +import {select} from "../../../util/dom.js"; export { SimpleNavigationProjector } const PAGE_CLASS = "simpleNavigationProjector"; +const iconSVGStr = ` + +`; + /** * A projector of anchors to all pages that are registered in the {@link SiteControllerType}. * It binds each anchor to the "visited" state and highlights the currently selected page (uriHash). @@ -10,7 +22,8 @@ const PAGE_CLASS = "simpleNavigationProjector"; * such that the same projector can be used for horizontal and vertical display. * @constructor * @param { !SiteControllerType } siteController - the source of the information that we display - * @param { !HTMLDivElement } root - where to mount the view + * @param { !HTMLDivElement } root - where to mount the view + * @param { Boolean= } canHide - whether this navigation can hide itself, defaults to false * @return { NavigationProjectorType } * @example * // set up @@ -24,9 +37,9 @@ const PAGE_CLASS = "simpleNavigationProjector"; * SimpleNavigationProjector(siteController, siteProjector.topNavigationElement); */ -const SimpleNavigationProjector = (siteController, root) => { +const SimpleNavigationProjector = (siteController, root, canHide=false) => { - root.innerHTML = ` `; + root.innerHTML = ` `; const projectNavigation = () => { @@ -35,10 +48,10 @@ const SimpleNavigationProjector = (siteController, root) => { document.head.innerHTML += projectorStyle; } - const navigationDiv = root.querySelector(`nav.${PAGE_CLASS}`); + const [navigationEl] = select(root, `nav.${PAGE_CLASS}`); // view is just so many anchors - navigationDiv.innerHTML = + navigationEl.innerHTML = (canHide ? `