Agent skill
rtl-css
RTL (Right-to-Left) CSS for Hebrew and Arabic. Use when building UI that needs RTL support, fixing RTL layout issues, or auditing CSS for RTL compliance.
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/rtl-css
SKILL.md
RTL CSS with Logical Properties
The Golden Rule
NEVER use physical properties. ALWAYS use logical properties.
Property Mapping
| Physical (❌) | Logical (✅) | Tailwind |
|---|---|---|
| padding-left | padding-inline-start | ps-* |
| padding-right | padding-inline-end | pe-* |
| margin-left | margin-inline-start | ms-* |
| margin-right | margin-inline-end | me-* |
| left | inset-inline-start | start-* |
| right | inset-inline-end | end-* |
| text-align: left | text-align: start | text-start |
| text-align: right | text-align: end | text-end |
| border-left | border-inline-start | border-s-* |
| border-right | border-inline-end | border-e-* |
Tailwind Examples
tsx
// ❌ WRONG - Breaks in RTL
<div className="pl-4 pr-2 ml-auto text-left border-l-2">
// ✅ CORRECT - Works everywhere
<div className="ps-4 pe-2 ms-auto text-start border-s-2">
Next.js Layout with RTL
typescript
// app/[locale]/layout.tsx
import { isRtlLang } from 'rtl-detect';
export default function LocaleLayout({
children,
params: { locale },
}) {
const dir = isRtlLang(locale) ? 'rtl' : 'ltr';
return (
<html lang={locale} dir={dir}>
<body>{children}</body>
</html>
);
}
Icon Flipping
tsx
// Directional icons need flip
<ChevronRight className="rtl:rotate-180" />
<ArrowRight className="rtl:rotate-180" />
<ArrowLeft className="rtl:rotate-180" />
// Universal icons - don't flip
<Check /> <X /> <Search /> <Menu /> <Home />
Audit Command
Run scripts/audit_rtl.sh to find violations in your codebase.
Checklist
- All padding uses ps-/pe-
- All margins uses ms-/me-
- Positioning uses start-/end-
- Text uses text-start/text-end
- Directional icons have rtl:rotate-180
- Layout has dir attribute
Didn't find tool you were looking for?