---
title: 双向布局(RTL)
description: 让组件跟随从右到左的书写方向,以及哪些地方刻意不镜像
---
# 双向布局(RTL)
组件库同时支持 LTR / RTL。镜像的原则只有一条:**跟随行内方向**(inline direction),
而不是「左边换成右边」的粗暴翻转。
## 怎么开启
**整站(推荐)**:宿主在 `` 上声明方向,组件零配置跟随:
```html
```
视觉镜像完全由 CSS 的 `[dir='rtl']` 选择器驱动;需要方向语义的 JS 逻辑
(浮层对齐轴、键盘左右键)由 `useDirection()` 读取 —— 它会观察
`documentElement` 的 `dir` / `class` / `style`,运行时切换也能跟上。
**局部子树**:同一页里既有 LTR 又有 RTL 时,用 `G3ConfigProvider`:
```vue
…
```
它会把 `dir` 挂到子树根,同时通过 `provide` 下发。这条路径**在 SSR 首帧就生效**,
不受「挂载后才能探测 DOM」影响,是服务端渲染场景的首选。
**组件树外**:`G3Message` / `G3Notification` 这类拿不到 `inject` 的实例走全局兜底:
```ts
G3UI.config({ direction: 'rtl' })
```
优先级:`ConfigProvider` → 全局配置 → 文档方向(``)→ `ltr`。
## 写组件样式的规矩
镜像靠**逻辑属性**实现,组件 `