DashboardSidebarCollapsePRO

一个用于在桌面端折叠侧边栏的按钮。

用法

DashboardSidebarCollapse 组件用于折叠/展开 DashboardSidebar 组件,当其 collapsible prop 被设置时

<template>
  <UDashboardSidebarCollapse />
</template>

它扩展了 Button 组件,因此你可以传递任何属性,例如 colorvariantsize 等。

<template>
  <UDashboardSidebarCollapse variant="subtle" />
</template>
按钮默认使用 color="neutral"variant="ghost"

示例

header slot 中

你可以将此组件放在 DashboardSidebar 组件的 header slot 中,并使用 collapsed prop 例如隐藏 header 的左侧部分

layouts/dashboard.vue
<template>
  <UDashboardGroup>
    <UDashboardSidebar collapsible>
      <template #header="{ collapsed }">
        <Logo v-if="!collapsed" />

        <UDashboardSidebarCollapse variant="subtle" />
      </template>
    </UDashboardSidebar>

    <slot />
  </UDashboardGroup>
</template>

leading slot 中

你可以将此组件放在 DashboardNavbar 组件的 leading slot 中,例如在标题之前显示它

pages/index.vue
<script setup lang="ts">
definePageMeta({
  layout: 'dashboard'
})
</script>

<template>
  <UDashboardPanel>
    <template #header>
      <UDashboardNavbar title="Home">
        <template #leading>
          <UDashboardSidebarCollapse variant="subtle" />
        </template>
      </UDashboardNavbar>
    </template>
  </UDashboardPanel>
</template>

API

属性

属性默认值类型
as

'button'

any

当不是链接时,此组件应渲染为的元素或组件。

color

'neutral'

"error" | "primary" | "secondary" | "success" | "info" | "warning" | "neutral"

variant

'ghost'

"link" | "solid" | "outline" | "soft" | "subtle" | "ghost"

side

'left'

"right" | "left"

disabled

boolean

size

'md'

"md" | "xs" | "sm" | "lg" | "xl"

ui

{ base?: ClassNameValue; label?: ClassNameValue; leadingIcon?: ClassNameValue; leadingAvatar?: ClassNameValue; leadingAvatarSize?: ClassNameValue; trailingIcon?: ClassNameValue; }

主题

app.config.ts
export default defineAppConfig({
  uiPro: {
    dashboardSidebarCollapse: {
      base: 'hidden lg:flex',
      variants: {
        side: {
          left: '',
          right: ''
        }
      }
    }
  }
})
vite.config.ts
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import ui from '@nuxt/ui/vite'

export default defineConfig({
  plugins: [
    vue(),
    ui({
      uiPro: {
        dashboardSidebarCollapse: {
          base: 'hidden lg:flex',
          variants: {
            side: {
              left: '',
              right: ''
            }
          }
        }
      }
    })
  ]
})
vite.config.ts
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import uiPro from '@nuxt/ui-pro/vite'

export default defineConfig({
  plugins: [
    vue(),
    uiPro({
      uiPro: {
        dashboardSidebarCollapse: {
          base: 'hidden lg:flex',
          variants: {
            side: {
              left: '',
              right: ''
            }
          }
        }
      }
    })
  ]
})