Developer & Retro Toys
ASCII ART GENERATOR
Turn any text into awesome retro ASCII art banners for code header comments, terminal apps, README files, and social posts.
Developer Reference
Core Algorithm & Standalone Script
Standalone, zero-dependency JavaScript implementation powering this tool. Free to inspect, copy, and build upon.
// Embedded ASCII Font maps for zero-dependency speed
const FONTS = {
standard: {
A: [" โโโโโ ", " โโ โโ ", " โโโโโโโ ", " โโ โโ ", " โโ โโ "],
B: [" โโโโโโ ", " โโ โโ ", " โโโโโโ ", " โโ โโ ", " โโโโโโ "],
C: [" โโโโโโ ", " โโ ", " โโ ", " โโ ", " โโโโโโ "],
D: [" โโโโโโ ", " โโ โโ ", " โโ โโ ", " โโ โโ ", " โโโโโโ "],
E: [" โโโโโโโ ", " โโ ", " โโโโโ ", " โโ ", " โโโโโโโ "],
F: [" โโโโโโโ ", " โโ ", " โโโโโ ", " โโ ", " โโ "],
G: [" โโโโโโ ", " โโ ", " โโ โโ ", " โโ โโ ", " โโโโโโ "],
H: [" โโ โโ ", " โโ โโ ", " โโโโโโโ ", " โโ โโ ", " โโ โโ "],
I: [" โโโโโโโ ", " โโ ", " โโ ", " โโ ", " โโโโโโโ "],
J: [" โโ ", " โโ ", " โโ ", " โโ โโ ", " โโโโโ "],
K: [" โโ โโ ", " โโ โโ ", " โโโโโ ", " โโ โโ ", " โโ โโ "],
L: [" โโ ", " โโ ", " โโ ", " โโ ", " โโโโโโโ "],
M: [" โโโ โโโ ", " โโโโ โโโโ ", " โโ โโโโ โโ ", " โโ โโ โโ ", " โโ โโ "],
N: [" โโโ โโ ", " โโโโ โโ ", " โโ โโ โโ ", " โโ โโ โโ ", " โโ โโโโ "],
O: [" โโโโโโ ", " โโ โโ ", " โโ โโ ", " โโ โโ ", " โโโโโโ "],
P: [" โโโโโโ ", " โโ โโ ", " โโโโโโ ", " โโ ", " โโ "],
Q: [" โโโโโโ ", " โโ โโ ", " โโ โโ ", " โโ โ โโ ", " โโโโโโโ "],
R: [" โโโโโโ ", " โโ โโ ", " โโโโโโ ", " โโ โโ ", " โโ โโ "],
S: [" โโโโโโ ", " โโ ", " โโโโโ ", " โโ ", " โโโโโโ "],
T: [" โโโโโโโโโ ", " โโ ", " โโ ", " โโ ", " โโ "],
U: [" โโ โโ ", " โโ โโ ", " โโ โโ ", " โโ โโ ", " โโโโโ "],
V: [" โโ โโ ", " โโ โโ ", " โโ โโ ", " โโ โโ ", " โโโโ "],
W: [" โโ โโ ", " โโ โโ โโ ", " โโ โโ โโ ", " โโโโ โโโโ ", " โโ โโ "],
X: [" โโ โโ ", " โโ โโ ", " โโโ ", " โโ โโ ", " โโ โโ "],
Y: [" โโ โโ ", " โโ โโ ", " โโโ ", " โโ ", " โโ "],
Z: [" โโโโโโโ ", " โโ ", " โโ ", " โโ ", " โโโโโโโ "],
" ": [" ", " ", " ", " ", " "],
"0": [" โโโโโโ ", " โโ โโโโ ", " โโ โโ โโ ", " โโโโ โโ ", " โโโโโโ "],
"1": [" โโ ", " โโโโ ", " โโ ", " โโ ", " โโโโโโ "],
"2": [" โโโโโโ ", " โโ ", " โโโโโ ", " โโ ", " โโโโโโโ "],
"!": [" โโ ", " โโ ", " โโ ", " ", " โโ "],
"-": [" ", " ", " โโโโโโ ", " ", " "]
},
slant: {
A: [" /\\ ", " / \\ ", " / /\\ \\ ", "/ ____ \\", "/_/ \\_\\"],
B: [" ____ ", " | _ \\ ", " | |_) |", " | _ < ", " |____/ "],
C: [" ____ ", " / ___|", " | | ", " | |___ ", " \\____|"],
D: [" ____ ", " | _ \\ ", " | | | |", " | |_| |", " |____/ "],
E: [" _____ ", " | ____|", " | _| ", " | |___ ", " |_____|"],
F: [" _____ ", " | ___|", " | |_ ", " | _| ", " |_| "],
G: [" ____ ", " / ___|", " | | _ ", " | |_| |", " \\____|"],
H: [" _ _ ", " | | | |", " | |_| |", " | _ |", " |_| |_|"],
I: [" โโ ", " โโ ", " โโ ", " โโ ", " โโ "],
J: [" โโ ", " โโ ", " โโ ", " โโ โโ ", " โโโโ "],
K: [" _ __ ", " | |/ / ", " | ' / ", " | . \\ ", " |_|\\_\\ "],
L: [" _ ", " | | ", " | | ", " | |___ ", " |_____|"],
M: [" โโโ โโโ ", " โโโโโโโโ ", " โโ โโ โโ ", " โโ โโ ", " โโ โโ "],
N: [" โโโ โโ ", " โโโโ โโ ", " โโ โโโโ ", " โโ โโโ ", " โโ โโ "],
O: [" โโโโ ", " โโ โโ ", " โโ โโ ", " โโ โโ ", " โโโโ "],
P: [" โโโโโ ", " โโ โโ ", " โโโโโ ", " โโ ", " โโ "],
Q: [" โโโโ ", " โโ โโ ", " โโ โโ ", " โโ โ โโ ", " โโโโ โ "],
R: [" โโโโโ ", " โโ โโ ", " โโโโโ ", " โโ โโ ", " โโ โโ "],
S: [" โโโโโ ", " โโ ", " โโโโ ", " โโ ", " โโโโโ "],
T: [" โโโโโโโ ", " โโ ", " โโ ", " โโ ", " โโ "],
U: [" โโ โโ ", " โโ โโ ", " โโ โโ ", " โโ โโ ", " โโโโโ "],
V: [" โโ โโ ", " โโ โโ ", " โโ โโ ", " โโ โโ ", " โโโ "],
W: [" โโ โโ ", " โโ โ โโ ", " โโ โ โ โโ ", " โโโ โโโ ", " โโ โโ "],
X: [" โโ โโ ", " โโ โโ ", " โโโ ", " โโ โโ ", " โโ โโ "],
Y: [" โโ โโ ", " โโ โโ ", " โโโ ", " โโ ", " โโ "],
Z: [" โโโโโโโ ", " โโ ", " โโ ", " โโ ", " โโโโโโโ "],
" ": [" ", " ", " ", " ", " "]
}
};
let generatedAsciiText = '';
const textInput = document.getElementById('text-input');
const fontSelect = document.getElementById('font-select');
const themeSelect = document.getElementById('theme-select');
const checkUpper = document.getElementById('check-upper');
const asciiOutput = document.getElementById('ascii-output');
const toast = document.getElementById('toast');
function showToast(msg) {
toast.textContent = msg;
toast.classList.add('show');
setTimeout(() => toast.classList.remove('show'), 2000);
}
function renderAscii() {
let rawText = textInput.value || 'TOOLPAD';
if (checkUpper.checked) rawText = rawText.toUpperCase();
const fontKey = FONTS[fontSelect.value] ? fontSelect.value : 'standard';
const fontMap = FONTS[fontKey];
const lines = ["", "", "", "", ""];
for (let char of rawText) {
const charGlyph = fontMap[char] || fontMap['?'] || fontMap[' '];
for (let i = 0; i < 5; i++) {
lines[i] += charGlyph[i] || ' ';
}
}
generatedAsciiText = lines.join('\n');
asciiOutput.textContent = generatedAsciiText;
asciiOutput.className = 'ascii-display ' + themeSelect.value;
}
textInput.addEventListener('input', renderAscii);
fontSelect.addEventListener('change', renderAscii);
themeSelect.addEventListener('change', renderAscii);
checkUpper.addEventListener('change', renderAscii);
document.getElementById('btn-copy-raw').addEventListener('click', () => {
navigator.clipboard.writeText(generatedAsciiText);
showToast('Raw ASCII copied!');
});
document.getElementById('btn-copy-comment').addEventListener('click', () => {
const comment = `/*\n${generatedAsciiText.split('\n').map(l => ' * ' + l).join('\n')}\n */`;
navigator.clipboard.writeText(comment);
showToast('Code Comment copied!');
});
document.getElementById('btn-copy-markdown').addEventListener('click', () => {
const md = "```\n" + generatedAsciiText + "\n```";
navigator.clipboard.writeText(md);
showToast('Markdown block copied!');
});
// Init
renderAscii();