Skip to content

角标 Badge

一个用于显示计数、状态或提醒的小角标,附加到其他元素上(如按钮或图标)。

基础用法

将 Badge 附加到其他元素上以显示小角标。

8
<template>
	<px-space>
		<px-badge value="8">
			<px-button>Inbox</px-button>
			<template #icon>
				<IconEnvelope></IconEnvelope>
			</template>
		</px-badge>
	</px-space>
</template>

<script setup lang="ts">
import { IconEnvelope } from '@pixelium/web-vue/icon-hn/es'
</script>

最大值

max 设置角标的最大值,超过时以 ${max}+ 展示。

5
99+
```vue
<template>
	<px-space>
		<px-badge value="5">
			<px-avatar></px-avatar>
		</px-badge>
		<px-badge :value="120" :max="99">
			<px-avatar></px-avatar>
		</px-badge>
	</px-space>
</template>

```

点模式

通过设置 dottrue 只显示小圆点。

<template>
	<px-space>
		<px-badge dot>
			<px-button>Messages</px-button>
		</px-badge>
		<px-badge dot>
			<IconBell :size="24"></IconBell>
		</px-badge>
	</px-space>
</template>
<script setup lang="ts">
import { IconBell } from '@pixelium/web-vue/icon-hn/es'
</script>

主题

Badge 支持主题:'primary''sakura''success''warning''danger''notice'

1
1
4
5
1
4
<template>
	<px-space>
		<px-badge value="1" theme="primary">
			<px-button>Primary</px-button>
		</px-badge>
		<px-badge value="1" theme="notice">
			<px-button theme="notice">Notice</px-button>
		</px-badge>
		<px-badge value="4" theme="success">
			<px-button theme="success">Success</px-button>
		</px-badge>
		<px-badge value="5" theme="warning">
			<px-button theme="warning">Warning</px-button>
		</px-badge>
		<px-badge value="1" theme="danger">
			<px-button theme="danger">Danger</px-button>
		</px-badge>
		<px-badge value="4" theme="sakura">
			<px-button theme="sakura">Sakura</px-button>
		</px-badge>
		<px-badge theme="sakura" dot>
			<px-button theme="sakura">Dot</px-button>
		</px-badge>
	</px-space>
</template>

角标偏移

通过 offset 调整角标位置。支持数字、数组 [x: number, y: number] 或对象 { x: number, y: number }

?
!
<template>
	<px-space>
		<px-badge value="?" :offset="[-36, 0]" theme="warning">
			<px-button theme="warning" shape="circle">?</px-button>
		</px-badge>
		<px-badge value="!" theme="success">
			<px-button theme="success" shape="square">!</px-button>
		</px-badge>
	</px-space>
</template>

自定义颜色

通过 color 设置角标背景色;通过 borderColor 设置角标边框颜色。

99
<template>
	<px-badge value="99" color="#6b7280" borderColor="#441">
		<px-button>Custom</px-button>
	</px-badge>
</template>

显示和隐藏

通过 visible 属性控制角标显示与否。

5
<template>
	<px-space>
		<px-badge :visible="show" value="5">
			<px-button theme="info">Toggle</px-button>
		</px-badge>
		<px-button @click="show = !show">Toggle Badge</px-button>
	</px-space>
</template>

<script setup>
import { ref } from 'vue'
const show = ref(true)
</script>

内容插槽

dotfalse 时,可使用 content 插槽自定义角标内容。

HOT
* HOT
<template>
	<px-space>
		<px-badge :value="value">
			<px-button theme="info">Default</px-button>
		</px-badge>

		<px-badge :value="value">
			<template #content>
				<span>* {{ value }}</span>
			</template>
			<px-button theme="info">Custom</px-button>
		</px-badge>
	</px-space>
</template>

<script setup>
import { ref } from 'vue'
const value = ref('HOT')
</script>

API

BadgeProps

属性类型可选默认值描述版本
valuenumber | string''角标显示的数值或字符串。0.1.0
maxnumber数值上限,超出显示为 ${max}+0.1.0
dotbooleanfalse是否以小圆点显示。0.1.0
theme'primary' | 'sakura' | 'success' | 'warning' | 'danger' | 'notice''danger'角标的主题。0.1.0
visiblebooleantrue是否可见。0.1.0
offsetnumber | [number, number] | { x?: number; y?: number }0角标标记的偏移。0.1.0
colorstring自定义背景色,支持类似 CSS 的 'rgb(r, g, b)''rgba(r, g, b, a)' 字符串和 3、4、6、8 位长度的十六位数字表示。0.1.0
borderColorstring自定义边框颜色。0.1.0
contentPropsRestAttrs透传给角标内容容器 DOM 的额外属性。0.1.0
pollSizeChangebooleanfalse开启轮询组件尺寸变化,可能会影响性能,常用于被容器元素影响尺寸,进而 canvas 绘制异常的情况。0.1.0

BadgeSlots

插槽参数描述版本
default包裹的附着元素插槽。0.1.0
contentvalue: string | string角标内容插槽(在 dotfalse 时生效)。0.1.0