🔤 ASCII Art Generator

Convert any text into ASCII banner art using 24 figlet fonts, with width, alignment and fill character controls.

Tip: ALL CAPS looks bolder

No fonts match ""
40Narrow ← → Wide200

Replaces all art characters with this symbol.

Output
Rendering…

🔤

Enter text to generate ASCII art

Pick a font, then click Generate


                    
Display Theme:

💡 Tips for great ASCII art

Use UPPERCASE — letters render fuller and bolder.
Short words (1–2) look best. Long sentences may overflow.
Increase width if letters are getting cut off.
Try fill chars like @ # for unique styles.
Download as .txt to paste into emails, bios, code comments or social media.

How figlet fonts turn letters into blocks

A figlet font is a data file that stores a multi-line picture for every printable character. Each glyph occupies a fixed number of rows, and the renderer stitches glyphs together horizontally row by row, so the first row of every letter forms the first line of the output, the second row forms the second, and so on. That is why ASCII art only lines up correctly in a monospaced typeface, where every character occupies the same width.

The generator loads font files on demand and preloads a handful of common ones, so switching fonts fetches a different glyph set. Changing the font changes both the height and the average width of the result, because a compact face such as Mini uses far fewer rows and columns per letter than a heavy face such as Colossal.

The width setting is a column limit. When a rendered line would exceed it, the renderer breaks the text so the block stays inside the limit. Alignment is applied afterwards, since figlet output is naturally flush left: for centre or right alignment each line is padded with spaces to shift it within the chosen width.

Rendering a short banner step by step

Suppose you type the word README, choose the Standard font, leave the width at 80 columns and keep left alignment. Standard draws capitals roughly six rows tall, so the output is a block of about six lines. Standard letters average around eight columns each, so six characters come to roughly fifty columns, comfortably inside the 80 column limit, and nothing wraps.

Now push the same font to a longer phrase, say twelve characters. At roughly eight columns per letter that is close to a hundred columns, which exceeds the 80 limit, so the renderer breaks the phrase and the banner becomes two stacked blocks of six lines each rather than one very wide strip.

If you then switch alignment to centre while keeping the 80 column width, a fifty column block gains fifteen spaces of padding at the start of each line, since the thirty leftover columns are split evenly on both sides. Finally, entering a hash in the fill character box swaps every drawing character in the glyphs for a hash, which flattens the shading of fonts that normally mix slashes, underscores and pipes into a single solid texture.

Making the output survive being pasted

ASCII art is whitespace-sensitive. If the destination renders your text in a proportional typeface, the columns will not line up and the banner will look broken through no fault of the generator. In a readme file, wrap the block in a fenced code block. In a terminal, a chat client or a code comment the typeface is already monospaced, so it will hold its shape.

Width is the setting that most often needs adjusting. Terminals traditionally run 80 columns wide, and readme files on code hosting sites display at a similar width before they start scrolling sideways. Choosing a shorter phrase or a narrower font is usually better than letting a wide banner wrap in an awkward place.

Decorative and fancy fonts are the least portable. Some use box-drawing or extended characters that may not survive being pasted into systems with a different character encoding, and very tall fonts such as Colossal can dominate a page. The custom fill character removes internal shading, which improves legibility for heavy fonts but can make delicate fonts such as Thin or Script hard to read.

Frequently Asked Questions

Twenty-four, arranged in four groups. Popular covers Standard, Big, Slant, Shadow, Small and Mini. Block covers Block, Banner, Doom, Colossal, Letters and Digital. Decorative covers Bubble, Puffy, Gothic, Ogre, Graffiti and Script. Fancy covers Star Wars, Larry 3D, Speed, Lean, Thin and Epic. A search box filters the list by name.
Because the rendered line exceeded the output width you set. Each letter in a figlet font occupies several columns, so a phrase of ten or twelve characters can easily pass eighty columns. Either raise the width setting, shorten the text, or pick a narrower font such as Small or Mini.
It replaces the characters that draw the letter shapes with the single character you supply, such as a hash, an at sign or a filled square. That gives a uniform solid look instead of the mix of slashes, pipes and underscores a font normally uses. It affects the drawing characters, not the spaces between them.
Almost certainly because the destination is rendering it in a proportional font, where an i is narrower than an m. ASCII art depends on every character being the same width. Put the block inside a code fence in Markdown, or paste it somewhere that already uses a monospaced typeface such as a terminal.
Yes. Figlet produces left-aligned output by default, and the alignment control adds the padding needed to shift each line for centre or right alignment inside the width you have set. Centring a narrow banner in a wide output width adds a noticeable indent to every line of the block.