TextToolboxTextToolbox
HomeText to Visual / EffectsDiagonal Text Generator

Diagonal Text Generator

Arrange graphemes on indented lines. Compare three directions, choose one-grapheme padding and inspect complete output size before copying.

Built by Saurabh Kumar

Quick Answer

Create a staircase or alternating layout with one retained grapheme cluster per LF-separated row. Whitespace-only clusters are removed. Choose Down-right, Up-right or Zigzag, indent 1 to 6 and optional one-grapheme padding. This does not rotate a font or certify platform compatibility.

Diagonal settings

Whitespace-only graphemes are removed. Each remaining grapheme gets one line.

Direction

Diagonal output

10 lines; 109 UTF-16 units including padding/newlines

Quick examples

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

  1. Enter a short phrase. Whitespace-only graphemes are removed; remaining source clusters stay intact.
  2. Choose Down-right, Up-right or Zigzag and an indent from 1 to 6.
  3. Leave padding blank for spaces, or enter one grapheme. Tabs and line breaks are rejected.
  4. 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
ABC with indent 2 and underscore padding
DirectionExact 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!

Learn more: What is ASCII Art?