Staircase Text on Indented Lines
Write a short phrase on a slanting diagonal and copy the result. The tool arranges a short phrase on indented lines, with one grapheme cluster per row. A grapheme groups a base letter with its accent or the parts of a joined emoji. This is a whitespace layout, not a rotated font. Fonts, wrapping and a destination that removes spaces can change its appearance. Good for plain-text sketches, whitespace demonstrations with a visible padding grapheme, and code-block drafts for a whitespace-preserving block (check the destination's wrapping and font).
Choosing a Direction, an Indent and Padding
- Enter a short phrase. Whitespace-only graphemes are removed; remaining source clusters stay intact.
- Choose Down-right, Up-right or Zigzag and an indent from 1 to 6.
- Leave padding blank for spaces, or enter one grapheme. Tabs and line breaks are rejected.
- Review the complete line and UTF-16 unit counts. Copy Result, or select the output manually if Copy fails.
How Rows and Padding Are Built
Segmentation uses Intl.Segmenter with grapheme granularity and locale en. Down-right adds i * indent padding repeats to row index i; Up-right uses (n - 1 - i) * indent. Zigzag alternates zero and one indent. It does not draw a full triangle or rotate letters.
Whitespace is filtered after segmentation, so removing a separator cannot attach a following accent to a different letter. Mixed clusters containing whitespace and a non-whitespace mark remain. Output rows use LF separators. Segmentation can differ with the browser's Unicode version.
HELLO, Then ABC in Three Directions
For HELLO, Down-right, indent 2 and blank padding, the complete output is 5 lines and 29 UTF-16 units: 5 letters, 20 spaces and 4 line breaks.
H
E
L
L
O| Direction | Exact output |
|---|---|
| Down-right | A __B ____C |
| Up-right | ____A __B C |
| Zigzag | A __B C |
Why This Is Not a Rotated Font
A multiline staircase is not a valid replacement for a single-line account handle. No social platform or terminal is certified by this preview. Grapheme count does not measure pixel or terminal-cell width, especially for CJK text, tabs, emoji and bidirectional scripts. Whitespace handling also changes how web text appears.
Input is limited to 1,000,000 UTF-16 units and 20,000 retained graphemes. Output is checked before padding allocation and cannot exceed 5,000,000 UTF-16 units. Long staircases grow quadratically; shorten the phrase or reduce indent/padding when an error appears. Missing segmentation support requires a current browser.
Use a short word and compare all three directions. Keep a readable original alongside decorative text. For ordinary multiline alignment, try Center Text.
Share This Tool
Help text artists create diagonal ASCII patterns for free!