Welcome to Vanilla Breeze
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
Isolates text that might be formatted in a different direction from surrounding text.
The <bdi> (Bidirectional Isolate) element tells the browser's bidirectional algorithm to treat the text it contains in isolation from its surrounding text. This is essential when embedding user-generated content or any text whose direction is unknown.
Without <bdi>, a username in Arabic or Hebrew could cause surrounding punctuation and numbers to display incorrectly due to the Unicode Bidirectional Algorithm treating it as part of a right-to-left sequence.
VB's i18n stylesheet sets unicode-bidi: isolate on [dir="auto"] elements, complementing the native bdi behavior.
<bdo dir="..."> insteaddir="rtl" or dir="ltr" on the container<p>User <bdi>إيان</bdi> posted 3 comments.</p>
<ul> <li><bdi>Alice</bdi>: 15 points</li> <li><bdi>محمد</bdi>: 12 points</li> <li><bdi>Bob</bdi>: 10 points</li> <li><bdi>יעקב</bdi>: 8 points</li></ul>
The difference becomes clear when RTL text is embedded without isolation. Without <bdi>, the colon and numbers may appear in unexpected positions:
<!-- Without bdi - text direction issues --><p>User محمد posted 3 comments.</p> <!-- With bdi - properly isolated --><p>User <bdi>محمد</bdi> posted 3 comments.</p>
Always wrap user-generated content in <bdi> when the text direction is unknown:
<p> Latest comment by <bdi class="username"><!-- dynamic --></bdi>: <bdi class="comment"><!-- dynamic --></bdi></p>
| Element | Purpose | Direction |
|---|---|---|
<bdi> |
Isolate — let the browser detect direction | Defaults to auto |
<bdo> |
Override — force a specific direction | Requires dir="rtl" or dir="ltr" |
Supports global attributes. The dir attribute defaults to auto on <bdi> elements, meaning the direction is determined by the element's content.
bdi { unicode-bidi: isolate; /* browser default */}
VB does not add additional styling. The element's value is purely in its Unicode isolation behavior.
<bdi> has no special accessibility role. It affects visual rendering only. Screen readers read the content in logical order regardless of visual direction.
<bdo> — Forces a specific text direction (override)<q> — Inline quotations with locale-aware quote marks