Upagination arrows in RTL are not in correct order
Open
Nobody has claimed this yet.
triage
- Dominant language
- TypeScript
- Stars
- 6.9k
- Forks
- 1.1k
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 57
Description
Environment
| Operating system | Windows 10.0.19045 |
| CPU | AMD Ryzen 3 PRO 4350G with Radeon Graphics (8 cores) |
| Node.js version | v24.14.0 |
| nuxt/cli version | 3.34.0 |
| Package manager | npm@11.9.0 |
| Nuxt version | 4.4.2 |
| Nitro version | 2.13.3 |
| Builder | vite@7.3.2 |
| Config | app, compatibilityDate, css, devtools, modules, ssr |
| Modules | @nuxt/ui@4.7.1 |
Is this bug related to Nuxt or Vue?
Nuxt
Package
v4.x
Version
4.7.1
Reproduction
depecdencies :
"@nuxt/ui": "^4.7.1",
"nuxt": "^4.4.2",
"tailwindcss": "^4.2.4"
//app.vue
<template>
<div dir="rtl">
<NuxtLayout>
<UApp>
<NuxtPage/>
</UApp>
</NuxtLayout>
</div>
</template>
main.css
@import "tailwindcss";
@import "@nuxt/ui";
*{
direction: rtl !important;
}
nuxt.config.ts
export default defineNuxtConfig({
compatibilityDate: '2025-07-15',
devtools: { enabled: true },
ssr:false,
modules:['@nuxt/ui'],
css:['~/assets/css/main.css'],
app: {
head: {
htmlAttrs: {
dir: 'rtl',
lang: 'fa'
}
}
}
})
index.vue
<div class="flex justify-center border-t border-default pt-4 px-4">
<UPagination
v-model:page="currentPage"
:total="data?.meta?.totalItems"
:to="to"
/>
</div>
Description
hi there
so Upagination right and left arrows are misplaced the functionality is ok ... this is what its like now :
rtl upagination
how should be :
RTL UPagination expected behavior
Additional context
No response
Logs
Update
Temperory Solution
<UPagination
v-model:page="currentPage"
:total="data?.meta?.totalItems"
:to="to"
next-icon="lucide:chevron-left"
prev-icon="lucide:chevron-right"
first-icon="lucide:chevrons-right"
last-icon="lucide:chevrons-left"
/>
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the issue with the RTL setup in app.vue, main.css, nuxt.config.ts, and index.vue, using the UPagination example and its temporary icon overrides as a reference. Inspect the UPagination implementation and related tests if present; done means the first, previous, next, and last arrows appear in the expected RTL order while pagination still works.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- nuxt, tailwindcss, typescript
- Domain
- frontend, internationalization
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 50/100