JGuang / JGuang UI

从右到左布局

本页提供 JGuang UI 技术内容、中文导航与术语适配。

中文模式已适配导航、标题、简介、目录与常用章节名称。翻译状态:部分完成;技术正文目前仍为英文。

JGuang UI components have first-class support for right-to-left (RTL) layouts. Text alignment, positioning, and directional styles automatically adapt for languages like Arabic, Hebrew, and Persian.

Component preview · Base UI
card-rtl

When you install components, the CLI automatically transforms physical positioning classes to logical equivalents, so your components work seamlessly in both LTR and RTL contexts.

Get Started

Select your framework to get started with RTL support.

Next.js

Vite

TanStack Start

How it works

When you add components with rtl: true set in your components.json, the JGuang UI CLI automatically transforms classes and props to be RTL compatible:

  • Physical positioning classes like left-* and right-* are converted to logical equivalents like start-* and end-*.
  • Directional props are updated to use logical values.
  • Text alignment and spacing classes are adjusted accordingly.
  • Supported icons are automatically flipped using rtl:rotate-180.

Try it out

Click the link below to open a Next.js project with RTL support in v0.

Open in v0

Supported Styles

Automatic RTL transformation via the CLI is only available for projects created using JGuang UI Registry with the new styles (base-nova, radix-nova, etc.).

For other styles, see the Migration Guide.

Font Recommendations

For the best RTL experience, we recommend using fonts that have proper support for your target language. Noto is a great font family for this and it pairs well with Inter and Geist.

See your framework's RTL guide under Get Started for details on installing and configuring RTL fonts.

Animations

The CLI also handles animation classes, automatically transforming physical directional animations to their logical equivalents. For example, slide-in-from-right becomes slide-in-from-end.

This ensures animations like dropdowns, popovers, and tooltips animate in the correct direction based on the document's text direction.

A note on tw-animate-css:

There is a known issue with the tw-animate-css library where the logical slide utilities are not working as expected. For now, make sure you pass in the dir prop to portal elements.

<Popover>
  <PopoverTrigger>Open</PopoverTrigger>
  <PopoverContent dir="rtl">
    <div>Content</div>
  </PopoverContent>
</Popover>
<Tooltip>
  <TooltipTrigger>Open</TooltipTrigger>
  <TooltipContent dir="rtl">
    <div>Content</div>
  </TooltipContent>
</Tooltip>

Migrating existing components

If you have existing components installed before enabling RTL, you can migrate them using the CLI as follows:

Run the migrate command

Use the JGuang UI Registry URL provided on /systems/jguang-ui#install.

[path] accepts a path or glob pattern to migrate. If you don't provide a path, it will migrate all the files in the ui directory.

Manual Migration (Optional)

The following components are not automatically migrated by the CLI. Follow the RTL support section for each component to manually migrate them.

Migrate Icons

Some icons like ArrowRightIcon or ChevronLeftIcon might need the rtl:rotate-180 class to be flipped correctly. Add the rtl:rotate-180 class to the icon component to flip it correctly.

<ArrowRightIcon className="rtl:rotate-180" />

Add direction component

Add the direction component to your project.

Use the JGuang UI Registry URL provided on /systems/jguang-ui#install.

Add DirectionProvider

Follow your framework's documentation for details on how to add the DirectionProvider component to your project.

See the Get Started section for details on how to add the DirectionProvider component to your project.

来源: rtl/index.mdx

JGuang UI 技术文档。

On this page