Badge component
The Badge
component designed with Vue 3 and Tailwind CSS. It includes customizable color
options and a size
variant.
Basic Usage
Import and use Badge
in your Vue components as follows:
vue
<template>
<Badge label="Some info" />
</template>
<script setup>
import { Badge } from '@robuust-digital/vue-components/core';
</script>
Some info
Props
Below are the props supported by Badge
, which allow you to customize its appearance and behavior:
Prop | Type | Default | Description |
---|---|---|---|
as | String | span | Defines the element type or component to render. |
label | String | '' | Sets the text label for the badge. |
size | String | base | Specifies the badge size. Options: base , sm . |
color | String | default | Sets the badge's color variant. Learn more about color variants in the next section. |
Slots
Below is example to edit the label slot of Badge
:
Badge with custom slot
10 Badge with custom slot
Show code
vue
<Badge color="red">
<span class="text-red-800 bg-red-300 -my-1 -ml-2 size-6 inline-flex items-center justify-center text-sm rounded-full">10</span>
Badge with custom slot
</Badge>
Color Variants
The color
prop supports both predefined and custom values. Default colors include:
default
gray
red
yellow
green
blue
violet
purple
pink
Examples
Basic Badge
Default Badge
Show code
vue
<Badge label="Default Badge" />
Small Badge
Small Badge
Show code
vue
<Badge color="blue" label="Small Badge" size="sm" />
CSS Customization ⚡️
To customize the badge
styles global
css
:root {
/* Base Badge variables */
--rvc-badge-height: calc(var(--spacing) * 8);
--rvc-badge-padding-x: calc(var(--spacing) * 3);
--rvc-badge-padding-y: calc(var(--spacing) * 1.5);
--rvc-badge-font-weight: var(--font-weight-medium);
--rvc-badge-border-radius: calc(infinity * 1px);
--rvc-badge-font-size: var(--text-base);
--rvc-badge-gap: calc(var(--spacing) * 1);
/* Default color variables */
--rvc-badge-bg-color: #fcffc4;
--rvc-badge-color: #576d07;
/* Gray variant */
--rvc-badge-bg-color-gray: var(--color-slate-100);
--rvc-badge-color-gray: var(--color-slate-700);
/* Red variant */
--rvc-badge-bg-color-red: var(--color-red-100);
--rvc-badge-color-red: var(--color-red-700);
/* Yellow variant */
--rvc-badge-bg-color-yellow: var(--color-yellow-100);
--rvc-badge-color-yellow: var(--color-yellow-700);
/* Green variant */
--rvc-badge-bg-color-green: var(--color-green-100);
--rvc-badge-color-green: var(--color-green-700);
/* Blue variant */
--rvc-badge-bg-color-blue: var(--color-blue-100);
--rvc-badge-color-blue: var(--color-blue-700);
/* Violet variant */
--rvc-badge-bg-color-violet: var(--color-violet-100);
--rvc-badge-color-violet: var(--color-violet-700);
/* Purple variant */
--rvc-badge-bg-color-purple: var(--color-purple-100);
--rvc-badge-color-purple: var(--color-purple-700);
/* Pink variant */
--rvc-badge-bg-color-pink: var(--color-pink-100);
--rvc-badge-color-pink: var(--color-pink-700);
/* Small variant */
--rvc-badge-height-sm: calc(var(--spacing) * 6);
--rvc-badge-padding-x-sm: calc(var(--spacing) * 2);
--rvc-badge-padding-y-sm: calc(var(--spacing) * 1);
--rvc-badge-font-size-sm: var(--text-sm);
}
/* Or customize the class with CSS props (not recommended) */
.rvc-badge {
@apply cursor-pointer;
}