133 animated glitch badges — VRIL LABS phosphor-seafoam palette, chromatic-aberration, CRT scanlines. Python SDK + CLI.
Project description
133 animated glitch badges across 4 collections — VRIL LABS phosphor-seafoam palette, chromatic-aberration glitch animation, CRT scanlines, corner bracket decorators.
All derived programmatically from a singlebadge-glitch.svgDNA.
Badge Architecture
Every badge inherits the exact same DNA:
| Property | Value |
|---|---|
| Background | #0b0c0b void |
| Border | #1a2a24 |
| Glitch | Chromatic aberration — red channel shifts left, cyan shifts right, steps(1) animation |
| Scanlines | 4 px repeating phosphor grid, synchronized flicker |
| Corners | CSS border-width bracket decorators |
| Accent seam | Top-edge linear-gradient pulse |
The Collections
| Collection | Badges | Sizes | Notes |
|---|---|---|---|
Social (/social) |
12 platforms + extras | 200 px + 280 px | Twitter, Instagram, YouTube, LinkedIn, GitHub, TikTok, Mastodon, Bluesky… |
Comms (/comms) |
14 platforms + extras | 220 px + 310 px | Discord, Telegram, Matrix, Slack, Signal, WhatsApp, Keybase… |
Repo (/repo) |
33 types | 220 px + 290 px | Status, License, Build, Security, Contrib, Version, Lang, Platform |
Status (/status) |
24 standalone | 220 px | PQ-ready, passing, failing, coverage, downloads… |
Quick-Start: Drop a Badge into any README
<!-- Standard size -->
<img src="https://raw.githubusercontent.com/dubzrn/glitch-badges/main/.github/profile/assets/badges/repo/security-pq.svg" width="220" height="34" alt="Post-Quantum"/>
<!-- Wide variant -->
<img src="https://raw.githubusercontent.com/dubzrn/glitch-badges/main/.github/profile/assets/badges/repo/security-pq-wide.svg" width="290" height="34" alt="Post-Quantum"/>
<!-- Wrap in a link -->
[](https://github.com/dubzrn/glitch-badges)
Badge Gallery
Live preview — every badge rendered from
raw.githubusercontent.com. Click any badge to copy its URL from the catalog below.
Social Media
Communications
Repository Status
Standalone Status
SDK Integrations
TypeScript / React / Node.js
npm install glitch-badges
Generate a badge SVG (Node.js / server-side)
import { makeBadge, badgeUrl } from "glitch-badges";
// Generate SVG string
const svg = makeBadge({
text: "POST QUANTUM",
accent: "#a78bfa",
tag: "Security",
width: 260,
});
fs.writeFileSync("security-pq.svg", svg);
// Get CDN URL for pre-built badge
const url = badgeUrl("repo", "security-pq", /* wide */ true);
React component
import { GlitchBadge, GlitchBadgeImg } from "glitch-badges/react";
// Inline SVG (no network request)
<GlitchBadge text="POST QUANTUM" accent="#a78bfa" tag="Security" width={260} />
// Pre-built badge from CDN
<GlitchBadgeImg collection="repo" slug="security-pq" alt="Post-Quantum" wide />
CLI
# One-off custom badge
npx glitch-badges custom "POST QUANTUM" --accent "#a78bfa" --tag "Security" --width 260
# Get CDN URL
npx glitch-badges url repo security-pq --wide
# List all slugs
npx glitch-badges list
npx glitch-badges list repo
Python
pip install glitch-badges
from glitch_badges import make_badge, badge_url, get_preset
# Generate SVG
svg = make_badge("POST QUANTUM", accent="#a78bfa", tag="Security", width=260)
open("security-pq.svg", "w").write(svg)
# CDN URL
url = badge_url("repo", "security-pq", wide=True)
# Lookup preset
p = get_preset("twitter") # → Preset(slug='twitter', accent='#1DA1F2', ...)
CLI
glitch-badges custom "POST QUANTUM" --accent "#a78bfa" --tag "Security"
glitch-badges url repo security-pq --wide
glitch-badges list
Or use the self-contained root-level generator (no install required):
# Regenerate all 133 badges
python badge_generator.py all --out .github/profile/assets/badges
# One collection only
python badge_generator.py repo --out ./assets
# One-off custom badge
python badge_generator.py custom "POST QUANTUM" --accent "#a78bfa" --tag "Security" --width 260
Rust
# Cargo.toml
[dependencies]
glitch-badges = "1"
use glitch_badges::{BadgeOptions, make_badge, badge_url};
// Generate SVG
let svg = make_badge(BadgeOptions {
text: "POST QUANTUM".into(),
accent: "#a78bfa".into(),
tag: Some("Security".into()),
width: 260,
..Default::default()
});
std::fs::write("security-pq.svg", svg).unwrap();
// CDN URL
let url = badge_url("repo", "security-pq", true);
CLI binary
glitch-badges custom "POST QUANTUM" --accent "#a78bfa" --tag Security
glitch-badges url repo security-pq --wide
Badge Catalog
Two size variants per badge: standard (no suffix) and wide (
-wide).
All URLs point to this repository's raw SVGs on GitHub.
Base URL: https://raw.githubusercontent.com/dubzrn/glitch-badges/main/.github/profile/assets/badges/
1 · Social Media Badges
Path: .github/profile/assets/badges/social/
| Badge | Standard <img> |
Wide <img> |
|---|---|---|
<img src="...social/twitter.svg" width="200" height="34" alt="Twitter"/> |
<img src="...social/twitter-wide.svg" width="280" height="38" alt="Twitter"/> |
|
| X | <img src="...social/x.svg" width="200" height="34" alt="X"/> |
<img src="...social/x-wide.svg" width="280" height="38" alt="X"/> |
<img src="...social/instagram.svg" width="200" height="34" alt="Instagram"/> |
<img src="...social/instagram-wide.svg" width="280" height="38" alt="Instagram"/> |
|
<img src="...social/linkedin.svg" width="200" height="34" alt="LinkedIn"/> |
<img src="...social/linkedin-wide.svg" width="280" height="38" alt="LinkedIn"/> |
|
| YouTube | <img src="...social/youtube.svg" width="200" height="34" alt="YouTube"/> |
<img src="...social/youtube-wide.svg" width="280" height="38" alt="YouTube"/> |
| TikTok | <img src="...social/tiktok.svg" width="200" height="34" alt="TikTok"/> |
<img src="...social/tiktok-wide.svg" width="280" height="38" alt="TikTok"/> |
| Mastodon | <img src="...social/mastodon.svg" width="200" height="34" alt="Mastodon"/> |
<img src="...social/mastodon-wide.svg" width="280" height="38" alt="Mastodon"/> |
| Bluesky | <img src="...social/bluesky.svg" width="200" height="34" alt="Bluesky"/> |
<img src="...social/bluesky-wide.svg" width="280" height="38" alt="Bluesky"/> |
| Share | <img src="...social/share.svg" width="200" height="34" alt="Share"/> |
<img src="...social/share-wide.svg" width="280" height="38" alt="Share"/> |
| Star | <img src="...social/star.svg" width="200" height="34" alt="Star"/> |
<img src="...social/star-wide.svg" width="280" height="38" alt="Star"/> |
| Sponsor | <img src="...social/sponsor.svg" width="200" height="34" alt="Sponsor"/> |
<img src="...social/sponsor-wide.svg" width="280" height="38" alt="Sponsor"/> |
| Newsletter | <img src="...social/newsletter.svg" width="200" height="34" alt="Newsletter"/> |
<img src="...social/newsletter-wide.svg" width="280" height="38" alt="Newsletter"/> |
Expand full-URL copy-paste snippets
<!-- Twitter -->
<img src="https://raw.githubusercontent.com/dubzrn/glitch-badges/main/.github/profile/assets/badges/social/twitter.svg" width="200" height="34" alt="Twitter"/>
<img src="https://raw.githubusercontent.com/dubzrn/glitch-badges/main/.github/profile/assets/badges/social/twitter-wide.svg" width="280" height="38" alt="Twitter"/>
<!-- Instagram -->
<img src="https://raw.githubusercontent.com/dubzrn/glitch-badges/main/.github/profile/assets/badges/social/instagram.svg" width="200" height="34" alt="Instagram"/>
<!-- LinkedIn -->
<img src="https://raw.githubusercontent.com/dubzrn/glitch-badges/main/.github/profile/assets/badges/social/linkedin.svg" width="200" height="34" alt="LinkedIn"/>
<!-- YouTube -->
<img src="https://raw.githubusercontent.com/dubzrn/glitch-badges/main/.github/profile/assets/badges/social/youtube.svg" width="200" height="34" alt="YouTube"/>
<!-- GitHub (social) -->
<img src="https://raw.githubusercontent.com/dubzrn/glitch-badges/main/.github/profile/assets/badges/social/github.svg" width="200" height="34" alt="GitHub"/>
<!-- Mastodon -->
<img src="https://raw.githubusercontent.com/dubzrn/glitch-badges/main/.github/profile/assets/badges/social/mastodon.svg" width="200" height="34" alt="Mastodon"/>
<!-- Bluesky -->
<img src="https://raw.githubusercontent.com/dubzrn/glitch-badges/main/.github/profile/assets/badges/social/bluesky.svg" width="200" height="34" alt="Bluesky"/>
<!-- Sponsor -->
<img src="https://raw.githubusercontent.com/dubzrn/glitch-badges/main/.github/profile/assets/badges/social/sponsor.svg" width="200" height="34" alt="Sponsor"/>
Wrap in a link:
[](https://twitter.com/yourhandle)
[](https://bsky.app/profile/yourhandle)
2 · Communication Platform Badges
Path: .github/profile/assets/badges/comms/
| Badge | Standard <img> |
Wide <img> |
|---|---|---|
| Discord | <img src="...comms/discord.svg" width="220" height="34" alt="Discord"/> |
<img src="...comms/discord-wide.svg" width="310" height="38" alt="Discord"/> |
| GitHub | <img src="...comms/github.svg" width="220" height="34" alt="GitHub"/> |
<img src="...comms/github-wide.svg" width="310" height="38" alt="GitHub"/> |
| Telegram | <img src="...comms/telegram.svg" width="220" height="34" alt="Telegram"/> |
<img src="...comms/telegram-wide.svg" width="310" height="38" alt="Telegram"/> |
| Slack | <img src="...comms/slack.svg" width="220" height="34" alt="Slack"/> |
<img src="...comms/slack-wide.svg" width="310" height="38" alt="Slack"/> |
| Matrix | <img src="...comms/matrix.svg" width="220" height="34" alt="Matrix"/> |
<img src="...comms/matrix-wide.svg" width="310" height="38" alt="Matrix"/> |
| Signal | <img src="...comms/signal.svg" width="220" height="34" alt="Signal"/> |
<img src="...comms/signal-wide.svg" width="310" height="38" alt="Signal"/> |
<img src="...comms/whatsapp.svg" width="220" height="34" alt="WhatsApp"/> |
<img src="...comms/whatsapp-wide.svg" width="310" height="38" alt="WhatsApp"/> |
|
| Keybase | <img src="...comms/keybase.svg" width="220" height="34" alt="Keybase"/> |
<img src="...comms/keybase-wide.svg" width="310" height="38" alt="Keybase"/> |
| Chat | <img src="...comms/chat.svg" width="220" height="34" alt="Chat"/> |
<img src="...comms/chat-wide.svg" width="310" height="38" alt="Chat"/> |
| Forum | <img src="...comms/forum.svg" width="220" height="34" alt="Forum"/> |
<img src="...comms/forum-wide.svg" width="310" height="38" alt="Forum"/> |
| Docs | <img src="...comms/docs.svg" width="220" height="34" alt="Docs"/> |
<img src="...comms/docs-wide.svg" width="310" height="38" alt="Docs"/> |
| Support | <img src="...comms/support.svg" width="220" height="34" alt="Support"/> |
<img src="...comms/support-wide.svg" width="310" height="38" alt="Support"/> |
<img src="...comms/email.svg" width="220" height="34" alt="Email"/> |
<img src="...comms/email-wide.svg" width="310" height="38" alt="Email"/> |
|
| Secure Channel | <img src="...comms/secure_channel.svg" width="220" height="34" alt="Secure Channel"/> |
<img src="...comms/secure_channel-wide.svg" width="310" height="38" alt="Secure Channel"/> |
3 · Repository Status Badges
Path: .github/profile/assets/badges/repo/
Status
| Badge | Standard <img> |
Wide <img> |
|---|---|---|
| Stable | <img src="...repo/status-stable.svg" width="220" height="34" alt="Stable"/> |
<img src="...repo/status-stable-wide.svg" width="290" height="34" alt="Stable"/> |
| In Progress | <img src="...repo/status-wip.svg" width="220" height="34" alt="In Progress"/> |
<img src="...repo/status-wip-wide.svg" width="290" height="34" alt="In Progress"/> |
| Experimental | <img src="...repo/status-experimental.svg" width="220" height="34" alt="Experimental"/> |
<img src="...repo/status-experimental-wide.svg" width="290" height="34" alt="Experimental"/> |
| Maintained | <img src="...repo/status-maintained.svg" width="220" height="34" alt="Maintained"/> |
<img src="...repo/status-maintained-wide.svg" width="290" height="34" alt="Maintained"/> |
| Deprecated | <img src="...repo/status-deprecated.svg" width="220" height="34" alt="Deprecated"/> |
<img src="...repo/status-deprecated-wide.svg" width="290" height="34" alt="Deprecated"/> |
| Archived | <img src="...repo/status-archived.svg" width="220" height="34" alt="Archived"/> |
<img src="...repo/status-archived-wide.svg" width="290" height="34" alt="Archived"/> |
License
| Badge | Standard | Wide |
|---|---|---|
| MIT | <img src="...repo/license-mit.svg" width="220" height="34" alt="MIT"/> |
<img src="...repo/license-mit-wide.svg" width="290" height="34" alt="MIT"/> |
| Apache 2.0 | <img src="...repo/license-apache2.svg" width="220" height="34" alt="Apache 2.0"/> |
<img src="...repo/license-apache2-wide.svg" width="290" height="34" alt="Apache 2.0"/> |
| GPL 3.0 | <img src="...repo/license-gpl3.svg" width="220" height="34" alt="GPL 3.0"/> |
<img src="...repo/license-gpl3-wide.svg" width="290" height="34" alt="GPL 3.0"/> |
| BSL 1.1 | <img src="...repo/license-bsl.svg" width="220" height="34" alt="BSL 1.1"/> |
<img src="...repo/license-bsl-wide.svg" width="290" height="34" alt="BSL 1.1"/> |
| Proprietary | <img src="...repo/license-proprietary.svg" width="220" height="34" alt="Proprietary"/> |
<img src="...repo/license-proprietary-wide.svg" width="290" height="34" alt="Proprietary"/> |
Build
| Badge | Standard | Wide |
|---|---|---|
| Passing | <img src="...repo/build-passing.svg" width="220" height="34" alt="Build Passing"/> |
<img src="...repo/build-passing-wide.svg" width="290" height="34" alt="Build Passing"/> |
| Failing | <img src="...repo/build-failing.svg" width="220" height="34" alt="Build Failing"/> |
<img src="...repo/build-failing-wide.svg" width="290" height="34" alt="Build Failing"/> |
| Pending | <img src="...repo/build-pending.svg" width="220" height="34" alt="Build Pending"/> |
<img src="...repo/build-pending-wide.svg" width="290" height="34" alt="Build Pending"/> |
Security
| Badge | Standard | Wide |
|---|---|---|
| Post-Quantum | <img src="...repo/security-pq.svg" width="220" height="34" alt="Post-Quantum"/> |
<img src="...repo/security-pq-wide.svg" width="290" height="34" alt="Post-Quantum"/> |
| E2E Encrypted | <img src="...repo/security-encrypted.svg" width="220" height="34" alt="Encrypted"/> |
<img src="...repo/security-encrypted-wide.svg" width="290" height="34" alt="Encrypted"/> |
| Audited | <img src="...repo/security-audited.svg" width="220" height="34" alt="Audited"/> |
<img src="...repo/security-audited-wide.svg" width="290" height="34" alt="Audited"/> |
| CVE Free | <img src="...repo/security-cve-free.svg" width="220" height="34" alt="CVE Free"/> |
<img src="...repo/security-cve-free-wide.svg" width="290" height="34" alt="CVE Free"/> |
Contributions
| Badge | Standard | Wide |
|---|---|---|
| PRs Welcome | <img src="...repo/contrib-welcome.svg" width="220" height="34" alt="PRs Welcome"/> |
<img src="...repo/contrib-welcome-wide.svg" width="290" height="34" alt="PRs Welcome"/> |
| Seeking Contribs | <img src="...repo/contrib-seeking.svg" width="220" height="34" alt="Seeking Contributors"/> |
<img src="...repo/contrib-seeking-wide.svg" width="290" height="34" alt="Seeking Contributors"/> |
| Closed | <img src="...repo/contrib-closed.svg" width="220" height="34" alt="Closed"/> |
<img src="...repo/contrib-closed-wide.svg" width="290" height="34" alt="Closed"/> |
Version
| Badge | Standard | Wide |
|---|---|---|
| Alpha | <img src="...repo/version-alpha.svg" width="220" height="34" alt="Alpha"/> |
<img src="...repo/version-alpha-wide.svg" width="290" height="34" alt="Alpha"/> |
| Beta | <img src="...repo/version-beta.svg" width="220" height="34" alt="Beta"/> |
<img src="...repo/version-beta-wide.svg" width="290" height="34" alt="Beta"/> |
| Release Candidate | <img src="...repo/version-rc.svg" width="220" height="34" alt="RC"/> |
<img src="...repo/version-rc-wide.svg" width="290" height="34" alt="RC"/> |
| Stable | <img src="...repo/version-stable.svg" width="220" height="34" alt="Stable"/> |
<img src="...repo/version-stable-wide.svg" width="290" height="34" alt="Stable"/> |
Language / Platform
| Badge | Standard | Wide |
|---|---|---|
| Python | <img src="...repo/lang-python.svg" width="220" height="34" alt="Python"/> |
<img src="...repo/lang-python-wide.svg" width="290" height="34" alt="Python"/> |
| Go | <img src="...repo/lang-go.svg" width="220" height="34" alt="Go"/> |
<img src="...repo/lang-go-wide.svg" width="290" height="34" alt="Go"/> |
| Rust | <img src="...repo/lang-rust.svg" width="220" height="34" alt="Rust"/> |
<img src="...repo/lang-rust-wide.svg" width="290" height="34" alt="Rust"/> |
| Node.js | <img src="...repo/lang-nodejs.svg" width="220" height="34" alt="Node.js"/> |
<img src="...repo/lang-nodejs-wide.svg" width="290" height="34" alt="Node.js"/> |
| C / C++ | <img src="...repo/lang-c.svg" width="220" height="34" alt="C/C++"/> |
<img src="...repo/lang-c-wide.svg" width="290" height="34" alt="C/C++"/> |
| Linux | <img src="...repo/platform-linux.svg" width="220" height="34" alt="Linux"/> |
<img src="...repo/platform-linux-wide.svg" width="290" height="34" alt="Linux"/> |
| WebAssembly | <img src="...repo/platform-wasm.svg" width="220" height="34" alt="WebAssembly"/> |
<img src="...repo/platform-wasm-wide.svg" width="290" height="34" alt="WebAssembly"/> |
| FPGA / ASIC | <img src="...repo/platform-fpga.svg" width="220" height="34" alt="FPGA/ASIC"/> |
<img src="...repo/platform-fpga-wide.svg" width="290" height="34" alt="FPGA/ASIC"/> |
4 · Standalone Status Badges
Path: .github/profile/assets/badges/status/
| Slug | Use Case |
|---|---|
status-passing |
CI / test passing |
status-failing |
CI / test failing |
status-pending |
CI pending / queued |
status-building |
Currently building |
status-alpha / status-beta / status-stable |
Release maturity |
status-deprecated / status-archived |
End-of-life |
status-maintained / status-wip |
Maintenance state |
pq-ready |
Post-quantum crypto |
security |
General security notice |
open-source |
OSS badge |
license-mit / license-apache / license-prop |
License short-form |
sponsor |
Sponsorship CTA |
docs |
Docs available |
contributing |
Contributions open |
downloads / coverage |
Metrics |
version-release / version-prerelease |
Release channel |
<img src="https://raw.githubusercontent.com/dubzrn/glitch-badges/main/.github/profile/assets/badges/status/pq-ready.svg" width="220" height="34" alt="PQ Ready"/>
Quick Copy — Full Repo Badge Row
<div align="center">
<img src="https://raw.githubusercontent.com/dubzrn/glitch-badges/main/.github/profile/assets/badges/repo/status-stable.svg" width="220" height="34" alt="Stable"/>
<img src="https://raw.githubusercontent.com/dubzrn/glitch-badges/main/.github/profile/assets/badges/repo/license-mit.svg" width="220" height="34" alt="MIT"/>
<img src="https://raw.githubusercontent.com/dubzrn/glitch-badges/main/.github/profile/assets/badges/repo/security-pq.svg" width="220" height="34" alt="Post-Quantum"/>
<img src="https://raw.githubusercontent.com/dubzrn/glitch-badges/main/.github/profile/assets/badges/repo/security-encrypted.svg" width="220" height="34" alt="Encrypted"/>
<img src="https://raw.githubusercontent.com/dubzrn/glitch-badges/main/.github/profile/assets/badges/repo/build-passing.svg" width="220" height="34" alt="Build Passing"/>
<img src="https://raw.githubusercontent.com/dubzrn/glitch-badges/main/.github/profile/assets/badges/repo/contrib-welcome.svg" width="220" height="34" alt="PRs Welcome"/>
</div>
Deployment Layout
.github/profile/assets/badges/
├── social/ ← 31 SVGs (standard + -wide variants)
├── comms/ ← 36 SVGs (standard + -wide variants)
├── repo/ ← 66 SVGs (standard + -wide variants)
└── status/ ← 24 SVGs (standalone, no wide variant)
Publishing / Registry Status
| Registry | Package | Status |
|---|---|---|
| npm | glitch-badges |
|
| PyPI | glitch-badges |
Published on tag push via publish-pypi.yml |
| crates.io | glitch-badges |
Published on tag push via publish-crates.yml |
To release a new version:
- Bump
versioninpackages/js/package.json,packages/py/pyproject.toml,packages/rs/Cargo.toml - Update
CHANGELOG.md - Push a
v<semver>tag — CI handles the rest
Contributing
See CONTRIBUTING.md.
License
Copyright (c) 2026 VLABS, LLC. All rights reserved.
VRIL LABS Open Source License v1.0 — vril.li/license.
Built by VRIL LABS · Encrypting the future
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file glitch_badges-1.0.0.tar.gz.
File metadata
- Download URL: glitch_badges-1.0.0.tar.gz
- Upload date:
- Size: 18.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bedb3c0262128e4235d5fbddc1619a80e591622c741d81d0d9da9c881cf8bcd6
|
|
| MD5 |
9c67fd64273797165ed4b548d524d217
|
|
| BLAKE2b-256 |
ef1370705c8d028285aa11676636f18afe0800f5e66f2dc6d6a6a9ab07f714f2
|
File details
Details for the file glitch_badges-1.0.0-py3-none-any.whl.
File metadata
- Download URL: glitch_badges-1.0.0-py3-none-any.whl
- Upload date:
- Size: 13.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
05584eb682b6f5515ae48910348a635b36ee3c124a33f1c1dbfd0da555c1917e
|
|
| MD5 |
0e1de0fa1c34cf2314b9e68daba32b9a
|
|
| BLAKE2b-256 |
bca1f7b112d49e6ed8a6afa7db3e1f9a8f6fd74adfcc30dab7bded767b956273
|