PHPackages                             october/amber - 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. october/amber

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

october/amber
=============

Form, List and UI tools

601PHP

Since Jun 2Pushed 1w ago2 watchersCompare

[ Source](https://github.com/octobercms/amber)[ Packagist](https://packagist.org/packages/october/amber)[ RSS](/packages/october-amber/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependenciesVersions (1)Used By (0)

October Amber
=============

[](#october-amber)

Form, List and UI tools for Laravel and [October CMS](https://octobercms.com).

Amber is the foundation layer for rendering forms, lists, filters and other backend widgets. It is the same widget engine that powers the October CMS admin panel, packaged as a standalone library so it can be used anywhere. This includes front-end pages, inside October CMS themes/components, or directly from a plain Laravel route/controller.

What is this?
-------------

[](#what-is-this)

Amber provides a reusable, YAML-driven widget system for building data-editing interfaces. It is not tied to a specific application shell. Use it to:

- Render forms and lists in a regular Laravel app, outside of any CMS.
- Build the field-rendering pipeline inside October CMS itself.
- Compose admin-style UIs from configuration rather than hand-written markup.

In short, Amber is the wider abstraction that sits below October's backend module; the part that knows how to turn a `fields.yaml` into a working form, or a set of `columns.yaml` into a sortable list.

Each widget implements the [Larajax](https://larajax.org/guide/defining-components.html) `ViewComponentInterface`, so AJAX handlers (uploads, validation, partial updates, etc.) are wired in automatically the same way as any other Larajax view component. A widget rendered by Amber behaves like a first-class Larajax component on the page.

Requirements
------------

[](#requirements)

- PHP 8.2 or higher
- Laravel 12
- [october/rain](https://github.com/octobercms/library) (used for the underlying database, validation, and HTML helpers)
- [larajax/larajax](https://larajax.org) (provides the View Component interface widgets implement)

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

[](#installation)

```
composer require october/amber
```

The package registers an `AmberServiceProvider` automatically via Laravel's package discovery.

Usage
-----

[](#usage)

Build a widget inline in your controller action with `Form::make(...)`, then pass it to the view:

```
use App\Models\User;
use October\Amber\Widgets\Form;

public function edit($id)
{
    $user = User::findOrFail($id);

    $form = Form::make([
        'model' => $user,
        'fields' => '~/resources/amber/user/fields.yaml',
    ]);

    return view('users.edit', ['form' => $form]);
}
```

`Form::make([...])` constructs the widget, binds it to the current controller, and returns it. The widget is a regular PHP object after that - pass it to the view, store it in a variable, do whatever you would do with any other object. AJAX handlers defined on the widget (file uploads, inline validation, partial reloads, etc.) are wired up automatically.

Render the widget in a Blade view:

```
{!! $form->render() !!}
```

Amber widgets are [Larajax view components](https://larajax.org/guide/defining-components), and `Form::make` is the standard inline registration pattern documented there. For details on how the action lifecycle handles AJAX requests, how to guard side effects with `request()->ajax()`, or how to use widgets outside a `LarajaxController`, see the Larajax docs.

Included Widgets
----------------

[](#included-widgets)

- **Form** - YAML or array-driven form builder with field widgets (text, dropdown, repeater, file upload, etc.)
- **Lists** - sortable, paginated record lists with column types and row actions
- **ListStructure** - tree and reorderable list variants
- **Filter** - scope-based filtering for list views
- **Toolbar** - action buttons and search bar

###  Health Score

22

—

LowBetter than 22% of packages

Maintenance64

Regular maintenance activity

Popularity6

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity11

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/106532?v=4)[october](/maintainers/october)[@october](https://github.com/october)

---

Top Contributors

[![daftspunk](https://avatars.githubusercontent.com/u/1392869?v=4)](https://github.com/daftspunk "daftspunk (11 commits)")

### Embed Badge

![Health badge](/badges/october-amber/health.svg)

```
[![Health](https://phpackages.com/badges/october-amber/health.svg)](https://phpackages.com/packages/october-amber)
```

###  Alternatives

[colinmollenhour/modman

Module Manager

72178.3k3](/packages/colinmollenhour-modman)[giacocorsiglia/wordpress-stubs

WordPress function, class, and global variable declaration stubs for easier static analysis.

35163.2k13](/packages/giacocorsiglia-wordpress-stubs)

PHPackages © 2026

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