UI mirroring overview
The main difference between left-to-right (LTR) and right-to-left (RTL) language scripts is the direction in which content is displayed:
- LTR languages display content from left to right
- RTL languages display content from right to left
RTL content also affects the direction in which some icons and images are displayed, particularly those depicting a sequence of events.
In general, the passage of time is depicted as left to right for LTR languages, and right to left for RTL languages.
Element | LTR | RTL |
Text | Sentences are read from left to right. | Sentences are read from right to left. |
Timeline | An illustrated sequence of events progresses left to right. | An illustrated sequence of events progresses right to left. |
Imagery | An arrow pointing left to right indicates forward motion: → | An arrow pointing right to left indicates forward motion: ← |
The passage of time is depicted from left to right for LTR languages, and from right to left for RTL languages.
When a UI is changed from LTR to RTL (or vice-versa), it’s often called mirroring. An RTL layout is the mirror image of an LTR layout, and it affects layout, text, and graphics.
When a UI changes from one direction to another, these items are not mirrored:
- Numbers
- Untranslated text (even if it’s part of a phrase)
Text should always be in the correct direction for the language it’s in. For example, any LTR words, such as a URL, will continue to be shown in an LTR format, even if the rest of the UI is in RTL.
When a UI is mirrored, these changes occur:
- Text fields icons are displayed on the opposite side of a field
- Navigation buttons are displayed in reverse order
- Icons that communicate direction, like arrows, are mirrored
- Text (if it is translated to an RTL language) is aligned to the right
These items are not mirrored:
- Icons that do not communicate direction, such as a camera
- Numbers, such as the clock and phone numbers
- Charts and graphs