From 6e47d820a7689f6cd61313c214027acdf253dbb6 Mon Sep 17 00:00:00 2001 From: Michelle Tran <michelle.tran@darkwolfsolutions.com> Date: Wed, 7 Sep 2022 20:12:17 +0000 Subject: [PATCH] BULL-1948 --- src/App.vue | 10 +- src/components/NavBar.vue | 306 ++++++++++++++++++++++++++++---------- src/router/routes.js | 1 + src/scss/variables.scss | 1 + 4 files changed, 234 insertions(+), 84 deletions(-) diff --git a/src/App.vue b/src/App.vue index 95f6cb64..2f951aad 100644 --- a/src/App.vue +++ b/src/App.vue @@ -71,6 +71,8 @@ export default { } .theme--dark { + color: $light-text-color; + background-color: $dark-bg-color; h1, h2, h3, @@ -87,14 +89,6 @@ export default { border: $button-border; } - .v-list-item { - &.v-list-item--active { - color: $dark-bg-color !important; - } - .v-list-item__content { - text-align: left; - } - } .v-select__selections { line-height: 1.25rem; } diff --git a/src/components/NavBar.vue b/src/components/NavBar.vue index e48633e4..2bdd6857 100644 --- a/src/components/NavBar.vue +++ b/src/components/NavBar.vue @@ -16,42 +16,141 @@ </router-link> </v-toolbar-title> <v-spacer></v-spacer> + <v-toolbar-items> - <div class="navbar-nav my-auto pr-10"> - <router-link class="nav-item" to="/" exact> Home </router-link> - <v-menu open-on-hover bottom offset-y> + <div class="main-navbar my-auto pr-10"> + <router-link class="nav-item" :to="Home.path" exact> + {{ Home.meta.breadcrumb }} + </router-link> + + <!-- Services menu --> + <v-menu + open-on-hover + bottom + offset-y + attach=".main-navbar" + content-class="ml-n10 overflow-visible contain-none" + > <template v-slot:activator="{ on, attrs }"> <span class="pt-1" v-bind="attrs" v-on="on"> - <router-link class="nav-item d-inline" to="/services"> - Services + <router-link class="nav-item d-inline" :to="Services.path"> + {{ Services.meta.breadcrumb }} <v-icon class="navbar-chevron-icon">mdi-chevron-down</v-icon> </router-link> </span> </template> - <v-list class="navbar-nav-list"> - <v-list-item - v-for="(item, index) in servicesSubMenu" - :key="index" - :to="item.path" - link - > - <v-list-item-title class="navbar-list-items"> - {{ item.meta.breadcrumb }} + + <!-- Display Services dropdown menu --> + <v-list dark class="navbar-nav-list"> + <v-list-item> + <v-list-item-title class="nav-item"> + <router-link + class="nav-item d-inline submenu-item" + :to="IronBank.path" + > + {{ IronBank.meta.breadcrumb }} + </router-link> + </v-list-item-title> + </v-list-item> + + <!-- Display Party Bus dropdown submenu --> + <v-list-item id="pbMenu"> + <v-menu + open-on-hover + right + offset-x + attach="#pbMenu" + content-class="overflow-visible contain-none" + > + <template v-slot:activator="{ on, attrs }"> + <v-list-item-title + class="nav-item" + v-bind="attrs" + v-on="on" + > + <router-link + class="nav-item d-inline submenu-item" + to="/products/party-bus" + > + {{ PartyBus.meta.breadcrumb }} + <v-icon class="mt-1 navbar-chevron-icon" + >mdi-chevron-right</v-icon + > + </router-link> + </v-list-item-title> + </template> + <v-list dark class="mt-n5 navbar-nav-list"> + <v-list-item> + <v-list-item-title class="nav-item"> + <router-link + class="nav-item d-inline submenu-item" + :to="PartyBusOnboarding.path" + > + {{ PartyBusOnboarding.meta.breadcrumb }} + </router-link> + </v-list-item-title> + </v-list-item> + + <v-list-item-title class="nav-item"> + <router-link + class="nav-item d-inline submenu-item" + :to="ServiceCatalog.path" + > + {{ ServiceCatalog.meta.breadcrumb }} + </router-link> + </v-list-item-title> + </v-list> + </v-menu> + </v-list-item> + + <!-- Display the rest of the Services menu --> + <v-list-item> + <v-list-item-title class="nav-item"> + <router-link + class="nav-item d-inline submenu-item" + :to="BigBang.path" + > + {{ BigBang.meta.breadcrumb }} + </router-link> + </v-list-item-title> + </v-list-item> + + <v-list-item> + <v-list-item-title class="nav-item"> + <router-link + class="nav-item d-inline submenu-item" + :to="CNAP.path" + > + {{ CNAP.meta.breadcrumb }} + </router-link> + </v-list-item-title> + </v-list-item> + + <v-list-item> + <v-list-item-title class="nav-item"> + <router-link + class="nav-item d-inline submenu-item" + :to="Cybersecurity.path" + > + {{ Cybersecurity.meta.breadcrumb }} + </router-link> </v-list-item-title> </v-list-item> </v-list> </v-menu> - <router-link class="nav-item" to="/resellers"> - Resellers + + <!-- Display the rest of the Nav Bar items --> + <router-link class="nav-item" :to="Resellers.path"> + {{ Resellers.meta.breadcrumb }} </router-link> - <router-link class="nav-item" to="/resources"> - Resources + <router-link class="nav-item" :to="Resources.path"> + {{ Resources.meta.breadcrumb }} </router-link> - <router-link class="nav-item" to="/who-we-are"> - Who We Are + <router-link class="nav-item" :to="WhoWeAre.path"> + {{ WhoWeAre.meta.breadcrumb }} </router-link> - <router-link class="nav-item" to="/contact-us"> - Contact Us + <router-link class="nav-item" :to="ContactUs.path"> + {{ ContactUs.meta.breadcrumb }} </router-link> </div> </v-toolbar-items> @@ -65,6 +164,7 @@ :full-width="showBurgerIcon" /> + <!-- Mobile view implementation --> <v-app-bar-nav-icon id="nav-toggle" @click.stop="menuVisible = !menuVisible" @@ -90,72 +190,116 @@ dark id="nav-drawer" > - <div class="navbar-nav my-auto d-flex flex-column px-5"> + <div class="main-navbar my-auto d-flex flex-column px-5"> <router-link class="nav-item" - to="/" + :to="Home.path" exact @click.native="menuVisible = false" > - Home + {{ Home.meta.breadcrumb }} </router-link> <v-divider class="my-2" /> <router-link class="nav-item" - to="/services" + :to="Services.path" + @click.native="menuVisible = false" + > + {{ Services.meta.breadcrumb }} + </router-link> + + <!-- Services submenu Mobile --> + <router-link + :to="IronBank.path" + @click.native="menuVisible = false" + class="nav-item-mobile" + > + {{ IronBank.meta.breadcrumb }} + </router-link> + + <router-link + :to="PartyBus.path" + class="nav-item-mobile" + @click.native="menuVisible = false" + > + {{ PartyBus.meta.breadcrumb }} + </router-link> + <router-link + :to="PartyBusOnboarding.path" + class="nav-item-mobile pbMenu-item-mobile" + @click.native="menuVisible = false" + > + Onboarding + </router-link> + <router-link + :to="ServiceCatalog.path" + class="nav-item-mobile pbMenu-item-mobile" @click.native="menuVisible = false" > - Services + Service Catalog </router-link> <router-link - v-for="item in servicesSubMenu" - :key="item.path" - :to="item.path" + :to="BigBang.path" @click.native="menuVisible = false" class="nav-item-mobile" > - {{ item.meta.breadcrumb }} + {{ BigBang.meta.breadcrumb }} + </router-link> + + <router-link + :to="CNAP.path" + @click.native="menuVisible = false" + class="nav-item-mobile" + > + {{ CNAP.meta.breadcrumb }} + </router-link> + + <router-link + :to="Cybersecurity.path" + @click.native="menuVisible = false" + class="nav-item-mobile" + > + {{ Cybersecurity.meta.breadcrumb }} </router-link> <v-divider class="mt-6 mb-2" /> <router-link class="nav-item" - to="/resellers" + :to="Resellers.path" @click.native="menuVisible = false" > - RESELLERS + {{ Resellers.meta.breadcrumb }} </router-link> <v-divider class="my-2" /> - <router-link class="nav-item" - to="/resources" + :to="Resources.path" @click.native="menuVisible = false" > - Resources + {{ Resources.meta.breadcrumb }} </router-link> <v-divider class="my-2" /> + <router-link class="nav-item" - to="/who-we-are" + :to="WhoWeAre.path" @click.native="menuVisible = false" > - Who We Are + {{ WhoWeAre.meta.breadcrumb }} </router-link> - <v-divider class="my-2" /> <router-link class="nav-item" - to="/contact-us" + :to="ContactUs.path" @click.native="menuVisible = false" > - Contact Us + {{ ContactUs.meta.breadcrumb }} </router-link> <v-divider class="mt-2 mb-4" /> @@ -177,13 +321,19 @@ export default { data: () => ({ menuVisible: false, - servicesSubMenu: [ - routesByName.IronBank, - routesByName.PartyBus, - routesByName.BigBang, - routesByName.CNAP, - routesByName.Cybersecurity, - ], + Home: routesByName.Home, + Services: routesByName.Services, + IronBank: routesByName.IronBank, + PartyBus: routesByName.PartyBus, + BigBang: routesByName.BigBang, + CNAP: routesByName.CNAP, + Cybersecurity: routesByName.Cybersecurity, + PartyBusOnboarding: routesByName.PartyBusOnboarding, + ServiceCatalog: routesByName.ServiceCatalog, + Resellers: routesByName.Resellers, + Resources: routesByName.Resources, + WhoWeAre: routesByName.WhoWeAre, + ContactUs: routesByName.ContactUs, navigationDrawerBreakPoint: 1150, showBurgerIcon: false, isSearchExpanded: false, @@ -193,7 +343,6 @@ export default { window.removeEventListener("resize", this.onResize, { passive: true }); }, - mounted() { this.onResize(); @@ -213,29 +362,13 @@ export default { }, }; </script> -<style lang="scss"> +<style lang="scss" scoped> #nav-drawer { margin-top: 102px; z-index: 9; } -.v-navigation-drawer__content { - background-color: $dark-bg-color !important; -} - -.navbar-nav-list { - background-color: $dark-bg-color !important; -} - -.navbar-list-items { - color: #ffffff; - - &:hover { - color: $p1-dark-green !important; - } -} a.nav-item { - color: #ffffff !important; text-transform: uppercase; &:hover, &:active { @@ -251,8 +384,9 @@ a.nav-item { } } -a.nav-item.router-link-active { +a.nav-item.router-link-exact-active { color: #bdc931 !important; + border-bottom: 2px solid $p1-light-green; i.navbar-chevron-icon:not(.no-link) { padding: 0 0 4px 0; @@ -260,7 +394,12 @@ a.nav-item.router-link-active { } } -.navbar-nav { +a.nav-item-mobile.router-link-exact-active { + color: #bdc931 !important; + border-bottom: 2px solid $p1-light-green; +} + +.main-navbar { font-weight: 600; .nav-item { @@ -278,15 +417,20 @@ a.nav-item.router-link-active { color: $p1-dark-green !important; } } - .router-link-active { - border-bottom: 2px solid $p1-light-green; - color: $p1-light-green !important; + + .submenu-item { + font-weight: 400 !important; + padding: 0 !important; + margin: 0 !important; + text-transform: none !important; } } // Mobile-view styling .nav-item-mobile { - padding: 0; - margin: 0; + text-align: left; + margin-left: 1.9rem; + padding-left: 0.1rem; + margin-right: 0.8rem; font-size: 0.75rem !important; color: $light-text-color !important; letter-spacing: 0.04rem; @@ -297,12 +441,19 @@ a.nav-item.router-link-active { } } -#app-bar .navbar-nav .nav-item:last-child { +.pbMenu-item-mobile { + text-align: right; + margin-left: 0.8rem !important; + padding-left: 0 !important; + margin-right: 2.15rem !important; + padding-right: 0.1rem !important; +} + +#app-bar .main-navbar .nav-item:last-child { margin-right: 0; } #app-bar { - background-color: $dark-bg-color !important; padding-left: 1rem; padding-right: 1rem; z-index: 10; @@ -316,7 +467,7 @@ a.nav-item.router-link-active { } &.hide-nav-toolbar { - .navbar-nav { + .main-navbar { display: none; } &.search-expanded { @@ -458,4 +609,7 @@ a.nav-item.router-link-active { transform: rotate(45deg); } } +.contain-none { + contain: none !important; +} </style> diff --git a/src/router/routes.js b/src/router/routes.js index 334a4813..29520861 100644 --- a/src/router/routes.js +++ b/src/router/routes.js @@ -5,6 +5,7 @@ export const routes = [ meta: { title: "Platform One", bodyClass: "home-page", + breadcrumb: "Home", header: { title: "Platform One", description: diff --git a/src/scss/variables.scss b/src/scss/variables.scss index 09ea7e85..cf534aff 100644 --- a/src/scss/variables.scss +++ b/src/scss/variables.scss @@ -3,6 +3,7 @@ $header-text-color: #000000; $button-text-color: #000000; $light-text-color: #ffffff; $light-bg-color: #ffffff; +$dark-text-color: #002743; $dark-bg-color: #002743; $gradient-alpha: #00000000; -- GitLab