diff --git a/packages/list/src/List.stories.ts b/packages/list/src/List.stories.ts index 9dafdb311..497e28627 100644 --- a/packages/list/src/List.stories.ts +++ b/packages/list/src/List.stories.ts @@ -169,6 +169,11 @@ export const Small: Story = (args) => ({ `, }); +export const Mini = Small.bind({}) +Mini.args = { + mini: true, +} + export const Shaped: Story = (args) => ({ components: { List, diff --git a/packages/list/src/List.vue b/packages/list/src/List.vue index adaa1ab8a..ec0d2d464 100644 --- a/packages/list/src/List.vue +++ b/packages/list/src/List.vue @@ -16,6 +16,7 @@ type Props = { hideText?: boolean; activeVariant?: "filled" | "bordered" | "filled-bordered"; activeBorderPosition?: "top" | "right" | "bottom" | "left"; + mini?: boolean; }; const props = withDefaults(defineProps(), { @@ -51,6 +52,7 @@ const isBorderedVariant = computed(() => { 'v-list--small': small, 'v-list--large': large, 'v-list--hide-text': hideText, + 'v-list--mini': mini, [`v-list--active-${activeVariant}-${activeBorderPosition}`]: isBorderedVariant, }, ]" diff --git a/packages/themes/src/morpheme/_list.scss b/packages/themes/src/morpheme/_list.scss index aaa74d324..26c02ed8a 100644 --- a/packages/themes/src/morpheme/_list.scss +++ b/packages/themes/src/morpheme/_list.scss @@ -76,6 +76,20 @@ flex-direction: column; overflow: hidden; + &--mini { + max-width: var(--nav-drawer-mini-width, 64px); + + .v-list-item { + justify-content: center; + min-height: 44px; + + &-append, + &-content { + display: none; + } + } + } + &-item { padding: var(--v-list-item-padding-y) var(--v-list-item-padding-x); gap: var(--v-list-item-gap);