@use 'sass:math'; // Contents // // Navbar // Navbar brand // Navbar nav // Navbar text // Responsive navbar // Navbar position // Navbar themes // Navbar // // Provide a static navbar from which we expand to create full-width, fixed, and // other navbar variations. .navbar { position: relative; display: flex; flex-wrap: wrap; // allow us to do the line break for collapsing content align-items: center; justify-content: space-between; // space out brand from logo padding-top: $navbar-padding-y; padding-right: $navbar-padding-x; // default: null padding-bottom: $navbar-padding-y; padding-left: $navbar-padding-x; // default: null @include gradient-bg(); margin-top: 1.5rem + $navbar-padding-y; outline-offset: 0.5rem; outline: 1px solid $light; // Because flex properties aren't inherited, we need to redeclare these first // few properties so that content nested within behave properly. // The `flex-wrap` property is inherited to simplify the expanded navbars %container-flex-properties { display: flex; flex-wrap: inherit; align-items: center; justify-content: space-between; } > .container, > .container-fluid { @extend %container-flex-properties; } @each $breakpoint, $container-max-width in $container-max-widths { > .container#{breakpoint-infix($breakpoint, $container-max-widths)} { @extend %container-flex-properties; } } .container-fluid { position: relative; height: ($navbar-toggler-padding-y * 2) + $navbar-toggler-font-size + 1.625rem; } } // Navbar brand // // Used for brand, project, or site names. @font-face { font-family: 'Alegreya-Variable'; src: url(../font/Alegreya-VariableFont_wght.ttf); } @font-face { font-family: 'Alegreya-Italic-Variable'; src: url(../font/Alegreya-Italic-VariableFont_wght.ttf); } @font-face { font-family: 'Alegreya-Black'; src: url(../font/Alegreya-Black.ttf); } @font-face { font-family: 'Alegreya-BlackItalic'; src: url(../font/Alegreya-BlackItalic.ttf); } @font-face { font-family: 'Alegreya-Bold'; src: url(../font/Alegreya-Bold.ttf); } @font-face { font-family: 'Alegreya-BoldItalic'; src: url(../font/Alegreya-BoldItalic.ttf); } @font-face { font-family: 'Alegreya-ExtraBold'; src: url(../font/Alegreya-ExtraBold.ttf); } @font-face { font-family: 'Alegreya-ExtraBoldItalic'; src: url(../font/Alegreya-ExtraBoldItalic.ttf); } @font-face { font-family: 'Alegreya-Italic'; src: url(../font/Alegreya-Italic.ttf); } @font-face { font-family: 'Alegreya-Medium'; src: url(../font/Alegreya-Medium.ttf); } @font-face { font-family: 'Alegreya-MediumItalic'; src: url(../font/Alegreya-MediumItalic.ttf); } @font-face { font-family: 'Alegreya'; src: url(../font/Alegreya-Regular.ttf); } @font-face { font-family: 'Alegreya-SemiBold'; src: url(../font/Alegreya-SemiBold.ttf); } @font-face { font-family: 'Alegreya-SemiBoldItalic'; src: url(../font/Alegreya-SemiBoldItalic.ttf); } .navbar-brand { &.navbar-brand-logo { margin-left: $navbar-brand-margin-end * 2; padding-left: 120px; font-family: 'Alegreya-Black', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; // font-weight: bolder; color: $primary !important; font-size: 2rem; letter-spacing: 0.125rem; @include media-breakpoint-down(md) { padding-left: 15vw; margin-left: 5vw; } &::before { content: ' '; display: inline-block; width: 120px; height: 110px; position: absolute; left: 0; margin-left: math.div($navbar-brand-margin-end, 2); top: 50%; transform: translate(0, -50%); background-color: $body-bg; border-radius: 50%; border: math.div($navbar-brand-margin-end, 2) solid $body-bg; box-sizing: content-box; @include media-breakpoint-down(md) { width: 15vw; height: 15vw; } } &::after { content: ' '; background-image: url('../img/hbbq_logo.png'); display: inline-block; position: absolute; top: 50%; left: 0; width: 120px; height: 120px; transform: translate(0, -50%); background-size: contain; background-repeat: no-repeat; background-position: center; margin-left: $navbar-brand-margin-end; border-bottom-left-radius: 50%; border-bottom-right-radius: 50%; border-bottom-style: dotted; border-color: $light; @include media-breakpoint-down(md) { width: 15vw; height: 15vw; } } } padding-top: $navbar-brand-padding-y; padding-bottom: $navbar-brand-padding-y; margin-right: $navbar-brand-margin-end; @include font-size($navbar-brand-font-size); text-decoration: if($link-decoration == none, null, none); white-space: nowrap; &:hover, &:focus { text-decoration: if($link-hover-decoration == underline, none, null); } } // Navbar nav // // Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`). .navbar-nav { display: flex; flex-direction: column; // cannot use `inherit` to get the `.navbar`s value padding-left: 0; margin-bottom: 0; list-style: none; .nav-link { padding-right: 0; padding-left: 0; } ul.dropdown-menu { li { .fa { padding-right: $dropdown-spacer * 4; min-width: 1.625rem; } } } } // Navbar text // // .navbar-text { padding-top: $nav-link-padding-y; padding-bottom: $nav-link-padding-y; } // Responsive navbar // // Custom styles for responsive collapsing and toggling of navbar contents. // Powered by the collapse Bootstrap JavaScript plugin. // When collapsed, prevent the toggleable navbar contents from appearing in // the default flexbox row orientation. Requires the use of `flex-wrap: wrap` // on the `.navbar` parent. .navbar-collapse { flex-basis: 100%; flex-grow: 1; // For always expanded or extra full navbars, ensure content aligns itself // properly vertically. Can be easily overridden with flex utilities. align-items: center; justify-content: flex-end; .navbar-nav { align-items: flex-end; .nav-item { padding-left: $navbar-brand-margin-end; .nav-link { padding-right: 1rem; padding-left: 0.5rem; } } } } // Button for toggling the navbar when in its collapsed state .navbar-toggler { padding: $navbar-toggler-padding-y $navbar-toggler-padding-x; @include font-size($navbar-toggler-font-size); line-height: 1; background-color: $white; // transparent; // remove default button style opacity: 0.5; border: 0; // $border-width solid transparent; // remove default button style @include border-radius($navbar-toggler-border-radius); @include transition($navbar-toggler-transition); &:hover { text-decoration: none; opacity: 1; } &:focus { text-decoration: none; outline: 0; box-shadow: 0 0 0 $navbar-toggler-focus-width; } } // Keep as a separate element so folks can easily override it with another icon // or image file as needed. .navbar-toggler-icon { display: inline-block; width: 1.5em; height: 1.5em; vertical-align: middle; background-repeat: no-repeat; background-position: center; background-size: 100%; } .navbar-nav-scroll { max-height: var(--#{$variable-prefix}scroll-height, 75vh); overflow-y: auto; } // scss-docs-start navbar-expand-loop // Generate series of `.navbar-expand-*` responsive classes for configuring // where your navbar collapses. .navbar-expand { @each $breakpoint in map-keys($grid-breakpoints) { $next: breakpoint-next($breakpoint, $grid-breakpoints); $infix: breakpoint-infix($next, $grid-breakpoints); // stylelint-disable-next-line scss/selector-no-union-class-name &#{$infix} { @include media-breakpoint-up($next) { flex-wrap: nowrap; justify-content: flex-start; .navbar-nav { flex-direction: row; .dropdown-menu { position: absolute; } .nav-link { padding-right: $navbar-nav-link-padding-x; padding-left: $navbar-nav-link-padding-x; } } .navbar-nav-scroll { overflow: visible; } .navbar-collapse { display: flex !important; // stylelint-disable-line declaration-no-important flex-basis: auto; position: absolute; right: 0.5rem; } .navbar-toggler { display: none; } } } } } // scss-docs-end navbar-expand-loop // Navbar themes // // Styles for switching between navbars with light or dark background. // Dark links against a light background .navbar-light { .navbar-brand { color: $navbar-light-brand-color; @include media-breakpoint-down(lg) { flex: 1; font-size: calc(1rem + 1.5vw); white-space: nowrap; overflow-x: hidden; text-overflow: ellipsis; } &:hover, &:focus { color: $navbar-light-brand-hover-color; } } .navbar-nav { .nav-link { color: $navbar-light-color; &:hover, &:focus { color: $navbar-light-hover-color; } &.disabled { color: $navbar-light-disabled-color; } } .show > .nav-link, .nav-link.active { color: $navbar-light-active-color; } } .navbar-toggler { color: $navbar-light-color; border-color: $navbar-light-toggler-border-color; } .navbar-toggler-icon { background-image: escape-svg($navbar-light-toggler-icon-bg); } .navbar-text { color: $navbar-light-color; a, a:hover, a:focus { color: $navbar-light-active-color; } } } // White links against a dark background .navbar-dark { .navbar-brand { color: $navbar-dark-brand-color; &:hover, &:focus { color: $navbar-dark-brand-hover-color; } } .navbar-nav { .nav-link { color: $navbar-dark-color; &:hover, &:focus { color: $navbar-dark-hover-color; } &.disabled { color: $navbar-dark-disabled-color; } } .show > .nav-link, .nav-link.active { color: $navbar-dark-active-color; } } .navbar-toggler { color: $navbar-dark-color; border-color: $navbar-dark-toggler-border-color; } .navbar-toggler-icon { background-image: escape-svg($navbar-dark-toggler-icon-bg); } .navbar-text { color: $navbar-dark-color; a, a:hover, a:focus { color: $navbar-dark-active-color; } } }