diff --git a/app/javascript/mastodon/features/ui/components/media_modal.jsx b/app/javascript/mastodon/features/ui/components/media_modal.jsx
index ed782aefe6..0190148555 100644
--- a/app/javascript/mastodon/features/ui/components/media_modal.jsx
+++ b/app/javascript/mastodon/features/ui/components/media_modal.jsx
@@ -168,8 +168,8 @@ class MediaModal extends ImmutablePureComponent {
const index = this.getIndex();
- const leftNav = media.size > 1 && ;
- const rightNav = media.size > 1 && ;
+ const leftNav = media.size > 1 && ;
+ const rightNav = media.size > 1 && ;
const content = media.map((image, idx) => {
const width = image.getIn(['meta', 'original', 'width']) || null;
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index c56fbd6365..89f71ef938 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -5850,6 +5850,7 @@ a.status-card {
position: absolute;
top: 0;
bottom: 0;
+ transform: scaleX(var(--text-x-direction));
&:hover,
&:focus,
@@ -5858,11 +5859,11 @@ a.status-card {
}
}
-.media-modal__nav--left {
+.media-modal__nav--prev {
inset-inline-start: 0;
}
-.media-modal__nav--right {
+.media-modal__nav--next {
inset-inline-end: 0;
}
diff --git a/app/javascript/styles/mastodon/css_variables.scss b/app/javascript/styles/mastodon/css_variables.scss
index 413efca3f6..4390a917bf 100644
--- a/app/javascript/styles/mastodon/css_variables.scss
+++ b/app/javascript/styles/mastodon/css_variables.scss
@@ -35,3 +35,12 @@
--input-background-color: var(--surface-variant-background-color);
--on-input-color: #{$secondary-text-color};
}
+
+body {
+ // Variable for easily inverting directional UI elements,
+ --text-x-direction: 1;
+
+ &.rtl {
+ --text-x-direction: -1;
+ }
+}