This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
The unicode-bidi CSS property, together with the direction property, determines how bidirectional text in a document is handled. For example, if a block of content contains both left-to-right and right-to-left text, the user-agent uses a complex Unicode algorithm to decide how to display the text. The unicode-bidi property overrides this algorithm and allows the developer to control the text embedding.
unicode-bidi: normal;
unicode-bidi: bidi-override;
unicode-bidi: plaintext;
unicode-bidi: isolate-override;
<section class="default-example" id="default-example">
<p class="transition-all" id="example-element">
בְּרֵאשִׁ֖ית בָּרָ֣א אֱלֹהִ֑ים אֵ֥ת הַשָּׁמַ֖יִם וְאֵ֥ת הָאָֽרֶץ.
</p>
</section>
The unicode-bidi and direction properties are the only properties that are not affected by the all shorthand.
Warning: This property is intended for Document Type Definition (DTD) designers. Web designers and similar authors should not override it.
/* Keyword values */ unicode-bidi: normal; unicode-bidi: embed; unicode-bidi: isolate; unicode-bidi: bidi-override; unicode-bidi: isolate-override; unicode-bidi: plaintext; /* Global values */ unicode-bidi: inherit; unicode-bidi: initial; unicode-bidi: revert; unicode-bidi: revert-layer; unicode-bidi: unset;
normalThe element does not offer an additional level of embedding with respect to the bidirectional algorithm. For inline elements, implicit reordering works across element boundaries.
embedIf the element is inline, this value opens an additional level of embedding with respect to the bidirectional algorithm. The direction of this embedding level is given by the direction property.
bidi-overrideFor inline elements this creates an override. For block container elements this creates an override for inline-level descendants not within another block container element. This means that inside the element, reordering is strictly in sequence according to the direction property; the implicit part of the bidirectional algorithm is ignored.
isolateThis keyword indicates that the element's container directionality should be calculated without considering the content of this element. The element is therefore isolated from its siblings. When applying its bidirectional-resolution algorithm, its container element treats it as one or several U+FFFC Object Replacement Character, i.e., like an image.
isolate-overrideThis keyword applies the isolation behavior of the isolate keyword to the surrounding content and the override behavior of the bidi-override keyword to the inner content.
plaintextThis keyword makes the elements directionality calculated without considering its parent bidirectional state or the value of the direction property. The directionality is calculated using the P2 and P3 rules of the Unicode Bidirectional Algorithm. This value allows the display of data that is already formatted using a tool following the Unicode Bidirectional Algorithm.
| Initial value | normal |
|---|---|
| Applies to | all elements, though some values have no effect on non-inline elements |
| Inherited | no |
| Computed value | as specified |
| Animation type | Not animatable |
unicode-bidi =
normal |
embed |
isolate |
bidi-override |
isolate-override |
plaintext
.bible-quote {
direction: rtl;
unicode-bidi: embed;
}
<div class="bible-quote">A line of text</div> <div>Another line of text</div>
| Specification |
|---|
| CSS Writing Modes Level 4> # unicode-bidi> |
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on IOS | Samsung Internet | WebView Android | WebView on iOS | |
unicode-bidi |
2 | 12 | 1 | 9.2 | 1.3 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 | 1 |
bidi-override |
2 | 12 | 1 | 15 | 1.3 | 18 | 4 | 14 | 1 | 1.0 | 4.4 | 1 |
embed |
2 | 12 | 1 | 15 | 1.3 | 18 | 4 | 14 | 1 | 1.0 | 4.4 | 1 |
isolate |
4816["Before Chrome 47,-webkit-isolate could lock up the browser.", "Since Chrome 19, the syntax from a previous version of the specification, where the isolate keyword could be used together with bidi-override, is allowed."] |
7979 | 5010–54From Firefox 10 to Firefox 16 (inclusive), theisolate keyword could be used together with bidi-override, which was the syntax from a previous version of the specification. From Firefox 17, only one value is allowed. Use isolate-override instead the previous isolate bidi-override. |
3515["Before Opera 34,-webkit-isolate could lock up the browser.", "Since Opera 15, the syntax from a previous version of the specification, where the isolate keyword could be used together with bidi-override, is allowed."] |
116Before Safari 9,-webkit-isolate could lock up the browser. |
48 | 5010–54From Firefox for Android 10 to Firefox for Android 16 (inclusive), theisolate keyword could be used together with bidi-override, which was the syntax from a previous version of the specification. From Firefox for Android 17, only one value is allowed. Use isolate-override instead the previous isolate bidi-override. |
35 | 116Before Safari on iOS 9,-webkit-isolate could lock up the browser. |
5.0 | 48 | 116Before WebView on iOS 9,-webkit-isolate could lock up the browser. |
isolate-override |
48 | 79 | 5017–54 | 35 | 117 | 48 | 5017–54 | 35 | 117 | 5.0 | 48 | 117 |
normal |
2 | 12 | 1 | 15 | 1.3 | 18 | 4 | 14 | 1 | 1.0 | 4.4 | 1 |
plaintext |
48 | 79 | 5010–54["Before Firefox 50, theplaintext value was ignored for vertical writing modes (bug 1302734).", "Before Firefox 15, plaintext didn't do anything to an inline element. The specification changed and the implementation was changed in Firefox 15."] |
35 | 116 | 48 | 5010–54["Before Firefox for Android 50, theplaintext value was ignored for vertical writing modes (bug 1302734).", "Before Firefox for Android 15, plaintext didn't do anything to an inline element. The specification changed and the implementation was changed in Firefox for Android 15."] |
35 | 116 | 5.0 | 48 | 116 |
directionunicode-bidi attribute
© 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/unicode-bidi