Skip to content

Textarea

新粗野主义风格多行文本输入框,支持变体、尺寸和 v-model。

预览

安装

pnpm dlx brutx@latest add textarea

用法

vue
<script setup>
import { ref } from 'vue'
import Textarea from '@/components/ui/Textarea.vue'

const message = ref('')
</script>

<template>
    <Textarea v-model="message" placeholder="Type your message here..." />
</template>

变体

变体说明
default标准边框
error危险色边框,主色聚焦阴影
success成功色边框,辅助色聚焦阴影

尺寸

尺寸内边距字体大小
smpx-3 py-2text-sm
defaultpx-4 py-3text-base
lgpx-5 py-4text-lg

带标签

vue
<script setup>
import { ref } from 'vue'
import Textarea from '@/components/ui/Textarea.vue'
import Label from '@/components/ui/Label.vue'

const bio = ref('')
</script>

<template>
    <div class="space-y-2">
        <Label for="bio">Bio</Label>
        <Textarea id="bio" v-model="bio" placeholder="Tell us about yourself..." />
    </div>
</template>

禁用状态

vue
<script setup>
import Textarea from '@/components/ui/Textarea.vue'
</script>

<template>
    <Textarea disabled placeholder="Disabled textarea" />
</template>

属性

属性类型默认值
modelValuestring
variant'default' | 'error' | 'success''default'
textareaSize'sm' | 'default' | 'lg''default'
disabledbooleanfalse
placeholderstring
classstring

事件

事件载荷
update:modelValuestring

样式

Textarea 默认设置了 resize-none。如需允许调整大小,可通过自定义 class 覆盖:

vue
<script setup>
import Textarea from '@/components/ui/Textarea.vue'
</script>

<template>
    <Textarea class="resize-y" placeholder="Resizable textarea" />
</template>