· 4 min read
How to Make Big Block Letters From Text
Heshan Fernando
Co-founder & COO
You want a build script to announce itself, or a README to have a header that reads at a glance, or a login banner that says which server someone just connected to. Plain text can’t do bold or font size, so the traditional answer is letters made out of other letters.
It works, and it goes wrong in one specific way that nobody warns you about: the output has a fixed width, and if the destination is narrower, every line wraps and the whole thing collapses into noise.
What ASCII block text actually is
Each letter is drawn as a small grid of characters — typically five or six rows tall and four to eight columns wide. Stack them side by side and you get a word rendered as a picture made of hashes, slashes, or block characters.
That means the output is not a string of text so much as a fixed-size image with characters for pixels. It has a height in lines and a width in columns, and both matter.
The unicode block characters — the solid and half-height blocks — produce a denser, cleaner result than ASCII punctuation. They also depend on the destination having a font that includes them, which most modern terminals do and some older systems and CI log viewers do not.
Why people get stuck here
- Wrapping. A terminal is 80 columns by default. A wide style on a seven-letter word can easily exceed that, and once it wraps, nothing is legible.
- Proportional fonts. ASCII art assumes every character occupies the same width. Paste it into a document or an email and the columns drift apart.
- Too many characters. Big text stops being readable past roughly ten letters, because the whole point is scale.
- Escaping. Backslashes and quotes in the output need escaping when they go into a shell script or a JSON config, and they frequently don’t get it.
What good block text looks like
Sized for the destination
Count the columns before you commit. If the output is 34 characters wide and the terminal is 80, you have room. If it’s 96, you don’t, and the fix is a narrower style rather than a smaller terminal.
Somewhere monospaced
Terminals, code blocks in Markdown, <pre> tags, and plain-text files all preserve character alignment. Word processors, email clients rendering HTML, and most chat apps do not.
Short enough to be a heading
One word, or two short ones. “DEPLOY” works. “DEPLOYMENT COMPLETE SUCCESSFULLY” is a paragraph rendered at six times the height.
| Destination | Safe Width | Style |
|---|---|---|
| Terminal banner | Under 80 columns | Compact ASCII |
| README code block | Under 100 columns | Any, renders monospaced |
| CI log output | Under 80 columns | ASCII only — block chars may fail |
| Email or document | Not suitable | Use real formatting |
Common mistakes to avoid
- Pasting block text into a proportional font and wondering why it looks broken.
- Using unicode block characters in output that might be read in an old terminal or a log aggregator.
- Generating a nine-letter word in a wide style and only discovering the wrap on someone else’s machine.
- Putting unescaped backslashes into a shell script, where they quietly disappear.
- Using it in application output that a screen reader will encounter — it reads as a string of punctuation.
How to do it with Big Text Generator
The Big Text Generator renders the text and shows you what you’re getting before you paste it.
- Type a short word or phrase — under ten characters keeps it legible.
- Pick a style and width that fits the destination.
- Check the column count against your terminal or code block width.
- Copy it into your banner, README, or script, escaping backslashes if it’s going into code.
Other text formatting tools that run in the browser are in the tools directory.
Frequently asked questions
Why does my big text wrap badly?
Because the output has a fixed character width and the destination is narrower. Terminals default to 80 columns, so a wide style on a long word wraps and becomes unreadable. Choose a compact style, or shorten the text.
Will it work in a proportional font?
No. This kind of art relies on every character occupying identical width. In a proportional font the columns drift and the letters fall apart. Paste it somewhere monospaced.
Should I use unicode block characters?
They look denser and cleaner, and they need font support that older terminals and some log viewers lack. Plain ASCII works everywhere, which is why it’s still the safe default for anything automated.
Final thought
Count the columns before you paste. Everything else about block text is aesthetic; the width is the only thing that determines whether anyone can read it.