Logos & Icons

Add a logo to any badge β€” SimpleIcons, React Icons, Lucide, emoji (Twemoji), or your own SVG.

Add an icon to any badge with the ?logo= query parameter. shieldcn resolves logos from several sources, picked by a small prefix convention.

Logo sources

SourceSyntaxExample
SimpleIcons (2,400+ brands)bare slug?logo=react
React Icons (40,000+)ri: prefix?logo=ri:FaReact
Lucidelu: prefix?logo=lu:Check
Twemoji (emoji)twemoji: prefix or bare emoji?logo=twemoji:πŸš€
Custom SVGdata: URI?logo=data:image/svg+xml;base64,…
Nonefalse / none?logo=false

Single-color icons (SimpleIcons, React Icons, Lucide) are recolored to match the badge variant and respect ?logoColor=. Full-color sources (Twemoji, custom multi-color SVGs) keep their original colors.

Emoji (Twemoji)

Any emoji can be a badge logo, rendered as a crisp full-color Twemoji glyph. Three forms work:

![rocket](https://shieldcn.dev/badge/ship-it.svg?logo=twemoji:πŸš€)
![rocket by codepoint](https://shieldcn.dev/badge/ship-it.svg?logo=twemoji:1f680)
![rocket bare](https://shieldcn.dev/badge/ship-it.svg?logo=πŸš€)
  • twemoji:πŸš€ β€” explicit prefix with the emoji character.
  • twemoji:1f680 β€” explicit prefix with the hex codepoint (handy when pasting emoji is awkward, e.g. in YAML).
  • πŸš€ β€” a bare emoji is auto-detected as Twemoji.
GET/badge/:content.svg

Path Parameters

required

Static badge text, e.g. label-value or label-value-color

An emoji, twemoji:<emoji>, or twemoji:<codepoint>

![badge](https://shieldcn.dev/badge/ship-it.png?logo=twemoji%3A%F0%9F%9A%80)
badge preview

Examples

rocket
πŸš€ on a custom badge
heart
Bare ❀️ auto-detected
fire
πŸ”₯ by codepoint
coffee
β˜• powered
developer
ZWJ sequence πŸ‘¨β€πŸ’»
flag
Flag emoji πŸ‡ΊπŸ‡Έ

Emoji logos compose with every variant, size, theme, mode, and split. Because emoji are inherently multi-color, ?logoColor= has no effect on them.

πŸŽ‰ with an outline variant and the green theme.

![party badge](https://shieldcn.dev/badge/release-shipped.svg?logo=πŸŽ‰&variant=outline&theme=green)

Brand icons (SimpleIcons)

The most common case β€” use a brand's slug directly. Browse the full set in the Gallery.

![react](https://shieldcn.dev/badge/built%20with-react.svg?logo=react)
![typescript](https://shieldcn.dev/badge/typed-strict.svg?logo=typescript&variant=branded)
react
?logo=react
typescript
?logo=typescript
bun
?logo=bun

React Icons & Lucide

Reach 40,000+ icons via React Icons with the ri: prefix (use the exact component name), or Lucide with lu:.

![react icon](https://shieldcn.dev/badge/icon-react.svg?logo=ri:FaReact)
![lucide](https://shieldcn.dev/badge/check-passing.svg?logo=lu:Check)
react icon
?logo=ri:FaReact
lucide check
?logo=lu:Check

Custom SVG

Pass your own icon as an inline data: URI (base64 or UTF-8 encoded SVG). The builder's logo uploader generates this for you.

![custom](https://shieldcn.dev/badge/custom-icon.svg?logo=data:image/svg+xml;base64,PHN2Zy4uLg==)

Logo color

For single-color icons, override the fill with ?logoColor= (hex without #):

![colored](https://shieldcn.dev/badge/built%20with-react.svg?logo=react&logoColor=ff0000)

logoColor does not apply to Twemoji or multi-color custom SVGs, which keep their original colors.

In the builder

Both the Badge Builder and Profile Generator include a logo picker and an SVG uploader under the logo control.