Skip to content

Toggle

基于 reka-ui 的 Toggle 原语构建的新粗野主义风格切换按钮,支持按下状态。

预览

安装

pnpm dlx brutx@latest add toggle

用法

vue
<script setup>
import { ref } from 'vue'
import Toggle from '@/components/ui/Toggle.vue'
import { Bold, Italic, Underline } from 'lucide-vue-next'

const bold = ref(false)
const italic = ref(false)
const underline = ref(false)
</script>

<template>
    <div class="flex items-center gap-2">
        <Toggle v-model:pressed="bold" variant="default" size="default">
            <Bold class="h-4 w-4" />
        </Toggle>
        <Toggle v-model:pressed="italic" variant="default" size="default">
            <Italic class="h-4 w-4" />
        </Toggle>
        <Toggle v-model:pressed="underline" variant="default" size="default">
            <Underline class="h-4 w-4" />
        </Toggle>
    </div>
</template>

变体

变体说明
default带背景和小阴影,按下时为主色背景
outline透明带边框,按下时为辅助色背景

尺寸

尺寸高度最小宽度字体大小
smh-8min-w-8text-xs
defaulth-10min-w-10text-sm
lgh-12min-w-12text-sm

属性

属性类型默认值
variant'default' | 'outline''default'
size'sm' | 'default' | 'lg''default'
pressedboolean
defaultValueboolean
disabledboolean
classstring

事件

事件载荷
update:pressedboolean

样式

  • 未按下:带背景和小阴影,悬停时上浮并增大阴影
  • 按下:主色/辅助色背景,无阴影,向下偏移(按下偏移量)
  • 禁用:降低不透明度,显示禁止光标