diff --git a/netbox/project-static/dist/netbox.css b/netbox/project-static/dist/netbox.css index 0d9ddb95d..7fc4c661a 100644 Binary files a/netbox/project-static/dist/netbox.css and b/netbox/project-static/dist/netbox.css differ diff --git a/netbox/project-static/dist/netbox.js b/netbox/project-static/dist/netbox.js index 5624e7298..37c0c6ede 100644 Binary files a/netbox/project-static/dist/netbox.js and b/netbox/project-static/dist/netbox.js differ diff --git a/netbox/project-static/dist/netbox.js.map b/netbox/project-static/dist/netbox.js.map index af923dd4f..7c3e238b6 100644 Binary files a/netbox/project-static/dist/netbox.js.map and b/netbox/project-static/dist/netbox.js.map differ diff --git a/netbox/project-static/src/sidenav.ts b/netbox/project-static/src/sidenav.ts index cf2347980..87994d08f 100644 --- a/netbox/project-static/src/sidenav.ts +++ b/netbox/project-static/src/sidenav.ts @@ -68,7 +68,7 @@ class SideNav { * Set initial values & add event listeners. */ private init() { - for (const toggler of this.base.querySelectorAll('.sidenav-toggle')) { + for (const toggler of getElements('.sidenav-toggle')) { toggler.addEventListener('click', event => this.onToggle(event)); } @@ -221,7 +221,6 @@ class SideNav { break; case 'collapse': groupLink.setAttribute('aria-expanded', 'false'); - groupItem.classList.remove('active'); dropdownMenu.classList.remove('show'); link.classList.remove('active'); break; @@ -314,7 +313,7 @@ class SideNav { } export function initSideNav(): void { - for (const sidenav of getElements('.navbar')) { + for (const sidenav of getElements('.navbar-vertical')) { new SideNav(sidenav); } } diff --git a/netbox/project-static/styles/transitional/_navigation.scss b/netbox/project-static/styles/transitional/_navigation.scss index 1de4948b2..41e14eaca 100644 --- a/netbox/project-static/styles/transitional/_navigation.scss +++ b/netbox/project-static/styles/transitional/_navigation.scss @@ -1,19 +1,65 @@ +body { + &[data-sidenav-hidden] { + .navbar-vertical.navbar-expand-lg { + @include media-breakpoint-up(lg) { + width: 3.2rem; + } + + .nav-link-title { + opacity: 0; + transition: ease-in-out 100ms; + } + } + } + + &:not([data-sidenav-pinned]) { + .page-wrapper { + @include media-breakpoint-up(lg) { + margin-left: 3.2rem!important; + } + } + } +} + // Navbar and light theme styling .navbar-vertical.navbar-expand-lg { + transition: ease-in-out 100ms; + + // Overrides default side nav settings + @include media-breakpoint-up(lg) { + padding-top: 56px; + z-index: 1020; + } + // Adjust hover color & style for menu items .navbar-collapse { .nav-link-icon { color: var(--tblr-nav-link-color)!important; + + // Aligns icon and text with the menu toggle and logo + @include media-breakpoint-up(lg) { + margin-right: .7rem; + margin-left: .3rem; + } } .text-secondary { color: $dark-teal!important; + + @include media-breakpoint-up(lg) { + padding-left: 1.25rem !important; + } } .dropdown-menu { // Adjust hover color & style for menu items .dropdown-item { + + @include media-breakpoint-up(lg) { + padding-left: 1.25rem !important; + } + a { color: $rich-black; } @@ -52,24 +98,6 @@ z-index: 1; } - // Logo text for non-community editions - .navbar-brand { - - // Reduce logo padding on mobile view - @include media-breakpoint-down(lg) { - padding: 0.2rem 0; - } - - a:hover { - text-decoration: none; - } - .netbox-edition { - font-size: .7rem; - letter-spacing: .15rem; - text-align: center; - } - } - // Navigation geometric graphic for non-community editions img.motif { bottom: 0; @@ -92,6 +120,42 @@ } } +.collapse-menu-toggle { + height: 24px; + width: 24px; + padding: 0; +} + +// Logo text for non-community editions +.navbar-brand { + + &-image { + height: 1.8rem; + } + + // Reduce logo padding on mobile view + @include media-breakpoint-down(lg) { + padding: 0.2rem 0; + } + + a:hover { + text-decoration: none; + } + .netbox-edition { + font-size: .7rem; + letter-spacing: .15rem; + text-align: center; + } +} + +// Controls desktop navbar search box width +#navbar-menu { + form { + max-width: 500px; + width: 100%; + } +} + // Light theme styling body[data-bs-theme=light] .navbar-vertical.navbar-expand-lg { background: linear-gradient(180deg, rgba(0, 133, 125, 0.00) 0%, rgba(0, 133, 125, 0.10) 100%), #FFF; diff --git a/netbox/templates/base/layout.html b/netbox/templates/base/layout.html index 2f6030f24..189d9e6fc 100644 --- a/netbox/templates/base/layout.html +++ b/netbox/templates/base/layout.html @@ -33,11 +33,11 @@ Blocks: {# Logo #} -

+

{% trans {% trans -
{{ settings.RELEASE.edition }}
+
{{ settings.RELEASE.edition }}

@@ -56,7 +56,7 @@ Blocks: {# Top menu #} -