A large share of the Middle East's online audience reads from right to left. For companies selling into the Gulf, or serving Persian-speaking customers in Iran and around the world, the Arabic or Persian version of the website is often the one that matters most. Yet it is frequently the weakest: a mirrored copy of the English site with awkward fonts, broken icons and forms that reject local input. RTL website design done properly is a design discipline in its own right. This guide covers what changes when direction flips, what must not flip, and how to structure a bilingual site that feels native in both directions.
Why RTL needs its own design attention
Right-to-left languages change more than text alignment. Reading direction affects how people scan a page, where they expect navigation, which way a "next" arrow points and how a progress bar fills. When those expectations are not met, the site feels foreign, and in competitive markets like the UAE that sense of foreignness erodes trust quickly.
Teams we work with on both Persian and Arabic platforms tend to underestimate three things: typography, mixed-direction content, and forms. We will cover each.
RTL website design mechanics: direction and logical properties
The foundation is technical and straightforward:
- Set
langanddir="rtl"on thehtmlelement for RTL pages. - Use CSS logical properties (
margin-inline-start,padding-inline-end,inset-inline-start,text-align: start) instead of left and right. - Prefer flexbox and grid layouts, which follow the document direction automatically.
- Avoid absolute positioning tied to physical sides wherever possible.
When the codebase is built this way from the start, most layout mirroring happens without a separate stylesheet. This is one of the reasons we build all our engines direction-aware from the core; retrofitting is always more expensive.
What to mirror and what not to
Not everything should flip. A simple rule: mirror things that represent direction or sequence; keep things that represent real-world objects or universal conventions.
| Element | Mirror in RTL? | Notes |
|---|---|---|
| Overall layout, sidebars, navigation order | Yes | Primary navigation starts from the right |
| Back and forward arrows, chevrons in breadcrumbs | Yes | "Next" points left |
| Progress bars and step indicators | Yes | Progress fills from right to left |
| Carousels and sliders | Yes | Next item comes from the left |
| Icons of physical objects (phone, camera, cart) | Usually no | A shopping cart icon is fine as is |
| Media playback controls | No | Play and fast-forward follow a global convention |
| Clocks, charts with time axes | Context-dependent | Test with users; many dashboards keep left-to-right time axes |
| Logos, product photos | No | Never mirror brand marks or product images |
| Checkmarks | No | Mirroring makes them look wrong |
Review every icon in your set rather than flipping them all with a single CSS transform.
Typography for Arabic and Persian
Typography is where many RTL sites fall down. Arabic script is cursive and connected, with letterforms that change based on position, and it has different proportions from Latin text.
Choosing fonts
- Choose a font family that explicitly supports the languages you need. Persian requires letters such as پ, چ, ژ and گ, and its own forms of some characters, which not every Arabic font handles well.
- Check that the font includes the weights you use. Many Arabic fonts have fewer weights than their Latin counterparts.
- Pair the Arabic or Persian font with your Latin font so they look balanced at the same nominal size. Arabic often needs a slightly larger size or adjusted line height to read comfortably.
- Self-host fonts and subset them where licensing allows, to keep pages fast.
Text styling rules that change
- No letter spacing on Arabic text. Adding tracking breaks the connections between letters.
- Be careful with all-caps styles: Arabic has no case, so headings that rely on uppercase for emphasis need a different treatment, such as weight or size.
- Avoid italics for emphasis; most Arabic fonts do not have a true italic, and synthesized slanting looks wrong.
- Increase line height: Arabic letterforms have tall ascenders and deep descenders and diacritics that need space.
Numbers, dates and mixed-direction text
Bidirectional (bidi) text is where subtle bugs live. A sentence in Arabic that contains a product code, an English brand name, a phone number or a price will mix directions, and the browser's bidi algorithm does not always place things where you expect.
Practical rules:
- Wrap embedded opposite-direction content, like product codes or email addresses, in elements with their own
diror use thebdielement. - Decide on a numeral policy. Western digits, Arabic-Indic digits and Persian digits are all in use depending on audience. Be consistent across the site.
- Display phone numbers, prices and codes so they read correctly, and test them with real content.
- Localize date formats, and consider whether your audience uses the Gregorian, Hijri or Solar Hijri calendar for particular contexts.
- Test punctuation at the start and end of mixed strings, which is the most common source of misplaced characters.
Forms in RTL
Forms deserve their own review because they combine direction, input and validation:
- Labels and help text align to the right; error messages appear in the expected position.
- Fields such as email, URL and phone often need
dir="ltr"for input, even on an RTL page, so the text the user types displays correctly. - Validation must accept the digits users actually type. A phone field that rejects Persian or Arabic-Indic digits will lose leads. Normalize digits on the server rather than rejecting them.
- Name fields should allow the full range of characters, and should not assume a Western first-name and last-name structure is always meaningful.
- Placeholder examples should be localized, not just translated.
For broader advice, see our guide to form design that gets completed.
Key takeaway: Good RTL design mirrors direction and sequence, not everything. Build with logical properties, choose fonts that genuinely support the language, handle mixed-direction content deliberately, and make sure forms accept local input.
Imagery, colour and cultural fit
Direction is only one layer of localization. The visual content of an RTL site should also feel right for its audience:
- Choose photography that reflects the people, settings and dress of the region you are addressing, rather than reusing imagery shot for a North American or European audience.
- Avoid images with embedded English text; they cannot be translated or mirrored.
- Check that hand gestures, symbols and colour associations carry the meaning you intend in the target market.
- If a diagram shows a process flowing left to right, redraw it for the RTL version rather than mirroring the exported image.
None of this requires a separate brand. It requires the same care for the Arabic or Persian audience that went into the original.
Bilingual structure and SEO
Most RTL sites are bilingual. The structural decisions affect both usability and search:
- Give each language its own URL, usually a subfolder like
/ar/or/fa/, and connect equivalents with hreflang tags. - Make the language switcher obvious and keep users on the equivalent page when they switch.
- Translate metadata, image alt text, URLs where appropriate, and structured data, not just body text.
- Use native-language copywriting for headlines and calls to action. Literal translation of marketing copy rarely reads well.
Our article on multilingual website development covers architecture and translation workflow in more depth, and the GCC localization guide addresses regional content expectations.
Testing checklist
Before launch, check each RTL template with real content:
- Layout mirrors correctly at mobile, tablet and desktop widths.
- Icons and arrows point the right way.
- Fonts render cleanly with diacritics and long words.
- Mixed English and Arabic or Persian strings display in the right order.
- Forms accept local digits and display LTR fields correctly.
- Third-party widgets such as maps, chat and payment pages support RTL or at least do not break.
- Emails and PDFs generated by the site also respect direction.
Next steps
DigiVort builds bilingual and RTL platforms for companies in the GCC and for Persian-speaking audiences, with direction-aware design systems from the first wireframe. If you need an Arabic or Persian version that feels native rather than translated, see our UI/UX design service or tell us about your markets through the project wizard.


