unicode-arrow-size
A table of font stack names and their rendered arrow glyphs demonstrates that font substitution operates glyph-by-glyph, not font-by-font. The visualization pairs each font-family string with a right arrow (→), a left arrow (←), and a left arrow mirrored to point right, using SVG `<text>` elements styled with the specified `font-family`. The code loops over an array of font names, placing each row with `d3.conventions` and appending circles and texts at fixed coordinates. A green and blue arrow pair, created by scaling a text element negatively, shows whether the right arrow glyph is truly symmetric within a given font stack.
AI-generated description← and → aren't symmetric in Consolas and Courier!
I'm not sure why monaco, "consolas" doesn't match "monaco" or "consolas". How do fonts work??
Josh Katz points out that font subsitution works on a glyph level. "monaco" and "courier" don't have a left arrow glyph and so they default to the "Lucida Grande" left arrow. "monaco, consolas" uses the right arrow from "monaco" and the left arrow from "consolas". "consolas" has left and right arrows, so "consolas, monaco" uses both of them. Thanks Josh!
Found while working on Aaronson Oracle.