ColorModeButtonPRO

一个用于在浅色和深色模式之间切换的按钮。

用法

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

<template>
  <UColorModeButton />
</template>
按钮默认为 color="neutral"variant="ghost"

示例

使用自定义图标

使用 app.config.ts 通过 ui.icons 属性自定义图标

app.config.ts
export default defineAppConfig({
  ui: {
    icons: {
      light: 'i-ph-sun',
      dark: 'i-ph-moon'
    }
  }
})

使用 vite.config.ts 通过 ui.icons 属性自定义图标

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({
      ui: {
        icons: {
          light: 'i-ph-sun',
          dark: 'i-ph-moon'
        }
      }
    })
  ]
})

使用 fallback 插槽

由于按钮被包裹在ClientOnly组件中,你可以传递一个 fallback 插槽来在组件加载时显示占位符。

<template>
  <UColorModeButton>
    <template #fallback>
      <UButton loading variant="ghost" color="neutral" />
    </template>
  </UColorModeButton>
</template>

API

Props

Prop默认值类型
as

'button'

any

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

color

'neutral'

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

variant

'ghost'

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

disabled

boolean

size

'md'

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

ui

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

Slots

Slot类型
fallback

{}