Vue
Badge
简介
Badge Vue 组件用于突出显示少量信息,如标签、状态或计数。这是 Vue 版本的实现,提供了响应式的交互体验。
组件特性:
- 支持多种预设颜色
- 支持多种尺寸
- 支持描边样式
- 响应式设计,适配不同屏幕尺寸
- Vue 3 Composition API 支持
案例
默认PrimarySecondaryAccent
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<div style="display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem;">
<Badge>默认</Badge>
<Badge variant="primary">Primary</Badge>
<Badge variant="secondary">Secondary</Badge>
<Badge variant="accent">Accent</Badge>
</div>
</template>
Props
class
自定义 CSS 类名,用于覆盖默认样式。
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge>默认样式</Badge>
</template>
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge class="custom-badge">自定义类名</Badge>
</template>
<style>
.custom-badge {
background: linear-gradient(45deg, #ff6b6b, #4ecdc4);
color: white;
font-weight: bold;
}
</style>
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge class="rounded-full px-3 py-1">圆角样式</Badge>
</template>
<style>
.rounded-full {
border-radius: 9999px;
}
.px-3 {
padding-left: 0.75rem;
padding-right: 0.75rem;
}
.py-1 {
padding-top: 0.25rem;
padding-bottom: 0.25rem;
}
</style>
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge class="shadow-lg">阴影效果</Badge>
</template>
<style>
.shadow-lg {
box-shadow:
0 10px 15px -3px rgba(0, 0, 0, 0.1),
0 4px 6px -2px rgba(0, 0, 0, 0.05);
}
</style>
outline
徽章是否为描边样式,设置为 true 时显示为描边风格。
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge :outline="true" variant="primary">primary</Badge>
</template>
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge :outline="true" variant="secondary">secondary</Badge>
</template>
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge :outline="true" variant="accent">accent</Badge>
</template>
size
徽章的尺寸,支持 xs、sm、md、lg 四种尺寸。
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge size="lg">987,654</Badge>
</template>
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge size="md">987,654</Badge>
</template>
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge size="sm">987,654</Badge>
</template>
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge size="xs">987,654</Badge>
</template>
variant
徽章的颜色变体,支持多种预设颜色主题。
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge>default</Badge>
</template>
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge variant="primary">primary</Badge>
</template>
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge variant="secondary">secondary</Badge>
</template>
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge variant="accent">accent</Badge>
</template>
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge variant="ghost">ghost</Badge>
</template>
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge variant="info">info</Badge>
</template>
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge variant="success">success</Badge>
</template>
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge variant="warning">warning</Badge>
</template>
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<Badge variant="error">error</Badge>
</template>
Slots
default
徽章内容,支持任意文本内容。
默认PrimarySecondaryAccent
<script setup lang="ts">
import { Badge } from '@coffic/cosy-ui/vue';
</script>
<template>
<div style="display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem;">
<Badge>默认</Badge>
<Badge variant="primary">Primary</Badge>
<Badge variant="secondary">Secondary</Badge>
<Badge variant="accent">Accent</Badge>
</div>
</template>