Fix #6 RTL support with Logical properties #2882
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #6.
This is a new feature.
Proposed solution
A lot of help from https://www.rtlstyling.com/
This PR adds RTL support by making use of CSS Logical Properties, specifically:
margin-inline-start
margin-inline-end
padding-inline-start
padding-inline-end
border-inline-start
Because other properties like
border-start-start-radius
orinset-inline-start
are still poorly supported (< 75%), this PR also introduces 4 mixins:=ltr
which only outputs content if$rtl
is false=rtl
which only outputs content if$rtl
is true=inset-inline-start($spacing)
as a replacement forinset-inline-start
=inset-inline-end($spacing)
as a replacement forinset-inline-end
And a new flag:
$rtl
set tofalse
by default.This means you can build a RTL version of Bulma by simply setting the flag to
true
and importing Bulma:As a result, 3 new CSS files exist:
bulma-rtl.css
bulma-rtl.css.map
bulma-rtl.min.css
Tradeoffs
Where
margin-right
was, there is nowmargin-inline-end
. So compatibility is slightly reduced, but still > 90%.Only properties highly supported by browsers were used directly.
Testing Done
Adding
<html dir="rtl">
to pages and seeing the result.Changelog updated?
No.