✨ Working with PDFs, images or videos? Discover 145+ free web apps built for everyday tasks

Direction

A layout wrapper that sets the `dir` attribute and provides direction context to children. Supports explicit LTR/RTL, dynamic detection from language tags, and the `asChild` pattern for flexible composition.

Loading preview...

Examples

Practical examples and common states for the same installable component.

RTL

Explicit right-to-left direction for RTL languages.

examples/direction-rtl.tsx
"use client";
import { Direction } from "@/components/wensity/direction";
export function RTLDemo() {
return (
<Direction direction="rtl">
<div>
<p>محتويات باللغة العربية</p>
<button>إرسال</button>
</div>
</Direction>
);
}

Dynamic

Auto-detects direction from a language tag.

examples/direction-dynamic.tsx
"use client";
import { Direction } from "@/components/wensity/direction";
export function DynamicDemo({ lang }: { lang: string }) {
return (
<Direction dynamic lang={lang}>
<div>
<p>
{lang === "ar"
? "مرحباً بالعالم"
: "Hello, world!"}
</p>
</div>
</Direction>
);
}

Side-by-side

LTR vs RTL comparison of the same component.

examples/direction-comparison.tsx
"use client";
import { Direction } from "@/components/wensity/direction";
export function ComparisonDemo() {
return (
<div className="grid grid-cols-2 gap-4">
<Direction direction="ltr">
<div>Left-to-right content</div>
</Direction>
<Direction direction="rtl">
<div>Right-to-left content</div>
</Direction>
</div>
);
}