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
UUID Generator
Generate secure v4 UUIDs.
QR Code Generator
Create customizable QR codes and export as SVG or PNG.
Lorem Ipsum
Generate placeholder paragraphs, sentences, or word lists.
Random Hex Generator
Generate cryptographically random hexadecimal strings.
Random Number String
Generate a random string of digits of any length.
Random String Generator
Generate random strings from a custom character set.
Random Color Generator
Generate random colors as HEX, RGB, and HSL.
MAC Address Generator
Generate random MAC addresses in several formats.