tailwindcss-rtl
Introduction
Internationalization in semitic languages needs more than just translating texts, you would also need to mirror the layout horizontally.
This can be done by adding dir="rtl"
the the layout body
tag, but this is propably not be enough and you will need to create a different style for RTL.
With tailwindcss-rtl plugin you will be able to support both RTL and LTR in the same style.
Live demo
Full live demo based on the official tailwindcss course project is available here:
Usage
Replace all utilities based on Right/Left with the new utilities specified below.
for example when you create an LTR layout and you would like to add left padding to an element you would normaly use pl-6
, left is the start direction in LTR so you will replace it with ps-6
.
Now add dir="rtl"
or dir="ltr"
attribute to your top level layout element:
<body dir="rtl">
Note: for all utilities to work as expected adding the dir attribute (both "rtl"/"ltr") to a top level tag is mandatory), even when "ltr" is assumed to be default.
Installation
Install tailwindcss-rtl package:
# Yarn
yarn add tailwindcss-rtl --dev
# NPM
npm install tailwindcss-rtl --save-dev
Require tailwindcss-rtl
in the project tailwind.config.js
file:
plugins: [
require('tailwindcss-rtl'),
],
Utilities
*tailwindcss-rtl adds the start and end notations as substitue for left and right.
Class | Description |
---|---|
ps-[X] | padding on start direction |
pe-[X] | padding on end direction |
ms-[X] | margin on start direction |
me-[X] | margin on end direction |
text-start | text aligned at the start direction |
text-end | text aligned at the end direction |
float-start | float to start direction |
float-end | float to end direction |
start-[X] | placement of positioned elements on start |
end-[X] | placement of positioned elements on end |
clear-start | clear to start direction |
clear-end | clear to end direction |
rounded-s-[X] | rounded borders on start direction |
rounded-e-[X] | rounded borders on end direction |
rounded-ts-[X] | rounded borders on top start direction |
rounded-te-[X] | rounded borders on top end direction |
rounded-bs-[X] | rounded borders on bottom start direction |
rounded-be-[X] | rounded borders on bottom end direction |
border-s-[X] | border width on start direction |
border-e-[X] | bordern width on end direction |
space-s-[X] | space between child |
divide-s-[X] | border width between child elements |