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

701PHP

Since Jun 22Pushed 1mo 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.

### Publishing assets

[](#publishing-assets)

Amber widgets ship a small CSS + JS bundle that the browser loads at runtime. Publish it once after installing (and again after upgrading):

```
php artisan vendor:publish --tag=amber-assets
```

Files are copied verbatim into `public/vendor/amber/`. There is no build step; the JS is plain ES modules and the CSS is plain CSS with `@import`.

Include them in your layout, after the larajax framework bundle:

```

```

Larajax exposes the `window.jax` API that Amber widgets register their controls against, so it must load first.

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 21% of packages

Maintenance61

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 (19 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

[mooore/magento2-module-wordpress-integration-cms

Magento 2 module for integrating Wordpress pages in Magento CMS pages.

1173.8k](/packages/mooore-magento2-module-wordpress-integration-cms)

PHPackages © 2026

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