PHPackages                             malasuerte94/nova-status-indicator - 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. malasuerte94/nova-status-indicator

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

malasuerte94/nova-status-indicator
==================================

Laravel Nova 4 Indicator Status Field

22.5k↓50%Vue

Since Feb 14Pushed 2mo ago1 watchersCompare

[ Source](https://github.com/Malasuerte94/nova-status-indicator)[ Packagist](https://packagist.org/packages/malasuerte94/nova-status-indicator)[ RSS](/packages/malasuerte94-nova-status-indicator/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)DependenciesVersions (2)Used By (0)

Laravel Nova Status Indicator Field
===================================

[](#laravel-nova-status-indicator-field)

A colour/icon-coded Status Indicator Field for Laravel Nova 4

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

[](#installation)

Install the package into a Laravel app that uses [Nova](https://nova.laravel.com) with Composer:

```
composer require malasuerte94/nova-status-indicator
```

Usage
-----

[](#usage)

Add the field to your resource in the `fields` method:

```
use Malasuerte94\Fields\Indicator;

Indicator::make('Status'),
```

The field extends the base `Laravel\Nova\Fields\Field` field, so all the usual methods are available.

### Options

[](#options)

#### Labels

[](#labels)

Labels:

```
Indicator::make('Status')
    ->labels([
        'true' => 'Agreed',
        'active' => 'Active',
        'invited' => 'Invited',
        'false' => 'Inactive',
    ])
```

The array key is the raw field value and the array value is the desired label.

You can, of course use the Laravel `trans()` or `__()` functions to translate the labels.

If a label is not defined for a value that appears in the field, the "unknown" label will be used (see below).

#### Without Labels

[](#without-labels)

If you do not need to specify a different label, you can simply display the raw field value:

```
Indicator::make('Status')
    ->withoutLabels()
```

#### Unknown Label

[](#unknown-label)

Specify the label when the raw field value does not correspond to one of the labels you defined:

```
Indicator::make('Status')
    ->unknown('Unknown')
```

You can, of course use the Laravel `trans()` or `__()` functions to translate the unknown label.

If this is not set, an em dash will be displayed instead.

This setting does not apply when `withoutLabels()` has been used. In that case, an unknown label will display with its raw value.

#### Should Hide

[](#should-hide)

The indicator can be hidden if the field value is equal to a given value(s) or a callback:

```
Indicator::make('Status')
    ->shouldHide('active')
```

```
Indicator::make('Status')
    ->shouldHide(['invited', 'requested'])
```

```
Indicator::make('Status')
    ->shouldHide(function($value) {
        return $value == 'inactive';
    })
```

This is useful if you only want to highlight particular values in the grid and hide others, e.g. you want banned users to be displayed with a red indicator and label, and for active (not banned) users, you don't want the indicator displayed at all.

#### Should Hide If No

[](#should-hide-if-no)

The indicator can be hidden if the field value is anything that PHP considers as falsy, i.e. `false`, `0`, `null`or `''`:

```
Indicator::make('Status')
    ->shouldHideIfNo()
```

This is a shortcut for a common scenario for the above `shouldHide()` method.

#### Colours

[](#colours)

##### Named Colours

[](#named-colours)

Add your desired status colours:

```
Indicator::make('Status')
    ->colors([
        'banned' => 'red',
        'active' => 'green',
        'invited' => 'blue',
        'inactive' => 'grey',
    ])
```

The array key is the raw field value and the array value is the desired colour.

If a colour is not specified for a status, it will be displayed as grey.

The available colours are the default "base" colours from [Tailwind](https://tailwindcss.com/docs/colors), with the addition of black:

- 'black' `#22292F`
- 'grey' or 'gray' `#B8C2CC`
- 'red' `#E3342F`
- 'orange' `#F6993F`
- 'yellow' `#FFED4A`
- 'green' `#38C172`
- 'teal' `#4DC0B5`
- 'blue' `#3490DC`
- 'indigo' `#6574CD`
- 'purple' `#9561E2`
- 'pink' `#F66D9B`

As well as the following Nova variable colours:

- 'success' `var(--success)`
- 'warning' `var(--warning)`
- 'danger' `var(--danger)`
- 'info' `var(--info)`

Colour classes are not validated against the lists above, so if you enter an invalid colour, it will fall back to grey.

##### Literal Colours

[](#literal-colours)

You can also use your own hexadecimal, RGB/RGBA or HSL/HSLA literal colours or variables, as in CSS:

```
Indicator::make('Status')
    ->colors([
        '...' => '#ff0000',
        '...' => 'rgb(0, 255, 0)',
        '...' => 'rgba(0, 0, 0, 0.5)',
        '...' => 'hsl(120, 100%, 50%)',
        '...' => 'hsla(120, 100%, 50%, 0.5)',
        '...' => 'var(--success)',
    ])
```

Literal colours are not validated, so if you enter an invalid CSS colour, it will fall back to grey.

##### Additional Colour Classes

[](#additional-colour-classes)

If you want to specify your own colours as reusable classes, you can serve your own CSS file using Nova's Asset functionality. The classes must be prefixed with `indicator-`:

```
.indicator-yourcolourname {
    background: #000000;
}
```

Which you would use in the field definition without the 'indicator-' prefix, as:

```
Indicator::make('Status')
    ->colors([
        'yourstatus' => 'yourcolourname',
    ])
```

#### Icons

[](#icons)

##### Named Icons

[](#named-icons)

Add your desired icon (the icon functionally works only with labels):

```
Indicator::make('Status')
        ->labels([
            'true' => 'Expired',
            'false' => 'Active',
            'error' => 'Not Set',
        ])->colors([
            'true' => 'red',
            'false' => 'green',
            'error' => 'blue',
        ])->icons([
            'true' => 'loading',
            'false' => 'success',
            'error' => 'loading',
        ]),
```

If an icon is not specified for a status, we will show only the label.

The available icons are:

- 'error'
- 'cancel'
- 'loading'
- 'minus'
- 'success'

Appearance
----------

[](#appearance)

### Index

[](#index)

[![index-field](./docs/index.png)](./docs/index.png)

### Detail

[](#detail)

[![detail-field](./docs/detail.png)](./docs/detail.png)

### Form

[](#form)

(Same as detail.)

The indicator is not displayed on forms by default. If you choose to display it as a form field with `showOnUpdate()`, the indicator is not editable and does not write back to the server, as it is intended to come from a read-only or derived model attribute.

If you do need an editable status field, you might want to add your own additional `Laravel\Nova\Fields\Select` field to your resource, referencing the same attribute name, and with `onlyOnForms()` set.

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance58

Moderate activity, may be stable

Popularity23

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity21

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% 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.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/6410791?v=4)[Catalin Ene](/maintainers/Malasuerte94)[@Malasuerte94](https://github.com/Malasuerte94)

---

Top Contributors

[![Malasuerte94](https://avatars.githubusercontent.com/u/6410791?v=4)](https://github.com/Malasuerte94 "Malasuerte94 (9 commits)")

### Embed Badge

![Health badge](/badges/malasuerte94-nova-status-indicator/health.svg)

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

###  Alternatives

[butschster/meta-tags

The most powerful and extendable tools for managing SEO Meta Tags in your Laravel project

628730.7k2](/packages/butschster-meta-tags)

PHPackages © 2026

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