Stacked text generator

Stacked text generator turns horizontal text into a vertical column with one character per line. Useful for tall banner posts, sidebar callouts, vertical Instagram captions, and aesthetic vaporwave-style layouts. Three scopes are available: stack the whole input as one column, stack each word separately with a blank line between groups, or stack each line of input independently. The transformation runs in your browser; nothing uploads.

Input
Line 1:1 LF cloud_done Saved locally
Result Stacked Text Generator
0 lines 0 chars

Vertical text, three ways

Stacking is a simple transformation: split the input into characters, then join them with newlines so each character lands on its own line. This tool wraps that in three scopes so you can stack different shapes of input cleanly without preprocessing.

Whole Text (default) takes the entire input and stacks every non-whitespace character. Use this for short single-word banners. Per Word splits on whitespace and stacks each word as its own column, separated by your chosen Between Stacks separator (blank line, divider, or single space). Use this for multi-word headlines where each word becomes its own vertical block. Per Line stacks each input line independently - useful when you have a list of words you want stacked side-by-side.

Skip Spaces (on by default) drops space characters so the stacks read cleanly. Turn it off if you want spaces to take up vertical room too (one space per line of output).

How to use stacked text generator

  1. 1Paste or type your text into the input panel on the left.
  2. 2Pick a Scope: whole text (default), per word, or per line.
  3. 3For multi-stack scopes, pick a Between Stacks separator: blank line, --- divider, or single space.
  4. 4Toggle Skip Spaces off if you want spaces in the stack.
  5. 5Click Copy to copy the stacked output.

Keyboard shortcuts

Drive TextResult without touching the mouse.

Shortcut Action
Ctrl FOpen the find & replace panel inside the input Plus
Ctrl ZUndo the last input change
Ctrl Shift ZRedo
Ctrl Shift EnterToggle fullscreen focus on the editor Plus
EscClose find & replace, or exit fullscreen
Ctrl KOpen the command palette to jump to any tool Plus
Ctrl SSave current workflow draft Plus
Ctrl PRun a saved workflow Plus

What this tool actually does

Three scopes for different inputs

Whole Text stacks the entire input (with spaces optionally stripped). Per Word splits on whitespace and stacks each word in its own group. Per Line treats each input line as a separate group.

Three between-stack separators

Blank line (default) is the most readable. --- divider works well for plain-text formats. Single space gives a tighter look when groups should visually flow together.

Codepoint-aware split

The split is per Unicode codepoint, not per UTF-16 code unit, so emoji and astral-plane characters land on their own line correctly instead of splitting into surrogate halves.

Worked example

Default scope (whole text), spaces skipped.

Input
Hello
Output
H
e
l
l
o

FAQ

How is this different from "rotate text" or "scramble words"?
Rotate cycles the order of items; scramble randomises. Stacked just reformats the same characters into a vertical column - the order and identity of every character stays the same, only the layout changes.
Will this work in Instagram captions?
Yes - newlines preserve in Instagram captions and bios. The stacked output renders as a vertical column on every platform that respects line breaks.
Can I add diacritic stacking (like zalgo)?
No - that is a different transformation. For diacritic glitch text, use zalgo glitch text. Stacked text only does the per-character newline split.
What happens to emoji?
Each emoji codepoint lands on its own line. Compound emoji that use ZWJ sequences (e.g. family emoji) may render strangely because the ZWJ glue character also lands on its own line; ZWJ-glued emoji are not designed for splitting.