PHPackages                             marshmallow/nova-mega-filter - 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. [Search &amp; Filtering](/categories/search)
4. /
5. marshmallow/nova-mega-filter

ActiveLibrary[Search &amp; Filtering](/categories/search)

marshmallow/nova-mega-filter
============================

Allows you to control the columns and filters shown on your nova resources.

v1.1.2(11mo ago)0587↓61.8%[1 issues](https://github.com/marshmallow-packages/nova-mega-filter/issues)[1 PRs](https://github.com/marshmallow-packages/nova-mega-filter/pulls)MITVuePHP ^8.0CI failing

Since May 1Pushed 3w ago1 watchersCompare

[ Source](https://github.com/marshmallow-packages/nova-mega-filter)[ Packagist](https://packagist.org/packages/marshmallow/nova-mega-filter)[ RSS](/packages/marshmallow-nova-mega-filter/feed)WikiDiscussions main Synced today

READMEChangelog (4)Dependencies (2)Versions (21)Used By (0)

Marshmallow - Nova Mega Filter
==============================

[](#marshmallow---nova-mega-filter)

Important

This package was originally forked from [digital-creative/nova-mega-filter](https://github.com/dcasia/nova-mega-filter). Since we were making many opinionated changes, we decided to continue development in our own version rather than submitting pull requests that might not benefit all users of the original package. You’re welcome to use this package—we’re actively maintaining it. If you encounter any issues, please don’t hesitate to reach out.

Nova Mega Filter
================

[](#nova-mega-filter)

[![Latest Version on Packagist](https://camo.githubusercontent.com/9943b1861d6ed96ba8ac4c81cb7d4f8c464893db89afbaf841fad6e7f69c12e7/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d617273686d616c6c6f772f6e6f76612d6d6567612d66696c746572)](https://packagist.org/packages/marshmallow/nova-mega-filter)[![Total Downloads](https://camo.githubusercontent.com/ccdb4e678ae245d425c7c67f003284fcf73681e03010dccd90ef7b170428c83d/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d617273686d616c6c6f772f6e6f76612d6d6567612d66696c746572)](https://packagist.org/packages/marshmallow/nova-mega-filter)[![License](https://camo.githubusercontent.com/e19add8a6a7a07783f0aa376ffa4a0a561554e28eb245667353ce366d383bde1/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6d617273686d616c6c6f772f6e6f76612d6d6567612d66696c746572)](https://github.com/marshmallow-packages/nova-mega-filter/blob/main/LICENSE)

Display all your filters in a card instead of a tiny dropdown!

  ![Nova Mega Filter in Action](https://raw.githubusercontent.com/marshmallow-packages/nova-mega-filter/main/screenshots/light.png)Requirements
------------

[](#requirements)

- PHP `^8.0`
- Laravel Nova `^4.0 | ^5.0`

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

[](#installation)

You can install the package via composer:

```
composer require marshmallow/nova-mega-filter
```

The service provider is registered automatically through Laravel package discovery, and the card's assets are registered with Nova on boot — there is nothing else to publish.

Basic Usage
-----------

[](#basic-usage)

Add the `MegaFilterTrait` to your Nova resource (or lens) and wrap the filters you want to display in the card with `MegaFilter::make()`:

```
use Marshmallow\MegaFilter\MegaFilter;
use Marshmallow\MegaFilter\MegaFilterTrait;

class ExampleNovaResource extends Resource {

    use MegaFilterTrait;

    public function filters(NovaRequest $request): array
    {
        return [
            MegaFilter::make([
                DateOfBirthFilter::make(),
                UserTypeFilter::make(),
            ]),
        ];
    }

}
```

And you are done!

---

You can also add other filters alongside your Mega Filter, they will be rendered as usual:

```
use Marshmallow\MegaFilter\MegaFilter;
use Marshmallow\MegaFilter\MegaFilterTrait;

class ExampleNovaResource extends Resource {

    use MegaFilterTrait;

    public function filters(NovaRequest $request): array
    {
        return [
            MegaFilter::make([ ... ]),

            // These will be rendered as normal on the usual tiny filter dropdown
            DateOfBirthFilter::make(),
            UserTypeFilter::make(),
        ];
    }

}
```

You can also set how many columns you want to display your filters:

```
public function filters(NovaRequest $request): array
{
    return [
        MegaFilter::make([ ... ])->columns(3),
    ];
}
```

By default, the filter section is collapsed. If you want it to be open or expanded initially, you can do:

```
public function filters(NovaRequest $request): array
{
    return [
        MegaFilter::make([ ... ])->open(),
    ];
}
```

Filter Width Control
--------------------

[](#filter-width-control)

You can control the width of individual filters using Tailwind CSS width classes. This allows you to create custom layouts where some filters take up more or less space:

```
public function filters(NovaRequest $request): array
{
    return [
        MegaFilter::make([
            (new Filter001)->withMeta(['width' => 'w-1/3']),
            (new Filter002)->withMeta(['width' => 'w-2/3']),
            (new Filter003),  // Uses default width
            (new Filter004)->withMeta(['width' => 'w-1/2']),
            (new Filter005)->withMeta(['width' => 'w-1/2']),
        ]),
    ];
}
```

Available width classes include:

- `w-full` - Full width (default)
- `w-1/2` - Half width (50%)
- `w-1/3` - One third width (33.33%)
- `w-2/3` - Two thirds width (66.67%)
- `w-1/4` - Quarter width (25%)
- `w-3/4` - Three quarters width (75%)
- `w-1/6`, `w-2/6`, `w-3/6`, `w-4/6`, `w-5/6` - Sixth-based widths
- `w-1/12`, `w-2/12`, `w-3/12`, etc. - Twelfth-based widths
- Any other Tailwind width class

> Note: At the moment this package only works with a single Mega Filter per resource, adding multiple on the same resource may result in unexpected behavior.

API Reference
-------------

[](#api-reference)

The `MegaFilter` instance returned by `MegaFilter::make()` exposes the following fluent methods:

MethodDescription`columns(int $columns)`Number of columns to lay the filters out in.`open(bool $open = true)`Render the filter card expanded instead of collapsed.`withMeta(array $meta)`Pass additional meta data to the card (e.g. `['width' => 'w-1/2']` on an individual filter).Credits
-------

[](#credits)

- [LTKort](https://github.com/marshmallow-packages)
- [Rafael Milewski](https://github.com/marshmallow-packages)
- [All Contributors](https://github.com/marshmallow-packages/nova-mega-filter/contributors)

This package was originally forked from [digital-creative/nova-mega-filter](https://github.com/dcasia/nova-mega-filter).

Security
--------

[](#security)

If you discover any security related issues, please email  instead of using the issue tracker.

License
-------

[](#license)

The MIT License (MIT). Please see the [License File](https://github.com/marshmallow-packages/nova-mega-filter/blob/main/LICENSE) for more information.

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance76

Regular maintenance activity

Popularity17

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 55.6% 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 ~25 days

Total

4

Last Release

353d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/be33d2624e24c516e73892b0929447cc762f3622c024ab8d0d2a59042e5d2c7f?d=identicon)[marshmallow](/maintainers/marshmallow)

---

Top Contributors

[![stefvanesch](https://avatars.githubusercontent.com/u/46725619?v=4)](https://github.com/stefvanesch "stefvanesch (20 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (11 commits)")[![LTKort](https://avatars.githubusercontent.com/u/2412670?v=4)](https://github.com/LTKort "LTKort (5 commits)")

---

Tags

laravelfilternovacolumnsbig-filtermarshmallowmega-filter

### Embed Badge

![Health badge](/badges/marshmallow-nova-mega-filter/health.svg)

```
[![Health](https://phpackages.com/badges/marshmallow-nova-mega-filter/health.svg)](https://phpackages.com/packages/marshmallow-nova-mega-filter)
```

###  Alternatives

[digital-creative/nova-mega-filter

Allows you to control the columns and filters shown on your nova resources.

85170.8k](/packages/digital-creative-nova-mega-filter)[outl1ne/nova-multiselect-filter

Multiselect filter for Laravel Nova.

45902.0k5](/packages/outl1ne-nova-multiselect-filter)[optimistdigital/nova-multiselect-filter

Multiselect filter for Laravel Nova.

45316.3k](/packages/optimistdigital-nova-multiselect-filter)[outl1ne/nova-detached-filters

This Laravel Nova package allows you to detach filters from the filter dropdown

64414.9k](/packages/outl1ne-nova-detached-filters)[optimistdigital/nova-detached-filters

This Laravel Nova package allows you to detach filters from the filter dropdown

64240.1k](/packages/optimistdigital-nova-detached-filters)[outl1ne/nova-input-filter

An input filter for Laravel Nova

241.0M](/packages/outl1ne-nova-input-filter)

PHPackages © 2026

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