ui
ui copied to clipboard
How to Apply RTL Support to Shadcn Components in Next.js ?
I'm using Shadcn in Next.js. How can I apply RTL (right-to-left) support to Shadcn components?
File: layout.tsx
import type { Metadata } from "next";
import "../globals.css";
import localFont from "next/font/local";
import { Provider } from "../../providers";
import { NextIntlClientProvider, useMessages } from "next-intl";
const iranSansFont = localFont({
src: "../../fonts/iranSans.woff2",
display: "swap",
variable: "--font-iranSans",
});
export const metadata: Metadata = {
title: "Create Next App",
description: "Generated by create next app",
};
export default function RootLayout({
children,
params: { locale },
}: Readonly<{
children: React.ReactElement;
params: { locale: string };
}>) {
const messages = useMessages();
return (
<html lang={locale} dir={locale === "fa" ? "rtl" : "ltr"}>
<body
className={`${iranSansFont.className} bg-background text-foreground px-4 py-4 font-bold`}
>
<NextIntlClientProvider locale={locale} messages={messages}>
<Provider>{children}</Provider>
</NextIntlClientProvider>
</body>
</html>
);
}