PHPackages                             mrshanebarron/pagination - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. mrshanebarron/pagination

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

mrshanebarron/pagination
========================

Pagination component for Laravel - supports Livewire and Vue

v1.0.5(4mo ago)013MITVuePHP ^8.1

Since Dec 14Pushed 4mo agoCompare

[ Source](https://github.com/mrshanebarron/pagination)[ Packagist](https://packagist.org/packages/mrshanebarron/pagination)[ RSS](/packages/mrshanebarron-pagination/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (1)Versions (7)Used By (0)

Pagination
==========

[](#pagination)

A pagination component for Laravel applications. Displays page numbers with navigation controls. Works with Livewire and Vue 3.

Installation
------------

[](#installation)

```
composer require mrshanebarron/pagination
```

Livewire Usage
--------------

[](#livewire-usage)

### Basic Usage

[](#basic-usage)

```

```

### With Item Count

[](#with-item-count)

```

```

### Livewire Props

[](#livewire-props)

PropTypeDefaultDescription`wire:model`number`1`Current page number`total-pages`numberrequiredTotal number of pages`per-page`number`10`Items per page`total`number`0`Total item count`on-each-side`number`2`Pages shown on each side`show-info`boolean`true`Show "Showing X to Y of Z"Vue 3 Usage
-----------

[](#vue-3-usage)

### Setup

[](#setup)

```
import { SbPagination } from './vendor/sb-pagination';
app.component('SbPagination', SbPagination);
```

### Basic Usage

[](#basic-usage-1)

```

import { ref } from 'vue';
const currentPage = ref(1);
const totalPages = 10;

```

### With Results Info

[](#with-results-info)

```

import { ref, computed } from 'vue';

const currentPage = ref(1);
const perPage = 20;
const totalItems = 157;
const totalPages = computed(() => Math.ceil(totalItems / perPage));

```

### Data Table Example

[](#data-table-example)

```

          Name
          Email

          {{ user.name }}
          {{ user.email }}

import { ref, computed } from 'vue';

const currentPage = ref(1);
const perPage = 10;
const users = ref([]); // Your data

const totalPages = computed(() => Math.ceil(users.value.length / perPage));

const paginatedUsers = computed(() => {
  const start = (currentPage.value - 1) * perPage;
  return users.value.slice(start, start + perPage);
});

const fetchPage = (page) => {
  // Fetch data for new page
};

```

### Custom Visible Pages

[](#custom-visible-pages)

```

```

### Vue Props

[](#vue-props)

PropTypeDefaultDescription`modelValue`Number`1`Current page (v-model)`totalPages`NumberrequiredTotal page count`perPage`Number`10`Items per page (for info)`total`Number`0`Total items (for info)`onEachSide`Number`2`Visible pages each side`showInfo`Boolean`true`Show results info text### Events

[](#events)

EventPayloadDescription`update:modelValue``number`Emitted when page changesFeatures
--------

[](#features)

- **Page Numbers**: Shows current page with neighbors
- **Ellipsis**: Shows `...` for skipped ranges
- **First/Last**: Always shows first and last page
- **Navigation**: Previous/next buttons
- **Results Info**: "Showing X to Y of Z results"

Page Display Logic
------------------

[](#page-display-logic)

With `onEachSide: 2` and 20 total pages:

- Page 1: `1 2 3 ... 20`
- Page 5: `1 ... 3 4 5 6 7 ... 20`
- Page 20: `1 ... 18 19 20`

Styling
-------

[](#styling)

Uses Tailwind CSS:

- White buttons with border
- Blue background for current page
- Disabled state for first/last page
- Hover effects

Requirements
------------

[](#requirements)

- PHP 8.1+
- Laravel 10, 11, or 12
- Tailwind CSS 3.x

License
-------

[](#license)

MIT License

###  Health Score

36

—

LowBetter than 81% of packages

Maintenance79

Regular maintenance activity

Popularity5

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

6

Last Release

139d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7a38dc9b4ccc180ee3e9df8879f8747ea9dbf36812c6546827fe504fa8993eb8?d=identicon)[mrshanebarron](/maintainers/mrshanebarron)

---

Tags

laravelpagerpaginationlivewirevue

### Embed Badge

![Health badge](/badges/mrshanebarron-pagination/health.svg)

```
[![Health](https://phpackages.com/badges/mrshanebarron-pagination/health.svg)](https://phpackages.com/packages/mrshanebarron-pagination)
```

###  Alternatives

[livewire/flux

The official UI component library for Livewire.

9385.0M85](/packages/livewire-flux)[ijpatricio/mingle

Use Vue and React in Laravel Livewire Applications.

43445.4k2](/packages/ijpatricio-mingle)[bezhansalleh/filament-google-analytics

Google Analytics integration for FilamentPHP

205144.8k5](/packages/bezhansalleh-filament-google-analytics)[mischasigtermans/laravel-altitude

Claude Code agents for the TALL stack, powered by Laravel Boost

1139.2k](/packages/mischasigtermans-laravel-altitude)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

116.6k](/packages/tomshaw-electricgrid)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
