@use "sass:map"; @use "../settings" as *; @if map.get($modules, "components/tab") { /** * Tabs * styling help from: https://codepen.io/mikestreety/pen/yVNNNm */ @if $enable-transitions { @keyframes showTab { from { //transform: translateY(10px); scale: 0.75; opacity: 0; } to { //transform: translateY(0); scale: 1; opacity: 1; } } } #{$parent-selector} [role="tablist"] { display: flex; flex-wrap: wrap; // make sure it wraps padding-bottom: 0; > button[role="tab"] { flex-grow: 1; order: 1; // Put the labels first padding: calc(var(#{$css-var-prefix}spacing) * 0.625); border: 0; border-bottom: 1px solid var(#{$css-var-prefix}primary-background); border-bottom-right-radius: 0; border-bottom-left-radius: 0; background: transparent; color: var(#{$css-var-prefix}contrast); font-weight: bold; cursor: pointer; @if $enable-transitions { transition: background-color var(#{$css-var-prefix}transition); } &[aria-selected="true"] { background: var(#{$css-var-prefix}primary-background); color: var(#{$css-var-prefix}primary-inverse); } &:hover { background: var(#{$css-var-prefix}primary-hover-background); color: var(#{$css-var-prefix}primary-inverse); } } [role="tabpanel"] { flex-grow: 1; order: 99; // Put the tabs last width: 100%; //calc(var(#{$css-var-prefix}form-element-spacing-vertical) * 2) //var(#{$css-var-prefix}form-element-spacing-horizontal); padding: var(--pico-spacing) calc(var(--pico-spacing) * 0.75); background: var( #{$css-var-prefix}accent-section-bg-color ); //#{$css-var-prefix}card-sectioning-background-color); @if $enable-transitions { animation: var(#{$css-var-prefix}tab-animation) var(#{$css-var-prefix}transition); } &:not([hidden]) { display: block; } &[hidden] { display: none; } > *:last-of-type { margin-bottom: 0; } } } @media (max-width: 45em) { #{$parent-selector} [role="tablist"] { [role="tabpanel"], button, label { order: initial; } label, [role="tabpanel"], button { width: 100%; margin-top: 0.2rem; margin-right: 0; } } } }