Skip to main content

ASCII Art Generator

Convert text to large block-letter ASCII art. Supports A-Z, 0-9, and basic punctuation.

Reviewed by · Last reviewed

Supports A-Z, 0-9 and basic punctuation. Max 20 characters.

How to Use the ASCII Art Generator

  1. Type into the input field up to 20 characters. Letters (A-Z), digits (0-9), and a small punctuation set (. , ! ? + - # @) are supported; anything else is ignored or rendered as a blank slot.
  2. Click Generate. The tool looks up each character in a built-in 6-row block font and emits a multi-line string padded with spaces.
  3. Review the output in the preview pane. The art renders in a monospace font - the # glyphs form the filled parts of each letter and ASCII spaces form the gaps.
  4. Copy to clipboard with the Copy button, or select and copy manually. Paste into any medium that preserves monospace alignment: a code block on GitHub, a terminal, a README, a banner in a shell prompt.
  5. Iterate by editing the input and regenerating. The output replaces the previous art in-place.

What’s Happening Under the Hood

The generator uses a hand-coded 6-row bitmap font. Each supported character is represented as an array of 6 strings of equal width, where # marks an "on" pixel and space marks an "off" pixel. To render a word, the tool iterates over its characters, looks up the 6-row arrays for each, and horizontally concatenates row 0 of each letter into the first output line, row 1 into the second, and so on. A single-column space goes between letters to keep glyphs from fusing.

Input is uppercased before lookup, because the font only defines uppercase glyphs - room on a 6-row grid is tight, and ASCII-art fonts historically skip lowercase for this reason. The 20-character input cap exists because beyond roughly 140 terminal columns the art wraps on most screens, which destroys readability. The rendering is pure string concatenation in JavaScript; no canvas, no SVG, no image is involved. The output is plain text - you could email it, commit it, or cat it to a terminal.

Good Reasons to Turn Text Into Blocks

  • Putting a readable project name at the top of a README so it stands out in a sea of markdown headings.
  • Generating an MOTD (message of the day) banner for an SSH server or CI pipeline log.
  • Seeding a terminal-art ritual: the classic figlet-style splash screen at startup.
  • Adding a beat to a Slack /code block or Discord triple-backtick fence.
  • Decorating a bulletin-board-era-styled page on a personal site for nostalgia.
  • Making a fake terminal effect for a demo video or screenshot where a real terminal would be overkill.

Things to Watch Out For

ASCII art only survives if it is displayed in a monospace font. Paste this into a proportionally-spaced editor (Notion default, Google Docs body, most email clients) and the columns will shear - every # shifts left or right depending on the glyph width of the surrounding spaces. Always wrap in triple backticks, a <pre> tag, or a "code block" formatting option. Line endings matter too: Windows CRLF vs. Unix LF won’t change the visual, but some chat apps strip trailing spaces, which can chew off the right side of the art. If the output looks mangled on copy, paste into a plain text editor first, confirm it looks right, then copy again - intermediate rich-text clipboards (Word, Outlook) sometimes convert spaces to non-breaking spaces. Non-ASCII input is silently dropped because the font has no glyph for it; you won’t get an error, just an empty slot. And remember the font is fixed; if you want a different style (slanted, shadowed, outlined), you need a different font file, not this tool.

The Format and Its History

ASCII art predates the web. It was born on teleprinters (ASA X3.4-1963 defined ASCII), flourished on dial-up BBSes in the 1980s, and exploded on Usenet - especially rec.arts.ascii - in the early 1990s. The canonical tool is figlet ("Frank, Ian and Glenn’s LETters"), released in 1991 by Sheeran, Chai, and Chappell. Figlet defines a .flf font format: a header line with hardblank, height, baseline, max width, followed by glyphs for ASCII 32-126 with end-of-line and end-of-glyph markers. The figlet.org archive holds hundreds of community fonts - Standard, Slant, Banner, Big, Block, Digital, Doom, Shadow. A close relative, toilet, extends figlet with color and Unicode. Related traditions: Braille-based art uses Unicode Braille Patterns (U+2800-U+28FF) as a 2x4 pixel grid per character, and ANSI art adds color escape sequences. The Amiga and PC/DOS BBS scenes produced legendary galleries archived at sixteencolors.net and textfiles.com/art.

Comparison to figlet and Alternatives

The real figlet CLI is more powerful than this web tool in three directions: it supports dozens of fonts out of the box (figlet -l lists them), it respects kerning modes (full, kern, smush, and overlap) for denser output, and it handles arbitrary width via the -w flag. If you need that depth, install figlet locally: brew install figlet, apt install figlet, or the equivalent. toilet adds color; boxes wraps text in ASCII borders; pyfiglet is a pure-Python figlet reimplementation you can embed in scripts. For image-to-ASCII (not text-to-ASCII), tools like jp2a, chafa, and img2txt convert photos into character grids using luminance sampling. This tool is the right fit when you want one-click block text in a browser without installing anything; the CLI tools win the moment you need font selection, color, or batch processing.

Frequently Asked Questions

Why is the output limited to 20 characters?

Because each character in the built-in font is roughly 6-7 columns wide plus a separator, so 20 characters produces output around 140 terminal columns - the widest that still fits comfortably on a standard monospace terminal or code block without wrapping. Beyond that the art wraps mid-letter on most screens, which defeats the whole point. If you need longer banners, a CLI tool like figlet with a narrower font is the better fit.

Does the tool support lowercase letters?

Input is uppercased before lookup because the font only defines glyphs for A-Z. This is standard for ASCII-art block fonts - rendering lowercase in a 6-row grid is cramped, and most classic figlet fonts take the same shortcut with their &quot;Standard&quot; and &quot;Block&quot; families. Typing &quot;Hello&quot; and &quot;HELLO&quot; produces identical output.

Why does my output look misaligned when I paste it?

Almost always because the destination isn&rsquo;t rendering in a monospace font. ASCII art relies on every glyph and space being the same width; a proportional font narrows spaces and widens letters like <code>W</code> and <code>M</code>, which shears the columns. Wrap the paste in triple backticks on GitHub/Discord/Slack, a <code>&lt;pre&gt;</code> tag in HTML, or a code block in Notion/Markdown.

Is this the same as figlet?

Same genre, smaller scope. Figlet (created in 1991 by Sheeran, Chai, and Chappell) is a CLI tool with a <code>.flf</code> font file format and dozens of fonts, kerning modes, and width controls. This web tool uses one hand-coded block font and renders in-browser. For the nostalgia-accurate &quot;figlet feel&quot;, install figlet locally: <code>brew install figlet</code> on macOS, <code>apt install figlet</code> on Debian/Ubuntu.

Does my text get uploaded anywhere?

No. The font tables and rendering logic ship as part of the page bundle. When you click Generate, the work happens synchronously in your browser tab - no <code>fetch</code>, no server, no analytics payload carrying your input. You can disconnect from the network after the page loads and the tool will keep working.

What&rsquo;s Braille-based ASCII art?

A technique that uses the Unicode Braille Patterns block (U+2800 to U+28FF) as a 2x4 pixel grid per character. Each Braille cell has 8 dots, so you get 8 pixels per glyph instead of 1, roughly quadrupling the resolution of the rendered image. Tools like <code>dotmatrix</code> and some image-to-ASCII converters default to Braille output. It&rsquo;s not what this tool produces - we stay in plain ASCII - but it&rsquo;s worth knowing about for image conversion.

Why don&rsquo;t emojis or non-Latin characters work?

The font only defines glyphs for A-Z, 0-9, and a small punctuation set. Anything outside that set is silently skipped during rendering. To add new glyphs you&rsquo;d have to design them as 6-row string arrays and add them to the lookup table in the component source.

Can I generate art at different sizes?

Not from this tool - the font is fixed at 6 rows. For variable sizes, figlet and toilet support hundreds of fonts of different heights (from 3-row &quot;Mini&quot; up to 20-row &quot;Big&quot; and shadowed variants). If you need to embed an ASCII banner in a README and want it to match a particular aesthetic, browsing figlet.org&rsquo;s font archive is worth the detour.

Where did ASCII art come from?

It predates the internet. Teleprinters in the 1960s already produced typewriter-based pictures (see the famous &quot;Betty Boop&quot; teletype art). The 1980s BBS scene turned it into a subculture, and Usenet&rsquo;s <em>rec.arts.ascii</em> formalized its conventions in the early 1990s. Archives at textfiles.com/art and sixteencolors.net preserve the historical record.

Is there a way to get color in the output?

Not from this tool. Color lives in ANSI art, where terminal escape sequences (<code>\x1b[31m</code> for red) prefix characters. The <code>toilet</code> CLI, successor to figlet, produces color output. Most chat apps and web code blocks strip ANSI escapes, so color ASCII-art is mostly a terminal medium.

More Fun & Utility