Skip to content

Commit 853bda8

Browse files
cedric07francoistibo
authored andcommitted
BFF RTL friendly
1 parent c23b626 commit 853bda8

File tree

13 files changed

+116
-1
lines changed

13 files changed

+116
-1
lines changed

src/js/classes/Header.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import AbstractDomElement from './AbstractDomElement'
22
import each from '../utils/each'
33
import { Tween } from 'oneloop.js'
4+
import isRTL from '../utils/isRTL'
45

56
class Header extends AbstractDomElement {
67
constructor(element, options) {
@@ -28,7 +29,13 @@ class Header extends AbstractDomElement {
2829
duration: 1000,
2930
easing: 'easeInOutExpo',
3031
onUpdate: function (timestamp, tick, percent) {
31-
const direction = window.innerWidth >= 768 ? -1 : 1
32+
const bp = 768
33+
let direction = window.innerWidth >= bp ? -1 : 1
34+
35+
if (isRTL()) {
36+
direction = window.innerWidth >= bp ? 1 : -1
37+
}
38+
3239
menu.style.transform = 'translateX(' + 100 * (percent - 1) * direction + '%)'
3340
},
3441
onComplete: function (timestamp, tick, lastValue) {

src/js/utils/isRTL.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
export default function isRTL() {
2+
return (
3+
document.documentElement.dir === 'rtl' ||
4+
document.documentElement.lang === 'ar' ||
5+
document.documentElement.lang === 'iw'
6+
)
7+
}

src/scss/02-tools/_m-align.scss

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,17 @@
2222

2323
@if ($direction == left) {
2424
margin-right: var(--spacing--block-1);
25+
26+
@include rtl {
27+
margin-right: 0;
28+
margin-left: var(--spacing--block-1);
29+
}
2530
} @else {
2631
margin-left: var(--spacing--block-1);
32+
33+
@include rtl {
34+
margin-right: var(--spacing--block-1);
35+
margin-left: 0;
36+
}
2737
}
2838
}

src/scss/02-tools/_m-checkbox-custom.scss

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
padding-left: $size + 20;
3131
cursor: pointer;
3232

33+
@include rtl {
34+
padding-right: $size + 20;
35+
padding-left: 0;
36+
}
37+
3338
&::before {
3439
position: absolute;
3540
top: 1px;
@@ -40,6 +45,11 @@
4045
content: "";
4146
background-color: $color-light;
4247
border: $border-width solid $color;
48+
49+
@include rtl {
50+
right: 0;
51+
left: auto;
52+
}
4353
}
4454

4555
&::after {
@@ -55,6 +65,12 @@
5565
opacity: 0;
5666
transition: opacity .2s;
5767
transform: translate(-50%, -50%) rotate(-45deg);
68+
69+
@include rtl {
70+
right: math.round(math.div($size, 2));
71+
left: auto;
72+
transform: translate(50%, -50%) rotate(-45deg);
73+
}
5874
}
5975
}
6076
}

src/scss/02-tools/_m-rtl.scss

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,10 @@
2020
@content;
2121
}
2222
}
23+
24+
@mixin set-rtl-direction {
25+
&:lang(ar),
26+
&:lang(iw) {
27+
direction: rtl;
28+
}
29+
}

src/scss/02-tools/_m-select-custom.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@
3131
border-radius: 10px;
3232
appearance: none;
3333

34+
@include rtl {
35+
background-position: left 10px top 50%, 0 0;
36+
}
37+
3438
// Set options to normal weight
3539
option {
3640
font-weight: 400;

src/scss/03-base/_forms.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ $all-text-inputs: assign-inputs($text-inputs-list);
101101
height: 16px;
102102
cursor: pointer;
103103
background-image: get-svg-url("close", $color-dark);
104+
background-repeat: no-repeat;
104105
background-size: contain;
105106
-webkit-appearance: none;
106107
-moz-appearance: none;

src/scss/03-base/_reset.scss

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ h6 {
3939
*/
4040

4141
html {
42+
/* Set automatic RTL direction depending on lang attribute */
43+
@include set-rtl-direction;
44+
4245
/* Apply border-box across the entire page. */
4346
box-sizing: border-box;
4447

src/scss/05-components/_searchform.scss

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@
77

88
&__field[type="search"] {
99
padding-right: var(--spacing--block-1);
10+
11+
@include rtl {
12+
padding-right: 0;
13+
padding-left: var(--spacing--block-1);
14+
}
1015
}
1116

1217
&__submit {

src/scss/05-components/_skip-links.scss

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,10 @@
1818

1919
li:not(:last-of-type) {
2020
margin-right: 1rem;
21+
22+
@include rtl {
23+
margin-right: 0;
24+
margin-left: 1rem;
25+
}
2126
}
2227
}

0 commit comments

Comments
 (0)