By Tim King · Updated
ASCII Art Generator
Banners for READMEs, Terminals, Commit Messages and Code Comments
OneTask is free, with no sign-up, and built by one person.
If this tool saved you time, a coffee helps keep new ones coming.
How the ASCII Art Generator works
This ASCII art generator turns words into block letters. Type a word and get it back as block letters made of plain ASCII characters, ready to paste into a README, a terminal login banner, a build script or a code comment. Pick the character it is drawn with, widen the letter spacing, and wrap the whole thing in a box if it needs one.
ASCII art generator: what to know first
ASCII art banners are one of the oldest conventions in software and one of the few that never went
away. They are still the first thing a command line tool prints, still the header at the top of a
README, and still how a monospaced block of text gets to look deliberate rather than accidental. The
reason they persist is that they need nothing: no image, no font file, no colour support and no
Unicode. A banner drawn from # renders identically in a terminal, a plain-text email, a git commit
message, an /* */ comment block and a log file — all the places an image cannot go.
How the letters are drawn. Each supported character has a bitmap seven rows tall and five
columns wide. The generator lays the bitmaps out side by side, filling the on pixels with your fill
character and leaving the off pixels as spaces, then joins each row into a line. That is exactly how
the classic Unix figlet program works, minus the hundreds of fonts — a seven-row height is the
sweet spot where every letter stays legible and the banner still fits in a standard 24-row terminal
with room to spare.
Choosing a fill character changes the weight more than you would expect. # is the default
because it is dense and reads as solid at a glance. █ gives a genuinely solid block if you are
confident about Unicode support, * looks lighter and more old-school, = reads as a line rather
than a mass, and a letter like o or x gives a dotted, plotter-like look. A single character is
the right choice; if you type several, only the first is used, because a banner drawn from a
multi-character fill loses its column alignment immediately.
Letter spacing is the other control worth touching. One column of space between letters is correct for a short word. Add a second for a long phrase that reads as a solid wall, or drop to zero for a deliberately cramped, tightly-packed look where the letters almost touch. Because every character is the same width, the total width is entirely predictable: five columns per character plus your spacing between each one, which is how you work out in advance whether a phrase will fit inside eighty columns.
Keep it short. The practical limit is your line width, not the tool. At the default spacing, ten characters comes to just under sixty columns, which fits comfortably in every terminal and inside a GitHub README without wrapping. Twelve is about the maximum before an eighty-column terminal starts folding lines, and a folded banner is worse than no banner. Split a long phrase into two banners on separate lines instead of stretching one across the screen.
Supported characters are A to Z, the digits zero to nine, space, and the punctuation marks that actually turn up in a project name: full stop, hyphen, colon, slash, plus, exclamation mark and question mark. Lowercase input is drawn as uppercase, because a five-by-seven grid does not have the vertical room for ascenders and descenders as well as capitals. Anything unsupported is drawn as a space and counted in the readout so you know it was dropped rather than mangled.
FAQ
Where can I paste the result?
Anywhere that uses a monospaced font: a README code block, a terminal banner, a commit message, a
Dockerfile comment, a log header or a plain-text email. In a proportional font the columns will not
line up, so wrap it in backticks or a <pre> block.
Why is my lowercase text coming out as capitals?
The font is a five-by-seven grid, which has room for capitals or lowercase but not both at a legible
size. Every letter is drawn from the uppercase bitmap, which is also the convention figlet and most
banner fonts follow for their small faces.
Which characters are supported?
A to Z, zero to nine, space, and . - : / + ! ?. Anything else is rendered as a blank column and
reported in the unsupported count, so a stray emoji or accented letter leaves a gap rather than
breaking the alignment of everything after it.
Can I use this in a commercial project?
Yes. The output is plain ASCII characters with no licence, watermark or attribution attached. Drop it into a product banner, an installer or a client's documentation without asking anyone.
See also: all Images tools, Audio, Video & Screen, PDF, SVG, Simulations & Screensavers, Generative Art, Chart Makers, 3D Model Viewers, Drawing Pads, Mockups & 3D Making, Diagram Makers, 3D Science, Tracker Music.
Related tools
Morse Code Translator
Translate text to Morse code and back again.
Add Border To Image
Frame a photo with a coloured border and padding.
Add Shadow To Image
Add a soft drop shadow to photos, logos, product cut-outs and screenshots.
Auto Crop Image
Trim the blank border around an image down to its content automatically.
Blur Image
Blur a whole photo, or brush over the parts to soften.