@use "../mixins"; @use "@configured-variables" as variables; @use "vuetify/lib/styles/tools/states" as vuetifyStates; @use "../utils"; // Nav items styles (including section title) %vertical-nav-item { margin-block: 0; margin-inline: variables.$vertical-nav-horizontal-spacing; padding-block: 0; padding-inline: variables.$vertical-nav-horizontal-padding; white-space: nowrap; } // This is same as `%vertical-nav-item` except section title is excluded %vertical-nav-item-interactive { block-size: 2.625rem; border-end-end-radius: 3.125rem; border-start-end-radius: 3.125rem; /* ℹ️ We will use `margin-block-end` instead of `margin-block` to give more space for shadow to appear. With `margin-block`, due to small space (space gets divided between top & bottom) shadow cuts */ margin-block-end: 0.375rem; } // Common styles for nav item icon styles // ℹ️ Nav group's children icon styles are not here (Adjusts height, width & margin) %vertical-nav-items-icon { flex-shrink: 0; font-size: variables.$vertical-nav-items-icon-size; margin-inline-end: variables.$vertical-nav-items-icon-margin-inline-end; } // Section title %vertical-nav-section-title { // ℹ️ Setting height will prevent jerking when text & icon is toggled block-size: 1.5rem; color: rgba(var(--v-theme-on-surface), var(--v-disabled-opacity)); font-size: 0.75rem; padding-inline: variables.$vertical-nav-horizontal-padding; text-transform: uppercase; /* ℹ️ We will use this to add gap between divider and text. Moreover, we will use this to adjust the `flex-basis` property of left divider */ $divider-gap: 0.625rem; // Thanks: https://stackoverflow.com/a/62359101/10796681 .title-text { display: flex; flex-wrap: nowrap; align-items: center; justify-content: flex-start; column-gap: $divider-gap; &::before, &::after { border-block-end: 1px solid rgba(var(--v-border-color), var(--v-border-opacity)); content: ""; } &::after { flex: 1 1 auto; } &::before { flex: 0 1 calc(variables.$vertical-nav-horizontal-padding-start - $divider-gap); margin-inline-start: -#{variables.$vertical-nav-horizontal-padding-start}; } } } // Vertical nav item badge styles %vertical-nav-item-badge { display: inline-block; border-radius: 1.5rem; font-size: 0.8em; font-weight: 500; line-height: 1; padding-block: 0.25em; padding-inline: 0.55em; text-align: center; vertical-align: baseline; white-space: nowrap; }