// Nav // ******************************************************************************* .nav .nav-item, .nav .nav-link, .tab-pane, .tab-pane .card-body { outline: none !important; } // To fix height issue of nav pills .nav { flex-wrap: inherit; &.nav-pills:not(.nav-align-right):not(.nav-align-left) { flex-wrap: wrap; } .nav-item { white-space: nowrap; } .nav-tabs { background-color: $card-bg; } } //nav tabs shadow .nav-tabs-shadow { box-shadow: $card-box-shadow; } // Tab and pills style .nav-tabs, .nav-pills { .nav-link { display: inline-flex; align-items: center; justify-content: center; text-transform: capitalize; &.active { background-color: transparent; } } &:not(.nav-fill):not(.nav-justified) .nav-link { margin-right: $nav-spacer; width: 100%; @include rtl-style { margin-left: $nav-spacer; margin-right: 0; } } } .tab-content:not(.doc-example-content) { padding: $card-spacer-y; .tab-pane { opacity: 0; transition: all linear 0.1s; @include ltr-style { transform: translateX(-30px); } @include rtl-style { transform: translateX(30px); } &.show { opacity: 1; transform: unset !important; transition: all ease-out 0.2s 0.1s; } } } // For scrollable navs/tabs/pills .nav-scrollable { display: -webkit-inline-box; display: -moz-inline-box; width: 100%; overflow-y: auto; flex-wrap: nowrap; } // Widget Tabs // -------------------------------------------------- .nav-tabs { div:not(.nav-align-left):not(.nav-align-right) > & { display: inline-flex; width: 100%; overflow-x: auto !important; overflow-y: hidden; } &.widget-nav-tabs { border: 0 !important; overflow-x: auto; .nav-link { border: $border-width dashed $border-color; &.active { border: $border-width solid $border-color; } @include media-breakpoint-up(md) { height: 100px !important; width: 110px !important; @include border-radius($border-radius); } @include media-breakpoint-down(md) { border: 0 !important; padding: 0; } &.active { border-color: $primary; box-shadow: none !important; .badge { background-color: $component-hover-bg !important; color: $component-active-bg !important; } } .tab-widget-title { @include media-breakpoint-down(md) { display: none; } } } } } // Todo: remove/ update style for nav with perfect scrollbar // ? Not working with fixed width // ? if provide width/min-width with %/auto not working // ? Also can't use width with PX (as it's required for ps) // ? removed JS so need to initialize ps again // ? Once done add an example to docs // .nav-scrollable { // display: -webkit-inline-box; // display: -moz-inline-box; // width: 420px; // padding-bottom: 0.5rem; // position: relative; // // overflow-y: auto; // flex-wrap: nowrap; // } // Tab link .nav-tabs { position: relative; .tab-slider { height: 2px; position: absolute; .nav-align-left &, .nav-align-right & { width: 2px !important; } } .nav-link { background-clip: padding-box; border-radius: 0; } } .nav-pills { .nav-link { padding: $nav-pills-padding-y $nav-pills-padding-x; } & .nav-item .nav-link:not(.active):hover { border-bottom: none; padding-bottom: $nav-link-padding-y; background-color: $nav-pills-link-hover-bg; } ~ .tab-content { box-shadow: $box-shadow; } } // Sizing // ******************************************************************************* .nav-sm { @include template-nav-size($nav-link-padding-y-sm, $nav-link-padding-x-sm, $font-size-sm, $nav-link-line-height-sm); } .nav-lg { @include template-nav-size($nav-link-padding-y-lg, $nav-link-padding-x-lg, $font-size-lg, $nav-link-line-height-lg); } // Top, Right, Bottom & Left Tabbed panels // ******************************************************************************* .nav-align-top, .nav-align-right, .nav-align-bottom, .nav-align-left { .nav-tabs { background: $nav-tabs-link-active-bg; } display: flex; > .nav, > div > .nav { z-index: 1; position: relative; } &:has(.nav-tabs) { border-radius: $border-radius !important; } .row-bordered > [class^='col-'], .row-bordered > [class*=' col-'], .row-bordered > [class^='col '], .row-bordered > [class*=' col '], .row-bordered > [class$=' col'], .row-bordered > [class='col'] { &::before, &::after { border-color: $card-inner-border-color; } } } .nav-align-right, .nav-align-left { align-items: stretch; > .nav, > div > .nav { flex-grow: 0; flex-direction: column; border-bottom-width: 0; } > .nav.nav-pills .nav-item:not(:last-child), > div > .nav.nav-pills .nav-item:not(:last-child) { margin: 0 0 $nav-spacer 0 !important; } > .tab-content { flex-grow: 1; .tab-pane { transform: translateY(-30px); &.show { transform: translateY(0px); } } } } // Top tabs .nav-align-top { .tab-content { @include border-bottom-radius($border-radius); } flex-direction: column; .nav-tabs { border-bottom: $border-width solid $border-color; @include border-top-radius($border-radius); & .nav-link:not(.active):hover { color: $primary !important; border-bottom: 2px solid $nav-pills-link-hover-bg !important; padding-bottom: calc($nav-link-padding-y - 0.125rem); } &.nav-lg .nav-link:not(.active):hover { padding-bottom: calc($nav-link-padding-y-lg - 0.125rem); } &.nav-sm .nav-link:not(.active):hover { padding-bottom: calc($nav-link-padding-y-sm - 0.125rem); } } .nav-pills ~ .tab-content { @include border-top-radius($border-radius); } } .nav-align-top, .nav-align-bottom { > .tab-content { .tab-pane { @include ltr-style { transform: translateX(-30px); } @include rtl-style { transform: translateX(30px); } &.show { transform: translateX(0px) !important; } } } @include ltr-style { > .nav.nav-pills .nav-item:not(:last-child) { margin-right: $nav-spacer; } } @include rtl-style { > .nav.nav-pills .nav-item:not(:last-child) { margin-left: $nav-spacer; } } } .nav-align-right { .tab-content { @include border-start-radius($border-radius); } flex-direction: row-reverse; .nav-tabs { border-left: $border-width solid $border-color; @include border-end-radius($border-radius); position: relative; .tab-slider { @include ltr-style { left: 0; } @include rtl-style { right: 0; } } ~ .tab-content { .card & { @include ltr-style { border-right: $nav-tabs-border-width solid $nav-tabs-border-color; } @include rtl-style { border-left: $nav-tabs-border-width solid $nav-tabs-border-color; } } } @include ltr-style { & .nav-link:not(.active):hover { color: $primary !important; border-left: 2px solid $nav-pills-link-hover-bg !important; padding-left: calc($nav-link-padding-x - 0.125rem); } } @include rtl-style { & .nav-link:not(.active):hover { color: $primary !important; border-right: 2px solid $nav-pills-link-hover-bg !important; padding-right: calc($nav-link-padding-x - 0.125rem); } } } > .nav .nav-item, > div > .nav .nav-item { margin-left: 0; @include rtl-style { margin-left: 0; margin-right: 0; } } .nav-link { text-align: right; justify-content: end; } .nav-pills ~ .tab-content { @include border-end-radius($border-radius); } } // Bottom tabs .nav-align-bottom { .tab-content { @include border-top-radius($border-radius); } flex-direction: column-reverse; > .nav .nav-item, > div > .nav .nav-item { margin-bottom: 0; margin-top: 0; } > .nav, > div > .nav { border-bottom-width: 0; border-top: $nav-tabs-border-width solid $nav-tabs-border-color; } .nav-tabs { border-top: $border-width solid $border-color; @include border-bottom-radius($border-radius); .tab-slider { bottom: inherit !important; } & .nav-link:not(.active):hover { color: $primary !important; border-top: 2px solid $nav-pills-link-hover-bg !important; padding-top: calc($nav-link-padding-y - 0.125rem); } } .nav-pills ~ .tab-content { @include border-bottom-radius($border-radius); } } // Left tabs .nav-align-left { .tab-content { @include border-end-radius($border-radius); } .nav-tabs { border-right: $border-width solid $border-color; @include border-start-radius($border-radius); position: relative; ~ .tab-content { .card & { @include ltr-style { border-left: $nav-tabs-border-width solid $nav-tabs-border-color; } @include rtl-style { border-right: $nav-tabs-border-width solid $nav-tabs-border-color; } } } @include ltr-style { & .nav-link:not(.active):hover { color: $primary !important; border-right: 2px solid $nav-pills-link-hover-bg !important; padding-right: calc($nav-link-padding-x - 0.125rem); } } @include rtl-style { & .nav-link:not(.active):hover { color: $primary !important; border-left: 2px solid $nav-pills-link-hover-bg !important; padding-left: calc($nav-link-padding-x - 0.125rem); } } } > .nav .nav-item, > div > .nav .nav-item { margin-right: 0; @include rtl-style { margin-right: 0; margin-left: 0; } } .nav-link { text-align: left; justify-content: start; } .nav-pills ~ .tab-content { @include border-start-radius($border-radius); } } // Tab content .nav-align-top > .tab-content, .nav-align-right > .tab-content, .nav-align-bottom > .tab-content, .nav-align-left > .tab-content { flex-shrink: 1; background-clip: padding-box; background: $nav-tabs-link-active-bg; .card & { background: transparent; } } .card .tab-content { box-shadow: none !important; } // Dark @if $dark-style { .nav-tabs { .nav-link.active { border-color: $border-color; border-bottom-color: $nav-tabs-link-active-bg; } } .nav-align-top, .nav-align-bottom, .nav-align-left, .nav-align-right { .nav-tabs { .nav-link.active { border-color: $gray-200; @include rtl-style { border-right-color: $gray-200 !important; } } } } .nav-align-top { .nav-tabs { .nav-link.active { border-bottom-color: $nav-tabs-link-active-bg !important; } } } .nav-align-bottom { .nav-tabs { .nav-link.active { border-top-color: $nav-tabs-link-active-bg !important; } } } } // RTL @include rtl-only { .nav { padding-right: 0; } .nav-align-left { .nav-link { text-align: right; } } .nav-align-right { .nav-link { text-align: left; } } }