PHPackages                             norman-huth/nova-resource-card - 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. norman-huth/nova-resource-card

ActiveLibrary

norman-huth/nova-resource-card
==============================

A Laravel Nova card.

1.0.3(2y ago)621.1k↓50%3[2 issues](https://github.com/Muetze42/nova-resource-card/issues)MITPHPPHP ^8.0

Since Apr 9Pushed 2y ago2 watchersCompare

[ Source](https://github.com/Muetze42/nova-resource-card)[ Packagist](https://packagist.org/packages/norman-huth/nova-resource-card)[ Fund](https://huth.it/coffee)[ Fund](https://ko-fi.com/normanhuth)[ RSS](/packages/norman-huth-nova-resource-card/feed)WikiDiscussions main Synced 1mo ago

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

Nova Resource Card
==================

[](#nova-resource-card)

With this package You can use Nova Resources Index as Card.
(For example on the Dashboard or other Nova resource)

Limitations:

- No search
- No pagination
- No actions
- No cards

[![Dashboard Preview](docs/preview-dashboard.png)](docs/preview-dashboard.png)[![Resource Preview](docs/preview-resource.png)](docs/preview-resource.png)[![Preview with footer link](docs/preview-with-footer-link.png)](docs/preview-with-footer-link.png)

Examples from [example-app-nvpRt7](https://github.com/Muetze42/example-app-nvpRt7)

This package will certainly be extended in the course of time. Watch this package for Updates.
For suggestions and wishes please [create an issue](https://github.com/Muetze42/norman-huth-nova-resource-card/issues).

Install
=======

[](#install)

```
composer require norman-huth/nova-resource-card

```

Usage
=====

[](#usage)

This usage examples use the Laravel Nova User resource class as example.

Add Nova Resource Card To A Dashboard
-------------------------------------

[](#add-nova-resource-card-to-a-dashboard)

```
use NormanHuth\NovaResourceCard\NovaResourceCard;

class Main extends Dashboard
{
    /**
     * Get the cards for the dashboard.
     *
     * @return array
     */
    public function cards(): array
    {
        return [
            new NovaResourceCard(\App\Nova\Resources\User::class)
        ];
    }
}
```

Add Nova Resource Card To A Other Nova Resource
-----------------------------------------------

[](#add-nova-resource-card-to-a-other-nova-resource)

```
use NormanHuth\NovaResourceCard\NovaResourceCard;

class User extends Resource
{
    /**
     * Get the cards available for the request.
     *
     * @param NovaRequest $request
     * @return array
     */
    public function cards(NovaRequest $request): array
    {
        return [
            new NovaResourceCard(\App\Nova\Resources\User::class),
        ];
    }
}
```

Card Methods
------------

[](#card-methods)

### Activate Footer Link To The Resource Index

[](#activate-footer-link-to-the-resource-index)

Use the `setFooterLinkLabel` method.

```
(new NovaResourceCard(\App\Nova\Resources\User::class))->setFooterLinkLabel(__('To All Users'))
```

### Use A Other Nova Resource As Footer Link Target

[](#use-a-other-nova-resource-as-footer-link-target)

Use the `setFooterLinkResource` method.

```
(new NovaResourceCard(\App\Nova\Resources\User::class))
    ->setFooterLinkLabel(__('Go To Orders'))
    ->setFooterLinkResource(\App\Nova\Resources\Order::class)
```

### Use A External Url For Footer Link

[](#use-a-external-url-for-footer-link)

Use the `setFooterLinkExternalUrl` method.

```
(new NovaResourceCard(\App\Nova\Resources\User::class))
    ->setFooterLinkLabel(__('Visit Website'))
    ->setFooterLinkExternalUrl('https://huth.it')
```

### Set Detail Link Resource

[](#set-detail-link-resource)

By default, this package generate the detail link by `Resource::$model`, so that you can use several resources for one model without any effort.

Use the `setDetailLinkResource` method.

```
(new NovaResourceCard(\App\Nova\Resources\User::class))
    ->setDetailLinkResource(\App\Nova\Resources\Order::class)
```

### Set Card Width

[](#set-card-width)

Use the `width` method.

`#[ExpectedValues(values: ['full', '1/3', '1/2', '1/4', '2/3', '3/4'])]`

```
(new NovaResourceCard(\App\Nova\Resources\User::class))->width('1/2')
```

### Add Classes To Card Element

[](#add-classes-to-card-element)

Use the `addCardClasses` method.

```
(new NovaResourceCard(\App\Nova\Resources\User::class))->addCardClasses(['bg-white', 'dark:bg-gray-800'])
(new NovaResourceCard(\App\Nova\Resources\User::class))->addCardClasses('bg-white dark:bg-gray-800')
```

### Add Classes To Resource Heading

[](#add-classes-to-resource-heading)

Use the `addResourceHeadingClasses` method.

```
(new NovaResourceCard(\App\Nova\Resources\User::class))->addResourceHeadingClasses(['bg-white', 'dark:bg-gray-800'])
(new NovaResourceCard(\App\Nova\Resources\User::class))->addResourceHeadingClasses('bg-white dark:bg-gray-800')
```

### Add Classes To Resource IndexErrorDialog

[](#add-classes-to-resource-indexerrordialog)

Use the `addResourceIndexErrorDialogClasses` method.

```
(new NovaResourceCard(\App\Nova\Resources\User::class))->addResourceIndexErrorDialogClasses(['my-class', 'p-2'])
(new NovaResourceCard(\App\Nova\Resources\User::class))->addResourceIndexErrorDialogClasses('my-class p-2'')
```

### Add Classes To Resource IndexEmptyDialog

[](#add-classes-to-resource-indexemptydialog)

Use the `addResourceIndexEmptyDialogClasses` method.

```
(new NovaResourceCard(\App\Nova\Resources\User::class))->addResourceIndexEmptyDialogClasses(['my-class', 'p-2'])
(new NovaResourceCard(\App\Nova\Resources\User::class))->addResourceIndexEmptyDialogClasses('my-class p-2'')
```

### Add Classes To Resource ResourceTable

[](#add-classes-to-resource-resourcetable)

Use the `addResourceResourceTableClasses` method.

```
(new NovaResourceCard(\App\Nova\Resources\User::class))->addResourceResourceTableClasses(['my-class', 'p-2'])
(new NovaResourceCard(\App\Nova\Resources\User::class))->addResourceResourceTableClasses('my-class p-2'')
```

---

### Advanced Usage

[](#advanced-usage)

Create your own Nova resource to customize it even more.

You should set `$globallySearchable` to false so that this resource is not included in the global search.
(See: [Disabling Global Search For A Resource](https://nova.laravel.com/docs/4.0/search/global-search.html#disabling-global-search-for-a-resource))

Examples Resource from [example-app-nvpRt7](https://github.com/Muetze42/example-app-nvpRt7)

```
class CardUser extends Resource
{
    /**
     * The model the resource corresponds to.
     *
     * @var string
     */
    public static string $model = \App\Models\User::class;

    /**
     * Indicates if the resource should be globally searchable.
     *
     * @var bool
     */
    public static $globallySearchable = false;

    /**
     * Get the displayable label of the resource.
     *
     * @return string
     */
    public static function label(): string
    {
        return __('Latest Users');
    }

    /**
     * The pagination per-page options configured for this resource.
     *
     * @return array
     */
    public static $perPageOptions = [5];

    /**
     * Build an "index" query for the given resource.
     *
     * @param NovaRequest $request
     * @param \Illuminate\Database\Eloquent\Builder $query
     * @return \Illuminate\Database\Eloquent\Builder
     */
    public static function indexQuery(NovaRequest $request, $query): \Illuminate\Database\Eloquent\Builder
    {
        return $query->orderByDesc('created_at');
    }

    /**
     * Get the fields displayed by the resource.
     *
     * @param NovaRequest $request
     * @return array
     */
    public function fields(NovaRequest $request): array
    {
        return [
            ID::make()->sortable(),
            Text::make(__('Name'), 'name'),
        ];
    }

    /**
     * Determine if the current user can delete the given resource.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return bool
     */
    public function authorizedToDelete(Request $request): bool
    {
        return false;
    }

    /**
     * Determine if the current user can restore the given resource.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return bool
     */
    public function authorizedToRestore(Request $request): bool
    {
        return false;
    }

    /**
     * Determine if the current user can update the given resource.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return bool
     */
    public function authorizedToUpdate(Request $request): bool
    {
        return false;
    }

    /**
     * Determine if the current user can force delete the given resource.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return bool
     */
    public function authorizedToForceDelete(Request $request): bool
    {
        return false;
    }

    /**
     * Determine if the current user can replicate the given resource or throw an exception.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return bool
     */
    public function authorizeToReplicate(Request $request): bool
    {
        return false;
    }

    // ...
```

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance13

Infrequent updates — may be unmaintained

Popularity31

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 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.

###  Release Activity

Cadence

Every ~84 days

Total

5

Last Release

795d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/2579233?v=4)[Muetze](/maintainers/Muetze)[@muetze](https://github.com/muetze)

---

Top Contributors

[![Muetze42](https://avatars.githubusercontent.com/u/26193232?v=4)](https://github.com/Muetze42 "Muetze42 (18 commits)")

---

Tags

laravellaravel-novalaravel-nova-4laravel-nova-cardlaravelnova

### Embed Badge

![Health badge](/badges/norman-huth-nova-resource-card/health.svg)

```
[![Health](https://phpackages.com/badges/norman-huth-nova-resource-card/health.svg)](https://phpackages.com/packages/norman-huth-nova-resource-card)
```

###  Alternatives

[optimistdigital/nova-sortable

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

2872.1M6](/packages/optimistdigital-nova-sortable)[outl1ne/nova-sortable

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

2861.8M9](/packages/outl1ne-nova-sortable)[laravel/nova-log-viewer

A Laravel Nova tool for viewing your application logs.

136301.3k1](/packages/laravel-nova-log-viewer)[stepanenko3/nova-command-runner

Laravel Nova tool for running Artisan and bash(shell) commands.

36983.0k](/packages/stepanenko3-nova-command-runner)[sbine/route-viewer

A Laravel Nova tool to view your registered routes.

57215.9k](/packages/sbine-route-viewer)[dniccum/nova-documentation

A Laravel Nova tool that allows you to add markdown-based documentation to your administrator's dashboard.

37116.4k](/packages/dniccum-nova-documentation)

PHPackages © 2026

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