import{o as a,a as n,y as t}from"./vue-libs.b44bc779.js";const l={class:"van-doc-markdown-body"},p=t(`

Badge

Intro

Display a small badge or a red dot to the top-right of its child.

Install

Register component globally via app.use, refer to Component Registration for more registration ways.

import { createApp } from 'vue';
import { Badge } from 'vant';

const app = createApp();
app.use(Badge);

Usage

Basic Usage

<van-badge :content="5">
  <div class="child" />
</van-badge>
<van-badge :content="10">
  <div class="child" />
</van-badge>
<van-badge content="Hot">
  <div class="child" />
</van-badge>
<van-badge dot>
  <div class="child" />
</van-badge>

<style>
  .child {
    width: 40px;
    height: 40px;
    background: #f2f3f5;
    border-radius: 4px;
  }
</style>

Max

<van-badge :content="20" max="9">
  <div class="child" />
</van-badge>
<van-badge :content="50" max="20">
  <div class="child" />
</van-badge>
<van-badge :content="200" max="99">
  <div class="child" />
</van-badge>

Custom Color

<van-badge :content="5" color="#1989fa">
  <div class="child" />
</van-badge>
<van-badge :content="10" color="#1989fa">
  <div class="child" />
</van-badge>
<van-badge dot color="#1989fa">
  <div class="child" />
</van-badge>

Custom Content

Use content slot to custom the content of badge.

<van-badge>
  <div class="child" />
  <template #content>
    <van-icon name="success" class="badge-icon" />
  </template>
</van-badge>
<van-badge>
  <div class="child" />
  <template #content>
    <van-icon name="cross" class="badge-icon" />
  </template>
</van-badge>
<van-badge>
  <div class="child" />
  <template #content>
    <van-icon name="down" class="badge-icon" />
  </template>
</van-badge>
.badge-icon {
  display: block;
  font-size: 10px;
  line-height: 16px;
}

Custom Position

Use position prop to set the position of badge.

<van-badge :content="10" position="top-left">
  <div class="child" />
</van-badge>
<van-badge :content="10" position="bottom-left">
  <div class="child" />
</van-badge>
<van-badge :content="10" position="bottom-right">
  <div class="child" />
</van-badge>

Standalone

<van-badge :content="20" />

<van-badge :content="200" max="99" />

API

Props

AttributeDescriptionTypeDefault
contentBadge contentnumber | string-
colorBackground colorstring#ee0a24
dotWhether to show dotbooleanfalse
maxMax value, show {max}+ when exceed, only works when content is numbernumber | string-
offset v3.0.5Offset of badge dot[number | string, number | string]-
show-zero v3.0.10Whether to show badge when content is zerobooleantrue
position v3.2.7Badge position, can be set to top-left bottom-left bottom-rightstringtop-right

Slots

NameDescription
defaultDefault slot
contentCustom badge content

Types

The component exports the following type definitions:

import type { BadgeProps, BadgePosition } from 'vant';

Theming

CSS Variables

The component provides the following CSS variables, which can be used to customize styles. Please refer to ConfigProvider component.

NameDefault ValueDescription
--van-badge-size16px-
--van-badge-colorvar(--van-white)-
--van-badge-padding0 3px-
--van-badge-font-sizevar(--van-font-size-sm)-
--van-badge-font-weightvar(--van-font-weight-bold)-
--van-badge-border-widthvar(--van-border-width-base)-
--van-badge-background-colorvar(--van-danger-color)-
--van-badge-dot-colorvar(--van-danger-color)-
--van-badge-dot-size8px-
--van-badge-font-family-apple-system-font, Helvetica Neue, Arial, sans-serif-
`,16),e=[p],g={__name:"README",setup(c,{expose:s}){return s({frontmatter:{}}),(o,h)=>(a(),n("div",l,e))}};export{g as default};