https://framer.com/m/Badge-nZ5e7j.js#Badge

Io / UI Basics / Badge

Badge

Badge renders a row of tags from one comma-separated string. Use it for categories, metadata and status labels — one instance covers the whole group rather than one instance per tag.

Content8 type steps5 weights3 alignments

Examples

Live specimens for every control the component exposes.

Default

Labels are a single comma-separated string. Each entry becomes one tag, sharing the instance’s appearance.

DesignSystemFramer

Labels

One instance renders the whole group, so a metadata row is one layer on the canvas, not five.

Interactive

one label

ContentFormLayout

three labels

8 type steps5 weights3 alignmentshoverlinks

five labels

Type scale

fontSize picks a step from the theme type scale, so badges stay in step with surrounding text.

Tiny

Tiny

Detail

Detail

Callout

Callout

Body

Body

Weight

weight maps to the theme font-weight tokens.

regular

regular

medium

medium

semibold

semibold

bold

bold

Shape and padding

radius, paddingX and paddingY are plain numbers, so a badge can read as a chip, a pill or a square tag.

Square

radius 4

Rounded

radius 8

Pill

radius 100

Colour

background, text and border take theme tokens. The accent tint is the default for page metadata rows.

Accent

accent tint

Neutral

neutral

Outlined

outlined

Alignment

align positions the group inside a container wider than the tags themselves.

OneTwo

align left

OneTwo

align center

OneTwo

align right

Props

The controls exposed on the instance panel.

PropTypeBehaviour
itemsJSONstringJSON array for dynamic or linked tags, e.g. [{“label”:“Docs”,“href”:“…”}].
labelsstringComma-separated tag list. The simplest way to fill a badge group.
tagsarrayStatic tag list set from the property panel, with an optional href per tag.
alignenumleft · center · right. Positions the group in its container.
gapnumberSpace between tags in pixels.
paddingXnumberHorizontal padding inside each tag.
paddingYnumberVertical padding inside each tag.
radiusnumberCorner radius per tag. 100 gives a pill.
backgroundcolorTag fill. Use Theme/theme-a100 for accent metadata rows.
hovercolorFill on hover.
textcolorTag label colour.
hover1colorLabel colour on hover.
borderbooleanDraws a 1px outline instead of relying on fill alone.
widthnumberBorder width when border is on.
colorcolorBorder colour.
hover2colorBorder colour on hover.
innerStrokecolorOptional inner stroke for extra definition.
fontSizeenumTheme type step, from H1 down to Tiny.
weightenumlight · regular · medium · semibold · bold.
transitiontransitionEasing used when a tag moves to its hover colours.
PropTypeBehaviour
itemsJSONstringJSON array for dynamic or linked tags, e.g. [{“label”:“Docs”,“href”:“…”}].
labelsstringComma-separated tag list. The simplest way to fill a badge group.
tagsarrayStatic tag list set from the property panel, with an optional href per tag.
alignenumleft · center · right. Positions the group in its container.
gapnumberSpace between tags in pixels.
paddingXnumberHorizontal padding inside each tag.
paddingYnumberVertical padding inside each tag.
radiusnumberCorner radius per tag. 100 gives a pill.
backgroundcolorTag fill. Use Theme/theme-a100 for accent metadata rows.
hovercolorFill on hover.
textcolorTag label colour.
hover1colorLabel colour on hover.
borderbooleanDraws a 1px outline instead of relying on fill alone.
widthnumberBorder width when border is on.
colorcolorBorder colour.
hover2colorBorder colour on hover.
innerStrokecolorOptional inner stroke for extra definition.
fontSizeenumTheme type step, from H1 down to Tiny.
weightenumlight · regular · medium · semibold · bold.
transitiontransitionEasing used when a tag moves to its hover colours.

Usage

Guidance carried over from the component definition.

Reach for Badge

A row of categories, tags or metadata needs one consistent treatment.

Some tags should link out while the rest stay static.

The group must respond to hover with its own colours.

Tag appearance should track the theme type scale.

Reach for something else

The tag needs interaction beyond hover and links.

End users create or edit tags inline — use TagPicker.

A single status pill is really a button — use Button.

Io — UI Basics

Every specimen above is a live component instance. Colour, type and radius resolve from the project theme tokens.

io

An experiment in what a design system becomes when AI can consume it.

© 2026 io

Contact me

Create a free website with Framer, the website builder loved by startups, designers and agencies.