Two directions.
One ribbon.
Turn logical text into visual order. A tiny hands-on lesson in how Hebrew, Latin letters and numbers share a line.
Your working ribbon left edge → right edge
Printed proof match the order of these tiles
Why do these tiles move?
Text is stored in logical order. Unicode assigns each character an embedding level: odd levels run right to left; even levels run left to right. To display a line, reverse continuous runs from the highest level down to the lowest odd level.
Numbers can form an even-level island inside a right-to-left run. Reversing the number island first, then the surrounding run, keeps the number readable.
This workshop uses the actual bidi-js implementation of Unicode 13.0. Tile numbers identify characters; the small L/R/EN tags show their directional class. The board displays individual unjoined characters, not full Hebrew text instruction or Arabic shaping.