This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2020.
The text-orientation CSS property sets the orientation of the text characters in a line. It only affects text in vertical mode (when writing-mode is not horizontal-tb). It is useful for controlling the display of languages that use vertical script, and also for making vertical table headers.
writing-mode: vertical-rl; text-orientation: mixed;
writing-mode: vertical-rl; text-orientation: upright;
<section class="default-example" id="default-example">
<div class="transition-all" id="example-element">
<p>
In another moment down went Alice after it, never once considering how in
the world she was to get out again.
</p>
</div>
</section>
/* Keyword values */ text-orientation: mixed; text-orientation: upright; text-orientation: sideways-right; text-orientation: sideways; text-orientation: use-glyph-orientation; /* Global values */ text-orientation: inherit; text-orientation: initial; text-orientation: revert; text-orientation: revert-layer; text-orientation: unset;
The text-orientation property is specified as a single keyword from the list below.
mixedRotates the characters of horizontal scripts 90° clockwise. Lays out the characters of vertical scripts naturally. Default value.
uprightLays out the characters of horizontal scripts naturally (upright), as well as the glyphs for vertical scripts. Note that this keyword causes all characters to be considered as left-to-right: the used value of direction is forced to be ltr.
sidewaysCauses characters to be laid out as they would be horizontally, but with the whole line rotated 90° clockwise.
sideways-rightAn alias to sideways that is kept for compatibility purposes.
use-glyph-orientationOn SVG elements, this keyword leads to use the value of the deprecated SVG properties glyph-orientation-vertical and glyph-orientation-horizontal.
| Initial value | mixed |
|---|---|
| Applies to | all elements, except table row groups, rows, column groups, and columns |
| Inherited | yes |
| Computed value | as specified |
| Animation type | Not animatable |
text-orientation =
mixed |
upright |
sideways
<p>Lorem ipsum dolet semper quisquam.</p>
p {
writing-mode: vertical-rl;
text-orientation: upright;
}
| Specification |
|---|
| CSS Writing Modes Level 4> # text-orientation> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
text-orientation |
4812 | 7979 | 41 | 3515 | 145.1 | 4818 | 41 | 3514 | 145 | 5.01.0 | 484.4 | 145 |
mixed |
48 | 79 | 41 | 35 | ≤13.1 | 48 | 41 | 35 | ≤13.4 | 5.0 | 48 | ≤13.4 |
sideways |
12≤83 | 79≤83 | 44≤72 | 15≤69 | 7 | 18≤83 | 44≤79 | 14≤59 | 7 | 1.0≤13.0 | 4.4≤83 | 7 |
upright |
12 | 79 | 41 | 15 | ≤13.1 | 18 | 41 | 14 | ≤13.4 | 1.0 | 4.4 | ≤13.4 |
writing-mode, text-combine-upright, and unicode-bidi.
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/text-orientation