/* For headings */ .arabic-text.heading font-weight: 700; letter-spacing: -0.01em;
// components/ArabicText.jsx import React from 'react'; const ArabicText = ( children, className, ...props ) => return ( <span dir="rtl" lang="ar" className= arabic-text $className ...props > children </span> ); ; Arabic Text.jsx
/* For small UI elements */ .arabic-text.ui-text font-size: 0.875rem; line-height: 1.4; /* For headings */
return ( <span dir="rtl" lang="ar" ...props> formattedContent </span> ); ; const ArabicText = ( children, ...props ) => // Automatically handle mixed LTR/RTL content const wrappedChildren = React.Children.map(children, child => if (typeof child === 'string') // Wrap English/LTR segments in bdi tags const parts = child.split(/([a-zA-Z0-9\s]+)/); return parts.map((part, i) => if (/[a-zA-Z]/.test(part)) return <bdi key=i>part</bdi>; return part; ); return child; ); return ( <span dir="rtl" lang="ar" ...props> wrappedChildren </span> ); ; 3. With Font Optimization Hook import React, useEffect, useState from 'react'; const useArabicFont = () => const [fontLoaded, setFontLoaded] = useState(false); // components/ArabicText.jsx import React from 'react'
return String(text).replace(/\d/g, (digit) => westernToEastern[digit]); ;