Skip to content
ZeroServer.tools

README Badge Generator

Generate shields.io-compatible badges for GitHub READMEs — pick style, color, and copy Markdown.

Presets

How shields.io badges work

Shields.io generates SVG badge images from a URL pattern:https://img.shields.io/badge/<left>-<right>-<color>. Hyphens in the text are escaped as double-hyphens (--), underscores as double-underscores (__), and spaces as underscores. Colors can be named (brightgreen, blue, red, yellow, orange, lightgrey) or hex codes without the #.

For Markdown help, try the Markdown Converter.

Built and maintained by Meet Shah · Last updated

What this tool is used for

  • Adding build, version or licence badges to a project README.
  • Producing a consistent badge style across a set of repositories.
  • Getting the Markdown for a badge without hand-writing the URL.
  • Creating a custom badge for something no service provides.
  • Replacing a broken badge whose URL format changed.

Frequently Asked Questions

Why are hyphens doubled in the URL?
Because shields.io uses the hyphen as its field separator, so a literal one has to be escaped as `--`. By the same rule an underscore becomes `__` and a space becomes `_`. "Build-Passing" must be written `Build--Passing` or the badge splits in the wrong place.
What do the styles change?
`flat` is the default rounded look, `flat-square` drops the rounding, `plastic` restores the old gradient, `for-the-badge` renders large uppercase text with wide padding, and `social` mimics GitHub's own button style. They are cosmetic only.
Where do the logos come from?
The `logo` parameter accepts any Simple Icons slug — `github`, `npm`, `docker`, `typescript` — and shields.io fetches the SVG for you. Slugs are lowercase with no spaces; a name that does not exist silently renders a badge with no icon.
Are these static or live badges?
Static: the text is whatever you type, so a `coverage 98%` badge stays at 98% until you edit it. Live badges use a different endpoint that queries your CI, npm or GitHub — useful, but they add a network dependency to every README view.
Why does the badge not render on GitHub?
GitHub proxies all README images through Camo, which caches aggressively — an updated badge can show the old value for a while. Camo also requires HTTPS, and it will not fetch an image from a host that fails TLS validation.
Does a badge slow the README down?
Slightly — each is an external image request, and a service that is slow or down leaves a broken image in your README. That is the practical argument for keeping the row short rather than collecting them.

Common errors and gotchas

  • Adding so many badges that the README opens with a wall of colour rather than a description.
  • Using a badge that reports nothing real, such as a hard-coded coverage figure.
  • Depending on a third-party badge service that may rate-limit or disappear.
  • Forgetting alt text, which leaves screen-reader users with a row of unlabelled images.
  • Leaving a badge pointing at a renamed repository, so it silently shows an error.

Related Generators tools

Private & free — this tool runs entirely in your browser.

CloudwaysManaged cloud hosting on AWS, GCP & DO — from $11/mo.affiliate