diff --git a/src/components/chat/ui/ChatInput.tsx b/src/components/chat/ui/ChatInput.tsx
index df1062d55..d3ffe7151 100644
--- a/src/components/chat/ui/ChatInput.tsx
+++ b/src/components/chat/ui/ChatInput.tsx
@@ -116,6 +116,9 @@ const container = css`
right: unset;
bottom: unset;
background-color: transparent;
+ [dir='rtl'] & {
+ transform: scaleX(-1);
+ }
}
.sendbird-message-input--attach {
right: unset;
diff --git a/src/components/chat/ui/ChatMessageList.tsx b/src/components/chat/ui/ChatMessageList.tsx
index 3db73c2d6..fd05608e3 100644
--- a/src/components/chat/ui/ChatMessageList.tsx
+++ b/src/components/chat/ui/ChatMessageList.tsx
@@ -149,5 +149,5 @@ const dateSeparatorMargin = css`
const scrollBottomPosition = css`
position: absolute;
bottom: 20px;
- right: 20px;
+ inset-inline-end: 20px;
`;
diff --git a/src/components/messages/CarouselMessage.tsx b/src/components/messages/CarouselMessage.tsx
index baa294e46..7b78c85a6 100644
--- a/src/components/messages/CarouselMessage.tsx
+++ b/src/components/messages/CarouselMessage.tsx
@@ -11,7 +11,7 @@ import { SnapCarousel } from '../ui/SnapCarousel';
const listPadding = 16;
const avatarSize = 28;
const avatarMargin = 8;
-const leftMargin = avatarSize + avatarMargin + listPadding;
+const startMargin = avatarSize + avatarMargin + listPadding;
const BodyWrapper = styled.div({
display: 'flex',
@@ -49,7 +49,7 @@ const Image = styled.img`
background-color: ${({ theme }) => theme.bgColor.carouselItem};
`;
-const Button = styled.button<{ direction: 'left' | 'right' }>(({ theme, direction }) => ({
+const Button = styled.button<{ direction: 'start' | 'end' }>(({ theme, direction }) => ({
display: 'flex',
justifyContent: 'center',
alignItems: 'center',
@@ -58,14 +58,23 @@ const Button = styled.button<{ direction: 'left' | 'right' }>(({ theme, directio
transform: 'translateY(-50%)',
border: 'none',
cursor: 'pointer',
- borderRadius: direction === 'right' ? '100px 0px 0px 100px' : '0px 100px 100px 0px',
- padding: direction === 'right' ? '8px 8px 8px 12px' : '8px 12px 8px 8px',
+ borderStartStartRadius: direction === 'start' ? 0 : 100,
+ borderStartEndRadius: direction === 'end' ? 0 : 100,
+ borderEndStartRadius: direction === 'start' ? 0 : 100,
+ borderEndEndRadius: direction === 'end' ? 0 : 100,
+ paddingTop: 8,
+ paddingBottom: 8,
+ paddingInlineStart: direction === 'end' ? 12 : 8,
+ paddingInlineEnd: direction === 'start' ? 12 : 8,
backgroundColor: theme.bgColor.carouselButton,
boxShadow:
'0px 8px 10px 1px rgba(13, 13, 13, 0.12), 0px 3px 14px 2px rgba(13, 13, 13, 0.08), 0px 3px 5px -3px rgba(13, 13, 13, 0.04)',
'&:hover': {
backgroundColor: theme.bgColor.hover.carouselButton,
},
+ '[dir=rtl] & svg': {
+ transform: 'scaleX(-1)',
+ },
}));
type Props = {
@@ -85,20 +94,20 @@ export const CarouselMessage = ({ streaming, textBody, streamingBody, items }: P
return (
shouldRenderButtons && (
<>
{activeIndex !== 0 && (
-