graffiti · guides · unicode
Free Graffiti Fonts for Designers
Free graffiti fonts for designers: eight licensed WOFF2 faces on this site, Apache 2.0 vs SIL OFL rules, and when an 800 by 600 PNG export beats a font install.
Published · 1 min read

Most free graffiti fonts pages are scraper farms. They bundle thirty display faces behind one download button, hide the real license in a zip footer, and swap filenames so you cannot tell Apache from Personal Use Only. You click once, get mystery TTFs, and assume commercial use is fine because the headline said free. That assumption has cost designers rework fees and client relationships.
This post narrows the field to eight faces you can verify on disk in lib/graffiti/fonts.ts, two license families you can read in plain English, and four worked examples that show when installing a font beats exporting spray-painted PNG art. If you only need a tag for a Discord banner, you might never touch a font file. If you are building a Figma library for a streetwear brand, you need the license text, not a thumbnail grid.
Which free graffiti font licenses actually allow client work?
Apache License 2.0 and SIL Open Font License 1.1 both allow commercial use, but they govern different redistribution paths. Apache 2.0 section 2 grants a perpetual, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute the work in source or object form. Font binaries count as object form. When you pass a font file to a client or embed it in an app, section 4 requires you to include a copy of the license and retain copyright notices.
SIL OFL 1.1 is font-specific. Its preamble states that fonts may be bundled, embedded, redistributed, and sold with software, while documents created with the fonts are not bound by the font license. Permission condition 2 mirrors Apache's notice requirement. Condition 1 blocks selling the font software by itself. Condition 3 restricts modified versions from using reserved font names without written permission from the copyright holder.
For a designer, the split is practical. Apache fonts behave like other open-source assets: ship the LICENSE file, note modifications, do not imply trademark endorsement. OFL fonts add the reserved name rule and a clearer line between distributing a font file and delivering a poster that used the font. Neither license replaces a client contract. Both beat a download page that says free for personal use with no link to the actual terms.
| License | Fonts on this site | License file path | Sell font file alone? |
|---|---|---|---|
| Apache License 2.0 | Permanent Marker, Rock Salt | /fonts/permanentmarker-LICENSE.txt, /fonts/rocksalt-LICENSE.txt | No standalone retail font SKU; bundle with software or docs |
| SIL Open Font License 1.1 | Bungee Shade, Bangers, Rubik Spray Paint, Anton, Black Ops One, Creepster | /fonts/bungeeshade-OFL.txt, /fonts/bangers-OFL.txt, /fonts/rubikspraypaint-OFL.txt, /fonts/anton-OFL.txt, /fonts/blackopsone-OFL.txt, /fonts/creepster-OFL.txt | Explicitly prohibited (OFL condition 1) |
The SIL OFL FAQ and Apache License 2.0 full text remain the authority. The table summarizes what matters at export time.
What do the eight generator fonts look like in a real export?
The Graffiti Generator loads eight WOFF2 files defined in lib/graffiti/fonts.ts. Each entry lists a human label, file path, license name, and upstream URL on GitHub. There is no ninth mystery face pulled from a CDN at runtime.
Permanent Marker (/fonts/permanentmarker.woff2, Apache 2.0) is a single-weight marker face with even stroke width and rounded terminals. It reads clean at small sizes and works as the default tag style on the homepage.
Rock Salt (/fonts/rocksalt.woff2, Apache 2.0) mimics chalk or crayon on rough paper. Letterforms wobble more than Permanent Marker, so long words need tighter line breaks.
Bungee Shade (/fonts/bungeeshade.woff2, SIL OFL 1.1) is a chromatic block face with inline depth. Wide letters eat horizontal space fast.
Bangers (/fonts/bangers.woff2, SIL OFL 1.1) is a comic book display face with heavy horizontals. It pairs well with high-contrast fill and outline colors on the canvas.
Rubik Spray Paint (/fonts/rubikspraypaint.woff2, SIL OFL 1.1) adds drippy spray texture in the glyph outlines themselves. Good when you want built-in mess without maxing the procedural speckle slider.
Anton (/fonts/anton.woff2, SIL OFL 1.1) is a condensed all-caps sans with tight side bearings. It fits longer words inside the thirty-character input cap.
Black Ops One (/fonts/blackopsone.woff2, SIL OFL 1.1) is a military stencil block. Hard edges read well on dark backgrounds with a thick outline.
Creepster (/fonts/creepster.woff2, SIL OFL 1.1) is a horror display face with jagged terminals. Use it for Halloween merch mockups, not for legible tags at thumbnail size.
None of these are Unicode hacks. They are real OpenType outlines rendered through CSS @font-face, then drawn to an HTML canvas. That distinction matters if you also use tools like the Gothic Text Generator, which maps Latin letters to Mathematical Alphanumeric Symbols. Graffiti output here is an image, not a string you paste into a Twitter bio.
Example 1: Type STREET in Permanent Marker, fill #FF3366, outline #1A1A2E, spray intensity 60%, transparent background. Download the 800 by 600 PNG. Same settings on Bangers produce a wider word box because cap height and side bearings differ in the source files.
Example 2: Type ALLEY in Rubik Spray Paint with fill #22D3EE and outline #0F172A. The glyph drips add texture before the procedural spray layer runs. Lower spray to 20% so the two texture sources do not fight.
Example 3: Type OPS in Black Ops One at full width. Three letters fill the canvas. Anton would leave more side padding at the same font size.
Example 4: Type CREEP in Creepster with green fill #4ADE80 and dark outline. Export with a solid black background when the destination flattens transparency onto white.
I've archived license copies from public/fonts/ before every merch run, and the five minutes it takes beats a recall conversation with a print vendor.
When does a WOFF2 install beat an 800 by 600 PNG?
Download the upstream TTF or OTF when you need editable text, multiple sizes in one layout tool, or vector output for print vendors. Install from the Google Fonts repository paths cited in lib/graffiti/fonts.ts, activate the license file in your project folder, and set paragraph styles in Figma, Illustrator, or InDesign. You control kerning tables, OpenType features, and PDF embedding flags.
Export a PNG from the generator when the destination only accepts images, when you want spray speckle and outline baked in without building effects yourself, or when you refuse to install fonts on a locked work machine. Instagram story stickers, Discord server banners, and quick mockups fit here. The tool caps input at thirty characters and renders on an 800 by 600 canvas, so you trade flexibility for speed.
| Workflow | Best when | License touchpoint | Editability after export |
|---|---|---|---|
| Install TTF/OTF from upstream | Brand systems, print, slide templates | Ship LICENSE or OFL text with project files | Full text remains live |
| Use WOFF2 from this site in your own web app | You control hosting and @font-face CSS | Same as upstream; include notices in your repo | Depends on your stack |
| Download PNG from Graffiti Generator | Social overlays, chat images, one-off comps | Font license applies if you redistribute font files, not the PNG itself | None; raster only |
A PNG is not a font shortcut for trademark clearance. If a client asks for exclusive lettering, open-source faces fail the brief regardless of export format. If they need CMYK separations at poster size, request a fresh export at higher resolution or trace vectors manually. The generator does not upscale on download.
For pasteable styled text in bios, read what is a text generator before you force a PNG into a text field.
How do you verify a graffiti font zip before you ship merch?
Open the zip before you install anything. A legitimate Apache or OFL bundle includes a LICENSE, OFL.txt, or LICENSE.txt file next to the font binaries. If the only readme says free for personal use with no link to Apache or SIL text, stop. Personal use only is not the same license family as the eight files on this site.
Match the filename to the upstream tree. Permanent Marker and Rock Salt live under apache/ on github.com/google/fonts. The OFL families live under ofl/. Creepster's upstream path is apache/creepster even though the OFL header sits in the local creepster-OFL.txt copy. When in doubt, diff your archived license against the GitHub tree before a large print run.
Check reserved names before you rename a modified OFL font. Condition 3 blocks shipping a derivative called Bangers Modified without permission from the copyright holder. Forks for internal mockups are fine. Retail font SKUs are not.
For PNG-only delivery, you still owe compliance if you redistribute raw typeface files. You do not owe a separate stock fee for the procedural spray speckles generated in the browser here.
What breaks when you mix open fonts with spray PNG overlays?
Treat installed fonts and generator PNGs as two layers in the same art direction, not the same asset type. Use Anton or Bangers in your layout file for headlines that must stay editable. Export supporting words as transparent PNGs from the Graffiti Generator when you want speckle that would take ten adjustment layers to fake in Photoshop.
Match color in HSL, not eyedropper alone. Canvas preview uses sRGB hex values you pick in the tool. Figma text using the same hex on Permanent Marker will look flatter because the generator adds outline width, drop shadow, and procedural spray on top of the glyph fill.
Align baselines by exporting a PNG with a solid flat background first, placing it in the comp, then switching to transparent once position is locked. The 800 by 600 frame includes padding around the word bounding box. Do not assume the text sits flush to the image edge.
Unicode-styled companions still have a role. Bubble circled letters (U+24B6 through U+24CF for A-Z in the Enclosed Alphanumerics block) paste into captions where images are stripped. Use PNG graffiti for the hero word and Unicode bubble text for the supporting handle line. The visual weight will not match perfectly. That is the trade. Subscript paste limits in why does subscript only have fourteen characters show the same coverage problem in a different Unicode block.
Honest limits: eight open licenses do not mean eight unique brand identities. Clients who have seen one Etsy shirt have seen these curves before. Language coverage is Latin-centric in these upstream files. Mixed scripts fall back to system sans in the generator preview. Accessibility for PNG exports means screen readers see an image, not the letters inside it. Add alt text in the host app.
Common questions about free graffiti font licensing
Can I use these free graffiti fonts in paid client work?
Yes, for the eight fonts listed in lib/graffiti/fonts.ts under their stated licenses. Permanent Marker and Rock Salt use Apache License 2.0. Bungee Shade, Bangers, Rubik Spray Paint, Anton, Black Ops One, and Creepster use SIL Open Font License 1.1. Both families allow commercial use when you follow attribution and redistribution rules. Keep a copy of each license file from public/fonts in your project records.
Do I need to ship license files when I deliver a font to a client?
If you redistribute the font files themselves, yes. Apache 2.0 section 4 requires recipients to receive a copy of the license. SIL OFL condition 2 requires the copyright notice and license in each distributed copy. If you only deliver a flattened PNG or PDF with embedded outlines, OFL language on documents created using the fonts states those documents are not bound by the font license.
What is the practical difference between embedding WOFF2 and sending a PNG?
Embedding keeps text editable and searchable. The app must load the font file and honor the license on distribution. A PNG rasterizes the glyphs: no font file travels with the asset, kerning and weight are frozen, and scaling beyond the export resolution gets soft. The Graffiti Generator exports 800 by 600 pixels.
Can I modify Bangers or Permanent Marker and sell the font alone?
No. SIL OFL permission condition 1 says neither the font software nor its individual components may be sold by itself. Apache 2.0 does not grant a separate trademark license. You may modify either family and bundle the result with an app or template pack if you meet the license notice requirements.
Are the WOFF2 files here identical to the Google Fonts repository versions?
They come from the same upstream projects linked in lib/graffiti/fonts.ts on github.com/google/fonts. This site stores subset WOFF2 binaries for web preview only. If you need the full TTF for desktop design apps, pull the upstream release and verify the checksum.
Does SIL OFL apply to the spray speckle layer in a generator PNG?
No. The procedural spray, drop shadow, and outline rendering are generated in the browser on this site. They are not part of the font software. OFL language on documents created using the fonts states that requirement does not apply to documents created using the fonts.
What to read next if you are picking graffiti fonts or paste tools
- How to Create Strikethrough Text in Notion and Slack
Native formatting versus Unicode paste when a field rejects rich text.
- What is a Text Generator
Unicode maps, PNG renders, and LLM prose are three different tool categories.
- Why Does Subscript Only Have 14 Characters
Unicode coverage gaps that also affect how styled text fails on older phones.
About the author
Written by Alex Morgan, a front-end engineer specializing in Unicode text tools since 2019. Last updated: .
About Graffiti Generator