You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
NavBar: layout does not switch to RTL for RTL locales #45
Selecting an RTL locale in NavBar translates the link labels but leaves the layout left-to-right. With ar selected in the docs demo:
The logo stays on the left, links read left to right, and the language/GitHub/CTA group stays on the right.
The language menu is pinned with a physical right-0 (src/registry/components/navbar.tsx:161), so it doesn't mirror.
Option labels in the language menu render centered instead of start-aligned (the option <button> has no text-start, so the label inherits the button's default centering).
NavBar never sets dir. LanguageSwitcher already derives it from the active locale (activeLocale?.rtl ?? isRtl(locale)).
Expected
NavBar sets dir="rtl" on the <nav> when the active locale is RTL, using the same rule as LanguageSwitcher (Locale.rtl override first, then isRtl from locale-data). An explicit dir prop wins.
Layout mirrors via logical utilities: end-0/start-0 instead of right-0/left-0, ms-*/me-* instead of ml-*/mr-*, and text-start on option labels. This applies to the desktop bar, the mobile bar, the mobile menu and the language dropdown.
Each option keeps its own dir, so mixed-script lists read correctly.
Acceptance
Selecting ar flips the whole bar. Selecting en flips it back.
Language dropdown opens aligned to the trigger's inline-end edge in both directions.
Option labels are start-aligned in LTR and RTL.
dir prop overrides the locale-derived direction.
Tests for: dir on <nav> for an RTL locale, the Locale.rtl override (rtl: true / rtl: false), and the explicit dir prop.
Screenshots: LTR and RTL, desktop and ~390px, light and dark.
Activity
fix(navbar): mirror layout for RTL locales (babelize#52)