Why every ASCII tree is built from slopes
Plain text has no diagonal lines, only characters sitting in a grid, so artists borrow the ones that already lean. / and \ give the two sides of a tree, and ^ packs both slopes into a single cell, which is why the caret tree reads as a pine from a distance. Each row widens by one column on each side, so a tree with five rows of branches is nine characters wide at the base. Odd widths matter: they leave one true centre column where the * star and the [_] trunk can sit without leaning left or right.
Asterisks, underscores and carets get eaten by chat markup
Markdown treats several of the characters these drawings depend on as formatting. On Discord and Slack a pair of * on one line turns the text between them italic and the stars vanish, and the snowman's _===_ hat can lose its underscores the same way. Reddit reads ^ as the start of superscript, which wrecks the caret tree. Proportional fonts are the second problem, because a space and a slash no longer take equal room. Wrap the piece in triple backticks on Discord, or indent every line by four spaces on Reddit, and both apps switch to a fixed-width block that leaves each character alone.
Snowmen and snowflakes that turn into colour emoji
โ is U+2603 SNOWMAN and โ is U+2744 SNOWFLAKE, both encoded back in Unicode 1.1 (1993), long before emoji existed. Each was later given an emoji form as well, so some phones and apps redraw them as colour pictures, which can make one glyph twice as wide as the text around it. Adding the variation selector U+FE0E after the character asks for the plain text style, though not every app honours the request. โ U+2745 and โ U+2746 never got emoji forms, so they stay monochrome and are the safer pick inside an aligned drawing.
