A bilingual brand only works if both languages feel native. Most projects we inherit have an English design and an Arabic translation pasted on top. Here is how we approach the work so neither side feels like the afterthought.
Type first
Latin and Arabic don’t share an optical baseline. We choose the Arabic typeface first because it has fewer good options at display sizes, and then we pair an Latin family that matches its weight and x-height — not the other way round.
Layout is mirrored, not translated
Every component is reviewed in both directions. Icons that imply motion get flipped. Numbers stay LTR inside an RTL paragraph. Date pickers, breadcrumbs, progress trackers, sliders — they all have a different feel in RTL and we design them twice.
One codebase, two experiences
We build the front-end on logical CSS properties (inline-start/block-end) so a single component file serves both directions. Switching language toggles a single attribute on the root and the entire UI flips, including transitions.