@use "../utilities/css-variables" as cv; @use "../utilities/initial-variables" as iv; @use "../utilities/derived-variables" as dv; @use "../utilities/extends"; @use "../utilities/mixins" as mx; $tabs-border-bottom-color: cv.getVar("border") !default; $tabs-border-bottom-style: solid !default; $tabs-border-bottom-width: 1px !default; $tabs-link-color: cv.getVar("text") !default; $tabs-link-hover-border-bottom-color: cv.getVar("text-strong") !default; $tabs-link-hover-color: cv.getVar("text-strong") !default; $tabs-link-active-border-bottom-color: cv.getVar("link-text") !default; $tabs-link-active-color: cv.getVar("link-text") !default; $tabs-link-padding: 0.5em 1em !default; $tabs-boxed-link-radius: cv.getVar("radius") !default; $tabs-boxed-link-hover-background-color: cv.getVar("background") !default; $tabs-boxed-link-hover-border-bottom-color: cv.getVar("border") !default; $tabs-boxed-link-active-background-color: cv.getVar("scheme-main") !default; $tabs-boxed-link-active-border-color: cv.getVar("border") !default; $tabs-boxed-link-active-border-bottom-color: transparent !default; $tabs-toggle-link-border-color: cv.getVar("border") !default; $tabs-toggle-link-border-style: solid !default; $tabs-toggle-link-border-width: 1px !default; $tabs-toggle-link-hover-background-color: cv.getVar("background") !default; $tabs-toggle-link-hover-border-color: cv.getVar("border-hover") !default; $tabs-toggle-link-radius: cv.getVar("radius") !default; $tabs-toggle-link-active-background-color: cv.getVar("link") !default; $tabs-toggle-link-active-border-color: cv.getVar("link") !default; $tabs-toggle-link-active-color: cv.getVar("link-invert") !default; .#{iv.$class-prefix}tabs { @include cv.register-vars( ( "tabs-border-bottom-color": #{$tabs-border-bottom-color}, "tabs-border-bottom-style": #{$tabs-border-bottom-style}, "tabs-border-bottom-width": #{$tabs-border-bottom-width}, "tabs-link-color": #{$tabs-link-color}, "tabs-link-hover-border-bottom-color": #{$tabs-link-hover-border-bottom-color}, "tabs-link-hover-color": #{$tabs-link-hover-color}, "tabs-link-active-border-bottom-color": #{$tabs-link-active-border-bottom-color}, "tabs-link-active-color": #{$tabs-link-active-color}, "tabs-link-padding": #{$tabs-link-padding}, "tabs-boxed-link-radius": #{$tabs-boxed-link-radius}, "tabs-boxed-link-hover-background-color": #{$tabs-boxed-link-hover-background-color}, "tabs-boxed-link-hover-border-bottom-color": #{$tabs-boxed-link-hover-border-bottom-color}, "tabs-boxed-link-active-background-color": #{$tabs-boxed-link-active-background-color}, "tabs-boxed-link-active-border-color": #{$tabs-boxed-link-active-border-color}, "tabs-boxed-link-active-border-bottom-color": #{$tabs-boxed-link-active-border-bottom-color}, "tabs-toggle-link-border-color": #{$tabs-toggle-link-border-color}, "tabs-toggle-link-border-style": #{$tabs-toggle-link-border-style}, "tabs-toggle-link-border-width": #{$tabs-toggle-link-border-width}, "tabs-toggle-link-hover-background-color": #{$tabs-toggle-link-hover-background-color}, "tabs-toggle-link-hover-border-color": #{$tabs-toggle-link-hover-border-color}, "tabs-toggle-link-radius": #{$tabs-toggle-link-radius}, "tabs-toggle-link-active-background-color": #{$tabs-toggle-link-active-background-color}, "tabs-toggle-link-active-border-color": #{$tabs-toggle-link-active-border-color}, "tabs-toggle-link-active-color": #{$tabs-toggle-link-active-color}, ) ); } .#{iv.$class-prefix}tabs { @extend %block; @extend %unselectable; @include mx.overflow-touch; align-items: stretch; display: flex; font-size: cv.getVar("size-normal"); justify-content: space-between; overflow: hidden; overflow-x: auto; white-space: nowrap; a { align-items: center; border-bottom-color: cv.getVar("tabs-border-bottom-color"); border-bottom-style: cv.getVar("tabs-border-bottom-style"); border-bottom-width: cv.getVar("tabs-border-bottom-width"); color: cv.getVar("tabs-link-color"); display: flex; justify-content: center; margin-bottom: calc(-1 * #{cv.getVar("tabs-border-bottom-width")}); padding: cv.getVar("tabs-link-padding"); transition-duration: cv.getVar("duration"); transition-property: background-color, border-color, color; vertical-align: top; &:hover { border-bottom-color: cv.getVar("tabs-link-hover-border-bottom-color"); color: cv.getVar("tabs-link-hover-color"); } } li { display: block; &.#{iv.$class-prefix}is-active { a { border-bottom-color: cv.getVar("tabs-link-active-border-bottom-color"); color: cv.getVar("tabs-link-active-color"); } } } ul { align-items: center; border-bottom-color: cv.getVar("tabs-border-bottom-color"); border-bottom-style: cv.getVar("tabs-border-bottom-style"); border-bottom-width: cv.getVar("tabs-border-bottom-width"); display: flex; flex-grow: 1; flex-shrink: 0; justify-content: flex-start; &.#{iv.$class-prefix}is-left { padding-right: 0.75em; } &.#{iv.$class-prefix}is-center { flex: none; justify-content: center; padding-left: 0.75em; padding-right: 0.75em; } &.#{iv.$class-prefix}is-right { justify-content: flex-end; padding-left: 0.75em; } } .#{iv.$class-prefix}icon { &:first-child { margin-inline-end: 0.5em; } &:last-child { margin-inline-start: 0.5em; } } // Alignment &.#{iv.$class-prefix}is-centered { ul { justify-content: center; } } &.#{iv.$class-prefix}is-right { ul { justify-content: flex-end; } } // Styles &.#{iv.$class-prefix}is-boxed { a { border: 1px solid transparent; border-start-start-radius: cv.getVar("tabs-boxed-link-radius"); border-start-end-radius: cv.getVar("tabs-boxed-link-radius"); &:hover { background-color: cv.getVar("tabs-boxed-link-hover-background-color"); border-bottom-color: cv.getVar( "tabs-boxed-link-hover-border-bottom-color" ); } } li { &.#{iv.$class-prefix}is-active { a { background-color: cv.getVar( "tabs-boxed-link-active-background-color" ); border-color: cv.getVar("tabs-boxed-link-active-border-color"); border-bottom-color: cv.getVar( "tabs-boxed-link-active-border-bottom-color" ) !important; } } } } &.#{iv.$class-prefix}is-fullwidth { li { flex-grow: 1; flex-shrink: 0; } } &.#{iv.$class-prefix}is-toggle { a { border-color: cv.getVar("tabs-toggle-link-border-color"); border-style: cv.getVar("tabs-toggle-link-border-style"); border-width: cv.getVar("tabs-toggle-link-border-width"); margin-bottom: 0; position: relative; &:hover { background-color: cv.getVar("tabs-toggle-link-hover-background-color"); border-color: cv.getVar("tabs-toggle-link-hover-border-color"); z-index: 2; } } li { & + li { margin-inline-start: calc( -1 * #{cv.getVar("tabs-toggle-link-border-width")} ); } &:first-child a { border-start-start-radius: cv.getVar("tabs-toggle-link-radius"); border-end-start-radius: cv.getVar("tabs-toggle-link-radius"); } &:last-child a { border-start-end-radius: cv.getVar("tabs-toggle-link-radius"); border-end-end-radius: cv.getVar("tabs-toggle-link-radius"); } &.#{iv.$class-prefix}is-active { a { background-color: cv.getVar( "tabs-toggle-link-active-background-color" ); border-color: cv.getVar("tabs-toggle-link-active-border-color"); color: cv.getVar("tabs-toggle-link-active-color"); z-index: 1; } } } ul { border-bottom: none; } &.#{iv.$class-prefix}is-toggle-rounded { li { &:first-child a { border-start-start-radius: cv.getVar("radius-rounded"); border-end-start-radius: cv.getVar("radius-rounded"); padding-inline-start: 1.25em; } &:last-child a { border-start-end-radius: cv.getVar("radius-rounded"); border-end-end-radius: cv.getVar("radius-rounded"); padding-inline-end: 1.25em; } } } } // Sizes &.#{iv.$class-prefix}is-small { font-size: cv.getVar("size-small"); } &.#{iv.$class-prefix}is-medium { font-size: cv.getVar("size-medium"); } &.#{iv.$class-prefix}is-large { font-size: cv.getVar("size-large"); } }