Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions src/css/body.css
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ main {
nav.nav {
/* NOTE reserve no space in layout by default */
flex: 0 0 0%;
visibility: hidden;
/* NOTE width must be set in order for fixed child to inherit */
width: var(--width-nav);
}
Expand Down Expand Up @@ -59,6 +58,6 @@ aside.toc.sidebar {

@media screen and (max-width: 767px) {
div.body {
margin-top: 5rem;
margin-top: 3.9rem;
}
}
128 changes: 105 additions & 23 deletions src/css/nav.css
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
line-height: 24px;
scrollbar-width: thin;
scrollbar-color: var(--color-border) transparent;
height: 100%;
z-index: var(--z-index-nav);
}

.nav-menu::-webkit-scrollbar {
Expand All @@ -20,28 +22,7 @@
overflow-y: auto;
background-color: var(--color-brand-gray7);
height: var(--height-nav);
}

@media screen and (max-width: 768px) {
.left-sidebar-menu {
top: 0;
bottom: 0;
left: 0;
transform: translateX(-100%);
z-index: var(--z-index-nav-mobile);
}
}

@media screen and (min-width: 769px) {
.left-sidebar-menu {
top: var(--height-to-body);
margin-bottom: 1.5rem;
height: 100%;
/* height: var(--height-nav); */
z-index: var(--z-index-nav);
border-left: 2px solid #eee;
border-right: 2px solid #eee;
}
transition: all 0.3s;
}

.nav-menu .nav-link,
Expand Down Expand Up @@ -426,8 +407,109 @@ html.is-clipped--nav {

*/

@media screen and (min-width: 769px) {
a.menu-expand-toggle {
display: inline-block;
position: absolute;
top: 15px;
right: -1rem;
z-index: 99;
font-size: 24px;
color: var(--color-brand-blue-secondary);
background-color: var(--color-brand-gray7);
border-radius: 50%;
}

/* Responsive CSS */

@media screen and (min-width: 993px) {
.nav.collapse-menu {
width: 0rem;
}

.nav.collapse-menu .frame-body .title,
.nav.collapse-menu .version-control-box,
.nav.collapse-menu .nav-menu {
font-size: 0;
display: none;
}

.nav.collapse-menu .left-sidebar-menu {
border: 0;
background-color: transparent;
}

.nav.collapse-menu a.menu-expand-toggle {
transform: rotate(180deg);
right: -1.35rem;
opacity: 1;
color: var(--color-brand-blue-secondary);
}

a.menu-expand-toggle {
opacity: 0;
}

.nav:hover a.menu-expand-toggle {
opacity: 1;
}

.left-sidebar-menu {
top: var(--height-to-body);
margin-bottom: 1.5rem;
/* height: var(--height-nav); */
border-left: 2px solid #eee;
border-right: 2px solid #eee;
}
.nav-control {
display: none;
}
}

@media screen and (max-width: 992px) {
.left-sidebar-menu {
left: 0;
z-index: 9;
transform: translate(-100%, 0);
}

.nav.collapse-menu a.menu-expand-toggle {
transform: rotate(0deg);
right: -1rem;
opacity: 1;
color: var(--color-brand-blue-secondary);
}

nav.nav a.menu-expand-toggle {
transform: rotate(180deg);
right: -1.35rem;
opacity: 1;
color: var(--color-brand-blue-secondary);
}

.nav.collapse-menu .left-sidebar-menu {
transform: translate(0, 0);
}

.nav-menu {
height: calc(100vh - 8.5rem) !important;
}

/* .nav.collapse-menu {
width: 0rem;
}

.nav.collapse-menu .frame-body .title,
.nav.collapse-menu .version-control-box,
.nav.collapse-menu .nav-menu {
font-size: 0;
display: none;
}

.nav.collapse-menu .left-sidebar-menu {
border: 0;
background-color: transparent;
}

*/

}
80 changes: 47 additions & 33 deletions src/js/01-nav.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
'use strict'

var nav = document.querySelector('nav.nav')
var menuExpandToggle = document.querySelector('.menu-expand-toggle')
var navMenu = {}
if (!(navMenu.element = nav && nav.querySelector('.nav-menu'))) return
var navControl
Expand Down Expand Up @@ -29,41 +30,41 @@
}
})

fitNavMenuInit({})
window.addEventListener('load', fitNavMenuInit)
window.addEventListener('resize', fitNavMenuInit)
// fitNavMenuInit({})
// window.addEventListener('load', fitNavMenuInit)
// window.addEventListener('resize', fitNavMenuInit)

if ((navControl = document.querySelector('main .nav-control'))) navControl.addEventListener('click', revealNav)

function scrollItemToMiddle (el, parentEl) {
var adjustment = (el.getBoundingClientRect().height - parentEl.getBoundingClientRect().height) * 0.5 + el.offsetTop
if (adjustment > 0) parentEl.scrollTop = adjustment
}

function fitNavMenuInit (e) {
window.removeEventListener('scroll', fitNavMenuOnScroll)
navMenu.element.style.height = ''
if ((navMenu.preferredHeight = navMenu.element.getBoundingClientRect().height) > 0) {
// QUESTION should we check if x value > 0 instead?
if (window.getComputedStyle(nav).visibility === 'visible') {
if (!navMenu.encroachingElement) navMenu.encroachingElement = document.querySelector('footer.footer')
fitNavMenu(navMenu.preferredHeight, (navMenu.viewHeight = window.innerHeight), navMenu.encroachingElement)
window.addEventListener('scroll', fitNavMenuOnScroll)
}
if (currentPageItem && e.type !== 'resize') {
scrollItemToMiddle(currentPageItem.querySelector('.nav-link'), navMenu.element)
}
}
}

function fitNavMenuOnScroll () {
fitNavMenu(navMenu.preferredHeight, navMenu.viewHeight, navMenu.encroachingElement)
}

function fitNavMenu (preferredHeight, availableHeight, encroachingElement) {
var reclaimedHeight = availableHeight - encroachingElement.getBoundingClientRect().top
navMenu.element.style.height = reclaimedHeight > 0 ? Math.max(0, preferredHeight - reclaimedHeight) + 'px' : ''
}
// function scrollItemToMiddle (el, parentEl) {
// var adjustment = (el.getBoundingClientRect().height - parentEl.getBoundingClientRect().height) * 0.5 + el.offsetTop
// if (adjustment > 0) parentEl.scrollTop = adjustment
// }

// function fitNavMenuInit (e) {
// window.removeEventListener('scroll', fitNavMenuOnScroll)
// navMenu.element.style.height = ''
// if ((navMenu.preferredHeight = navMenu.element.getBoundingClientRect().height) > 0) {
// // QUESTION should we check if x value > 0 instead?
// if (window.getComputedStyle(nav).visibility === 'visible') {
// if (!navMenu.encroachingElement) navMenu.encroachingElement = document.querySelector('footer.footer')
// fitNavMenu(navMenu.preferredHeight, (navMenu.viewHeight = window.innerHeight), navMenu.encroachingElement)
// window.addEventListener('scroll', fitNavMenuOnScroll)
// }
// if (currentPageItem && e.type !== 'resize') {
// scrollItemToMiddle(currentPageItem.querySelector('.nav-link'), navMenu.element)
// }
// }
// }

// function fitNavMenuOnScroll () {
// fitNavMenu(navMenu.preferredHeight, navMenu.viewHeight, navMenu.encroachingElement)
// }

// function fitNavMenu (preferredHeight, availableHeight, encroachingElement) {
// var reclaimedHeight = availableHeight - encroachingElement.getBoundingClientRect().top
// navMenu.element.style.height = reclaimedHeight > 0 ? Math.max(0, preferredHeight - reclaimedHeight) + 'px' : ''
// }

var navMenuControl
if (document.querySelector('.main-nav-parent')) {
Expand Down Expand Up @@ -137,7 +138,20 @@
} else {
nav.classList.add('show-nav')
}
}, 2000)

menuExpandToggle.addEventListener('click', function(e) {
e.preventDefault()
// var navBarHeight = nav.querySelector('.nav-menu')
// navBarHeight.style.height = '100vh'
// console.log(navBarHeight.style.height)
if (nav.classList.contains('collapse-menu')) {
nav.classList.remove('collapse-menu')
} else {
nav.classList.add('collapse-menu')
}

})
}, 500)
// has children in li
// $('ul.nav-list li.nav-item ul.nav-list .nav-item').has('ul.nav-list').addClass('has-children')
function concealEvent (e) {
Expand Down
9 changes: 6 additions & 3 deletions src/js/05-tabset.js
Original file line number Diff line number Diff line change
Expand Up @@ -100,9 +100,12 @@ function find (selector, from) {
return Array.prototype.slice.call((from || document).querySelectorAll(selector))
}
setTimeout(function () {
document.querySelector(' .dropddown-btn').addEventListener('click', function (e) {
e.preventDefault()
})
if (document.querySelector(' .dropddown-btn')) {
document.querySelector(' .dropddown-btn').addEventListener('click', function (e) {
e.preventDefault()
})
}

}, 1000)

function getPane (id, tabset) {
Expand Down
2 changes: 2 additions & 0 deletions src/partials/nav-menu.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,6 @@
<div class="nav-menu">
{{> nav-tree navigation=page.navigation level=0 crumbLevel=0 crumbAtLevel=(lookup page.breadcrumbs 0)}}
</div>

<a href="#" class="menu-expand-toggle"><i class="fas fa-chevron-circle-left"></i></a>
</div>