#分页
Pagination 提供紧凑的分页导航与明确的当前页状态。Office 样式在精确指针下使用 32px 控件,并在粗指针下保留 44px 触控目标。
第 2 页
安装Terminal
npm install @a3s-lab/ui@0.4.1<nav class="pagination" aria-label="分页">
<ul>
<li>
<a href="?page=1" class="btn" data-variant="ghost" aria-label="上一页">
<svg data-rtl-flip ...></svg>
<span data-pagination-label>上一页</span>
</a>
</li>
<li><a href="?page=1" class="btn" data-variant="ghost" data-size="icon" aria-label="第 1 页">1</a></li>
<li><a href="?page=2" class="btn" data-variant="outline" data-size="icon" aria-label="第 2 页" aria-current="page">2</a></li>
<li><a href="?page=3" class="btn" data-variant="ghost" data-size="icon" aria-label="第 3 页">3</a></li>
<li><span data-pagination-ellipsis aria-hidden="true"><svg ...></svg></span></li>
<li>
<a href="?page=3" class="btn" data-variant="ghost" aria-label="下一页">
<span data-pagination-label>下一页</span>
<svg data-rtl-flip ...></svg>
</a>
</li>
</ul>
</nav>import "@a3s-lab/ui/a3s.css";
import "@a3s-lab/ui/all";#用法
引入 CSS
导入 Tailwind 和一个完整的 A3S UI 样式包。
@import "tailwindcss";
@import "@a3s-lab/ui/a3s.css";或者只导入基本CSS、分页组件CSS和一个样式包。
@import "tailwindcss";
@import "@a3s-lab/ui/base.css";
@import "@a3s-lab/ui/components/pagination.css";
@import "@a3s-lab/ui/components/button.css";
@import "@a3s-lab/ui/styles/a3s.css";Pagination 组件将专用布局契约与 Button 控件组合使用。
使用CDN或批量程序导入?请参见安装页。
添加分页 HTML
使用专用根类、列表、页面链接和 aria-current="page":
<nav class="pagination" aria-label="分页">
<ul>
<li>
<a href="?page=1" class="btn" data-variant="ghost" aria-label="上一页">
<svg data-rtl-flip ...></svg>
<span data-pagination-label>上一页</span>
</a>
</li>
<li><a href="?page=1" class="btn" data-variant="ghost" data-size="icon" aria-label="第 1 页">1</a></li>
<li><a href="?page=2" class="btn" data-variant="outline" data-size="icon" aria-label="第 2 页" aria-current="page">2</a></li>
<li><a href="?page=3" class="btn" data-variant="ghost" data-size="icon" aria-label="第 3 页">3</a></li>
<li><span data-pagination-ellipsis aria-hidden="true"><svg ...></svg></span></li>
<li>
<a href="?page=3" class="btn" data-variant="ghost" aria-label="下一页">
<span data-pagination-label>下一页</span>
<svg data-rtl-flip ...></svg>
</a>
</li>
</ul>
</nav>#示例
#RTL
分页使用文档方向和逻辑间距。在分页根或父级上设置 dir="rtl"。
<nav dir="rtl" class="pagination" aria-label="ترقيم الصفحات">
<ul>
<li>
<a href="#" class="btn" data-variant="ghost">
<svg class="lucide lucide-chevron-right" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m9 18 6-6-6-6" /></svg>
<span data-pagination-label>السابق</span>
</a>
</li>
<li><a href="#" class="btn" data-variant="ghost" data-size="icon">١</a></li>
<li><a href="#" class="btn" data-variant="outline" data-size="icon" aria-current="page">٢</a></li>
<li><a href="#" class="btn" data-variant="ghost" data-size="icon">٣</a></li>
<li><span data-pagination-ellipsis aria-hidden="true"><svg class="size-4 shrink-0 lucide lucide-ellipsis" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="1" /><circle cx="19" cy="12" r="1" /><circle cx="5" cy="12" r="1" /></svg></span></li>
<li>
<a href="#" class="btn" data-variant="ghost">
<span data-pagination-label>التالي</span>
<svg class="lucide lucide-chevron-left" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m15 18-6-6 6-6" /></svg>
</a>
</li>
</ul>
</nav>