PHPackages                             lee-to/moonshine-kanban-board-resource - 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. lee-to/moonshine-kanban-board-resource

ActiveLibrary

lee-to/moonshine-kanban-board-resource
======================================

Kanban board resource for moonshine

2.2.0(3mo ago)126561MITPHPPHP ^8.0|^8.1|^8.2

Since May 22Pushed 3mo ago1 watchersCompare

[ Source](https://github.com/lee-to/moonshine-kanban-board-resource)[ Packagist](https://packagist.org/packages/lee-to/moonshine-kanban-board-resource)[ Docs](https://moonshine.cutcode.dev)[ RSS](/packages/lee-to-moonshine-kanban-board-resource/feed)WikiDiscussions 2.x Synced 1mo ago

READMEChangelog (6)DependenciesVersions (8)Used By (0)

MoonShine kanban board resource
-------------------------------

[](#moonshine-kanban-board-resource)

[![](https://github.com/lee-to/moonshine-kanban-board-resource/raw/2.x/art/screenshot.png)](https://moonshine-laravel.com)

### Requirements

[](#requirements)

- v0 - 2.1 - MoonShine v3.0
- v2.2+ - MoonShine v4.0

### Installation

[](#installation)

```
composer require lee-to/moonshine-kanban-board-resource
```

Usage
-----

[](#usage)

### Basic Usage

[](#basic-usage)

Example usage

```
use Leeto\MoonShineKanBan\Resources\KanBanResource;

class TaskResource extends KanBanResource
{
    protected string $title = 'title';

    protected string $sortColumn = 'sorting';

    protected ?string $description = 'description'; // Card description field (optional)

    // ... fields, model, etc ...

    protected function pages(): array
    {
        return [
            TaskIndexPage::class,
            FormPageContract::class,
        ];
    }

    public function statuses(): \Illuminate\Support\Collection
    {
        return Status::query()
            ->orderBy('sorting')
            ->pluck('name', 'id');
    }

    public function foreignKey(): string
    {
        return 'status_id';
    }

    // ...
}
```

IndexPage

```
final class TaskIndexPage extends IndexPage
{
    protected function modifyListComponent(ComponentContract $component): ComponentContract
    {
        return KanBanComponent::make($this->getResource(), $this->getResource()->getItems());
    }
}
```

### Advanced Usage with DTO

[](#advanced-usage-with-dto)

You can use the DTO approach for more flexible customization:

```
use Leeto\MoonShineKanBan\DTOs\KanbanItem;

public function getItems(): iterable
{
    $items = new Collection;

    foreach (parent::getItems() as $task) {
        $item = KanbanItem::make(
            id: $task->id,
            title: $task->title,
            status: $this->foreignKey(),
        )
            ->setModel($task)
            ->setSubtitle(str($task->description)->limit(50)->value())
            //->setThumbnail(asset('images/template.jpg'))
            ->addLabel(fake()->word(), 'red')
            ->addLabel(fake()->word(), 'green')
            ->setUser(
                avatar: asset('images/template.jpg'),
                name: $task->user->name,
            )
            ->addMeta('user', $task->user->name)
            ->addMeta('chat-bubble-left', (string) random_int(0, 100))
            ->addMeta('users', (string) random_int(0, 50))
            ->setButtons([])
        ;

        $items->push($item);
    }

    return $items;
}
```

Features
--------

[](#features)

### KanbanItem DTO Properties

[](#kanbanitem-dto-properties)

The `KanbanItem` DTO provides extensive customization options:

#### Basic Properties

[](#basic-properties)

- `id`: Item identifier (required)
- `title`: Card title (required)
- `status`: Status key (required)
- `subtitle`: Optional subtitle text (1-2 lines)
- `thumbnail`: Preview image URL
- `model`: Associated Eloquent model

#### Visual Elements

[](#visual-elements)

- `labels`: Array of colored labels (Trello-style)
- `user`: User information with avatar, name and URL
- `meta`: Array of metadata with icons and labels
- `buttons`: Custom action buttons

#### Methods

[](#methods)

- `setSubtitle(?string $subtitle)`: Set subtitle text
- `setThumbnail(?string $thumbnail)`: Set thumbnail image
- `addLabel(string $label, string $color)`: Add a colored label
- `setUser(string $avatar, ?string $name = null, ?string $url = null)`: Set user info
- `addMeta(string $icon, string $label)`: Add metadata with icon
- `setButtons(array $buttons)`: Set custom buttons
- `setModel(Model $model)`: Associate with Eloquent model

### Custom Buttons

[](#custom-buttons)

You can define custom buttons using the `buttons()` method in IndexPage:

```
/**
 * Action buttons for cards in kanban
 */
protected function buttons(): ListOf
{
    return [
        // ActionButton
    ];
}
```

### Horizontal Scrolling

[](#horizontal-scrolling)

The kanban board features horizontal scrolling with auto-scroll functionality:

- **Manual Scrolling**: Users can scroll horizontally through columns
- **Auto-scroll on Drag**: When dragging a card near the left or right edge, the board automatically scrolls
- **Smooth Animation**: Scrolling is animated for better user experience
- **Touch Support**: Works on touch devices with swipe gestures

### Component Structure

[](#component-structure)

The view is split into three main components for customization:

1. **Kanban Component**: Main container with scroll functionality
2. **Column Component**: Individual column with header and card list
3. **Item Component**: Individual card with all visual elements

Each component can be customized independently by extending the base components.

###  Health Score

48

—

FairBetter than 94% of packages

Maintenance81

Actively maintained with recent releases

Popularity26

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 72.7% of commits — single point of failure

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 ~141 days

Recently: every ~94 days

Total

8

Last Release

101d ago

Major Versions

0.1.0 → 2.0.02025-01-14

1.x-dev → 2.0.12025-01-21

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1861327?v=4)[Danil Shutsky](/maintainers/lee-to)[@lee-to](https://github.com/lee-to)

---

Top Contributors

[![lee-to](https://avatars.githubusercontent.com/u/1861327?v=4)](https://github.com/lee-to "lee-to (8 commits)")[![ichinya](https://avatars.githubusercontent.com/u/3314686?v=4)](https://github.com/ichinya "ichinya (3 commits)")

---

Tags

moonshine

### Embed Badge

![Health badge](/badges/lee-to-moonshine-kanban-board-resource/health.svg)

```
[![Health](https://phpackages.com/badges/lee-to-moonshine-kanban-board-resource/health.svg)](https://phpackages.com/packages/lee-to-moonshine-kanban-board-resource)
```

###  Alternatives

[moonshine/moonshine

Laravel administration panel

1.3k217.1k59](/packages/moonshine-moonshine)[laravel-lang/common

Easily connect the necessary language packs to the application

1463.1M22](/packages/laravel-lang-common)[laravel-lang/moonshine

Translation for MoonShine admin panel

111.3M4](/packages/laravel-lang-moonshine)[sweet1s/moonshine-roles-permissions

Moonshine Role and Permission management

2614.7k](/packages/sweet1s-moonshine-roles-permissions)[visual-ideas/moonshine-spatie-medialibrary

Spatie\\MediaLibrary field for MoonShine Laravel admin panel

2014.1k](/packages/visual-ideas-moonshine-spatie-medialibrary)[lee-to/moonshine-tree-resource

Tree resource for moonshine

1617.7k](/packages/lee-to-moonshine-tree-resource)

PHPackages © 2026

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