PHPackages                             wesselperik/nova-status-field - 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. wesselperik/nova-status-field

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

wesselperik/nova-status-field
=============================

A Laravel Nova field for displaying statuses.

3.1.0(1mo ago)30225.5k↓28.1%13[2 issues](https://github.com/wesselperik/nova-status-field/issues)[1 PRs](https://github.com/wesselperik/nova-status-field/pulls)MITPHPPHP ^8.0

Since Jun 2Pushed 1mo ago4 watchersCompare

[ Source](https://github.com/wesselperik/nova-status-field)[ Packagist](https://packagist.org/packages/wesselperik/nova-status-field)[ RSS](/packages/wesselperik-nova-status-field/feed)WikiDiscussions master Synced 2w ago

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

[![Nova Status Field](https://raw.githubusercontent.com/wesselperik/nova-status-field/assets/logo.png)](https://raw.githubusercontent.com/wesselperik/nova-status-field/assets/logo.png)

---

[![Latest Version on Packagist](https://camo.githubusercontent.com/29a7203bcbd296dc8c6c95a69b5be7fdc16d3f11ece2de15ced9db9ddca5a338/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f77657373656c706572696b2f6e6f76612d7374617475732d6669656c642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/wesselperik/nova-status-field)

### 🚀 Compatible with Laravel Nova 4 and 5!

[](#-compatible-with-laravel-nova-4-and-5)

A Laravel Nova field for displaying a status icon, with optional tooltip and info text, on index and detail pages of your models. This package utilizes all icons from the [Heroicons](https://heroicons.com/) icon pack (from designer [Steve Schroger](https://twitter.com/steveschoger)), which is also used in Laravel Nova.

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

[](#installation)

You can install the package using composer:

```
composer require wesselperik/nova-status-field
```

Next up, add the field to your desired Nova model. See the example below:

```
// for example, in app/Nova/Blog.php

use WesselPerik\StatusField\StatusField;

// ...

public function fields(Request $request) {
    return [
        // Use a single value for tooltips and info...
        StatusField::make('Published')
            ->icons([
                'minus-circle' => $this->published == 0,
                'clock'        => $this->pending == 1 && $this->published == 0,
                'check-circle' => $this->pending == 0 && $this->published == 1
            ])
            ->iconColor('primary') // optional
            ->solid(true) // optional
            ->tooltip($this->status) // optional
            ->info("Blog status: ".$this->status) // optional
            ->exceptOnForms()

        // ...or change text based on the value
        StatusField::make('Published')
            ->icons([
                'minus-circle' => $this->published == 0,
                'clock'        => $this->pending == 1 && $this->published == 0,
                'check-circle' => $this->pending == 0 && $this->published == 1
            ])
            ->tooltip([
                'minus-circle' => 'Not published',
                'clock'        => 'Pending publication',
                'check-circle' => 'Published'
            ])
            ->info([
                'minus-circle' => 'This blog is not published yet.',
                'clock'        => 'This blog is pending publication.',
                'check-circle' => 'This blog is published on '.$this->published_at->format('d-m-Y').'.'
            ])
            ->iconColor([
                'minus-circle' => 'red-500',
                'clock'        => 'blue-500',
                'check-circle' => 'green-500'
            ])
            ->exceptOnForms()
    ];
}
```

Available icons are all [Heroicons](https://heroicons.com/) by [Steve Schroger](https://twitter.com/steveschoger). By default, the icons are used in the outline style, but you can use the `solid()` function to change to the solid style (see the example above).

> **Note:** Laravel Nova 5 ships with Heroicons v2, while Nova 4 uses Heroicons v1. Some icons were renamed in v2 (for example, `mail` became `envelope`). If an icon no longer shows up after upgrading to Nova 5, check the [Heroicons v2 rename list](https://github.com/tailwindlabs/heroicons/releases/tag/v2.0.0) for its new name.

Available colors are the following [TailwindCSS text colors](https://tailwindcss.com/docs/text-color) included in Laravel Nova 4, which are:

- `primary`
- `gray`
- `white`
- `blue`
- `green`
- `red`

Popup text/background color
---------------------------

[](#popup-textbackground-color)

By default the tooltip popup uses your Nova `primary` color as its background, with white text (dark gray in dark mode). Use `background()` and `textColor()` to override these per field. Both work exactly like `iconColor()` — pass either a single color or an array of `icon => color` pairs:

```
// single color for the whole field's popup
StatusField::make('Published')
    ->icons([ /* ... */ ])
    ->tooltip($this->status)
    ->background('green-500')
    ->textColor('white')
    ->exceptOnForms()

// ...or a different popup color per icon
StatusField::make('Published')
    ->icons([
        'minus-circle' => $this->published == 0,
        'clock'        => $this->pending == 1 && $this->published == 0,
        'check-circle' => $this->pending == 0 && $this->published == 1
    ])
    ->tooltip([ /* ... */ ])
    ->background([
        'minus-circle' => 'red-500',
        'clock'        => 'blue-500',
        'check-circle' => 'green-500'
    ])
    ->textColor([
        'minus-circle' => 'white',
        'clock'        => 'white',
        'check-circle' => 'gray-800'
    ])
    ->exceptOnForms()
```

Values for both methods are auto-detected: a Nova palette token such as `green-500` or `primary-500` is mapped to the matching theme color (and respects light/dark mode), while any other value — a hex code, `rgb()`, `hsl()`, or a named CSS color — is used as-is:

```
->background('#16a34a')->textColor('#ffffff')
->background('rgb(22 163 74)')
```

Set both together when you use a custom background, so the text stays readable against it.

Contributors
------------

[](#contributors)

- [Wessel Perik](https://github.com/wesselperik)
- [Jeremy Holstein](https://github.com/jjjrmy)

License
-------

[](#license)

The MIT License (MIT). Please see the [license file](LICENSE) for more information.

###  Health Score

59

—

FairBetter than 98% of packages

Maintenance90

Actively maintained with recent releases

Popularity45

Moderate usage in the ecosystem

Community15

Small or concentrated contributor base

Maturity68

Established project with proven stability

 Bus Factor1

Top contributor holds 80% 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 ~202 days

Recently: every ~358 days

Total

12

Last Release

43d ago

Major Versions

1.3.1 → 2.0.02022-04-05

2.1.2 → 3.0.02026-07-06

PHP version history (2 changes)1.0.0PHP &gt;=7.1.0

2.0.0PHP ^8.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/6ffbe75b0ed9403ffe2470b2bd3810e127a17a0906cf6d90fd0a14a96f73cac1?d=identicon)[wesselperik](/maintainers/wesselperik)

---

Top Contributors

[![wesselperik](https://avatars.githubusercontent.com/u/10948466?v=4)](https://github.com/wesselperik "wesselperik (20 commits)")[![jjjrmy](https://avatars.githubusercontent.com/u/1609800?v=4)](https://github.com/jjjrmy "jjjrmy (5 commits)")

---

Tags

laravellaravel-novalaravelstatusnova

### Embed Badge

![Health badge](/badges/wesselperik-nova-status-field/health.svg)

```
[![Health](https://phpackages.com/badges/wesselperik-nova-status-field/health.svg)](https://phpackages.com/packages/wesselperik-nova-status-field)
```

###  Alternatives

[outl1ne/nova-sortable

This Laravel Nova package allows you to reorder models in a Nova resource's index view using drag &amp; drop.

2852.2M9](/packages/outl1ne-nova-sortable)[optimistdigital/nova-sortable

This Laravel Nova package allows you to reorder models in a Nova resource's index view using drag &amp; drop.

2852.2M6](/packages/optimistdigital-nova-sortable)[markwalet/nova-modal-response

A Laravel Nova asset for Modal responses on an action.

17930.8k](/packages/markwalet-nova-modal-response)[inspheric/nova-indicator-field

A Laravel Nova indicator field.

1281.0M1](/packages/inspheric-nova-indicator-field)[advoor/nova-editor-js

A Laravel Nova field bringing EditorJs magic to Nova.

92254.5k3](/packages/advoor-nova-editor-js)[sbine/route-viewer

A Laravel Nova tool to view your registered routes.

58261.4k](/packages/sbine-route-viewer)

PHPackages © 2026

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