Skip to content
Blog
Engineering··6 min read

Why we built Liora RTL-first

Most software treats Hebrew and Arabic as a translation step. We treated them as a foundational requirement.

By Maya Rosen

Building bidirectional UI is mostly easy and partly very hard. The easy part is mirroring layout — flex direction, text alignment, paddings. The hard part is the small things: animation directions, gesture mappings, icons that imply direction (skip, share, back), input cursor behavior in mixed-content fields, the keyboard sense of "previous" vs "next" in a list.

We chose to treat Liora as RTL-first from day one. Every animation has an RTL counterpart. Every navigation chord has a logical-direction equivalent. Every component uses CSS logical properties (margin-inline-start, padding-inline-end) instead of left/right.

The payoff isn’t just for Hebrew and Arabic users. RTL discipline forces clarity about what a layout is doing. We’ve found bugs in our LTR layouts that we wouldn’t have caught any other way.