@use "@styles/abstracts/functions" as fun; @use "@styles/abstracts/mixins" as mix; .title { margin: 0; padding: 0; background: none; font-size: var(--font-size-xl); text-align: left; } .icon { display: flex; flex-flow: row nowrap; align-items: center; justify-content: center; width: fun.convert-px(30); height: fun.convert-px(30); background: var(--color-bg); border: fun.convert-px(1) solid var(--color-primary); border-radius: fun.convert-px(3); color: var(--color-primary); font-weight: 800; transition: all 0.25s ease-in-out 0s; &::before, &::after { content: ""; background: var(--color-primary); transition: all 0.4s ease-out 0s; } &::before { width: 10%; height: 60%; position: relative; left: 30%; } &::after { width: 60%; height: 10%; position: relative; left: -5%; } } .body { width: 100%; max-height: 0; margin: 0 0 fun.convert-px(-6); // collapse borders overflow-y: hidden; visibility: hidden; transition: max-height 0.5s linear 0s, margin 0.3s ease-in-out 0.3s, visibility 0.1s linear 0.6s; &--borders { border: fun.convert-px(2) solid var(--color-primary-dark); } > *:last-child { margin-bottom: 0; } @include mix.media("screen") { @include mix.dimensions("md") { font-size: var(--font-size-sm); font-weight: 500; } } } .wrapper { --header-height: #{fun.convert-px(65)}; display: flex; flex-flow: column; height: max-content; max-height: 100%; &--expanded { .icon::before { height: 0; } .body { max-height: 100%; margin: var(--spacing-sm) 0; overflow-y: visible; visibility: visible; transition: visibility 0.1s linear 0s, max-height 0.6s ease-in 0s, margin 0.2s ease-in-out 0s; } } } .wrapper--expanded.wrapper--toc { @include mix.media("screen") { @include mix.dimensions("lg") { max-height: 100vh; .body { overflow-y: auto; } } } } .header { flex: 0 0 auto; display: flex; flex-flow: row nowrap; align-items: center; justify-content: space-between; gap: var(--spacing-md); width: 100%; min-height: var(--header-height); position: sticky; top: 0; z-index: 3; background: var(--color-bg); border: none; border-top: fun.convert-px(2) solid var(--color-primary-dark); border-bottom: fun.convert-px(2) solid var(--color-primary-dark); cursor: pointer; transition: background 0.2s ease-in-out 0s; &:hover, &:focus { .icon { background: var(--color-primary-light); color: var(--color-fg-inverted); transform: scale(1.2); &::before, &::after { background: var(--color-bg); } } } > button { padding: 0 var(--spacing-xs); } }