PHPackages                             bmd/enable-list-icons - 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. bmd/enable-list-icons

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

bmd/enable-list-icons
=====================

Extension to add icons to list blocks.

v0.5.2(1mo ago)061GPL-2.0-or-laterJavaScriptCI passing

Since Apr 29Pushed 1mo agoCompare

[ Source](https://github.com/bob-moore/enable-list-icons)[ Packagist](https://packagist.org/packages/bmd/enable-list-icons)[ Docs](https://github.com/bob-moore/enable-list-icons)[ RSS](/packages/bmd-enable-list-icons/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (8)Dependencies (10)Versions (10)Used By (0)

Enable List Icons
=================

[](#enable-list-icons)

[![Enable List Icons](assets/banner-1544x500.jpg)](assets/banner-1544x500.jpg)

[![WordPress](https://camo.githubusercontent.com/37248c7b4f293acfd4db49b12db9762dc0dc5fc99b9754d4f7d9d9a648c01018/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f576f726450726573732d362e392532422d3338353865393f6c6f676f3d776f72647072657373266c6f676f436f6c6f723d666666)](https://wordpress.org/)[![PHP](https://camo.githubusercontent.com/8da406bc1dd3dcb38541095055eef712a822936eee12a6c185a71f6e678091b2/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e322532422d3737376262343f6c6f676f3d706870266c6f676f436f6c6f723d666666)](https://www.php.net/)[![Latest Release](https://camo.githubusercontent.com/a70e0e3bf060f5c4bb1d48c1de1b846e335bbfcf08d56c770441cf8ea9ea6ba9/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f762f72656c656173652f626f622d6d6f6f72652f656e61626c652d6c6973742d69636f6e733f6c6162656c3d72656c65617365)](https://github.com/bob-moore/enable-list-icons/releases/latest)[![License](https://camo.githubusercontent.com/cd781d0568c328bdea35f284d33e2b1e96675ef60910926c1dd75d5a4d46de66/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d47504c2d2d322e302d2d6f722d2d6c617465722d626c7565)](https://www.gnu.org/licenses/gpl-2.0.html)

[![Lint CSS](https://github.com/bob-moore/enable-list-icons/actions/workflows/lint-css.yml/badge.svg)](https://github.com/bob-moore/enable-list-icons/actions/workflows/lint-css.yml)[![Lint JS](https://github.com/bob-moore/enable-list-icons/actions/workflows/lint-js.yml/badge.svg)](https://github.com/bob-moore/enable-list-icons/actions/workflows/lint-js.yml)[![Lint PHP](https://github.com/bob-moore/enable-list-icons/actions/workflows/lint-php.yml/badge.svg)](https://github.com/bob-moore/enable-list-icons/actions/workflows/lint-php.yml)

Want to give it a test drive? Try it in the WP Playground: [![Try it in the WordPress Playground](https://camo.githubusercontent.com/59f02525950e396dbf370f0d7230759f4d1bd9bba715b5cdf6f1ffc8ff4ae0f6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f57505f506c617967726f756e642d76302e332e302d626c75653f6c6f676f3d776f72647072657373266c6f676f436f6c6f723d253233666666266c6162656c436f6c6f723d25323333383538653926636f6c6f723d253233333835386539)](https://playground.wordpress.net/?blueprint-url=https://raw.githubusercontent.com/bob-moore/enable-list-icons/main/_playground/blueprint-github.json)

Add icons to the WordPress List block (`core/list`) in both the editor and frontend.

Features
--------

[](#features)

- Adds icon controls to `core/list` in the block inspector.
- Supports icon libraries:
    - WordPress icons
    - MUI icons
    - MUI variant families, including Outlined, Rounded, and Sharp
    - Custom SVG input
- Lets you set icon placement inside the list item or outside as an aligned marker.
- Lets you set icon color, size, gap, and vertical offset per list block.
- Renders sanitized inline SVG for each list item on the frontend.
- Ships with GitHub-based plugin updates in the WordPress admin update UI.

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

[](#requirements)

- WordPress 6.9+
- PHP 8.2+

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

[](#installation)

### Install as a plugin

[](#install-as-a-plugin)

1. Download the latest release zip from GitHub releases.
2. In WordPress admin, go to Plugins -&gt; Add New Plugin -&gt; Upload Plugin.
3. Upload the zip and activate Enable List Icons.

### Install via Composer

[](#install-via-composer)

If you are embedding this into your own project:

```
composer require bmd/enable-list-icons
```

If your parent plugin already uses PHP-DI, you can load this package's definitions into the parent container and override only the install-specific path and URL values:

```
use Bmd\EnableListIcons\Controller;
use Bmd\EnableListIcons\Services\FilePathResolver;
use Bmd\EnableListIcons\Services\UrlResolver;
use function DI\autowire;
use function DI\string;

$definitions = require __DIR__ . '/vendor/bmd/enable-list-icons/inc/definitions.php';

return array_merge(
    $definitions,
    [
        FilePathResolver::class => autowire()
            ->constructorParameter(
                'path',
                string( '{path}vendor/bmd/enable-list-icons/' )
            ),

        UrlResolver::class => autowire()
            ->constructorParameter(
                'url',
                string( '{url}vendor/bmd/enable-list-icons/' )
            ),
    ]
);
```

Then ask your parent container for `Controller::class` during your plugin bootstrap. PHP-DI will call the injected hook-registration methods as it creates the controller.

If your parent plugin does not use PHP-DI, load the dependency through its `Main` class so the package can build its own container:

```
use Bmd\EnableListIcons\Main;

$enable_list_icons = new Main(
    [
        'package' => 'enable_list_icons',
        'path'    => plugin_dir_path( __FILE__ ) . 'vendor/bmd/enable-list-icons/',
        'url'     => plugin_dir_url( __FILE__ ) . 'vendor/bmd/enable-list-icons/',
    ]
);

$enable_list_icons->mount();
```

Both examples should point `path` and `url` at the Enable List Icons dependency root, not the parent plugin root.

Usage
-----

[](#usage)

1. Add a List block.
2. Open the block sidebar.
3. Open the Icon panel.
4. Choose an icon source (WordPress, MUI, or Custom SVG).
5. Adjust icon placement, color, size, gap, and vertical offset.
6. Save and view the post.

Custom Icon Families
--------------------

[](#custom-icon-families)

Developers can add static JSON icon families with the `enable_list_icons_icon_families` filter. Each JSON file should contain an array of picker-compatible icon objects with `name`, `label`, and `source` properties.

```
add_filter( 'enable_list_icons_icon_families', function ( $families ) {
    $families['brand-icons'] = array(
        'label' => 'Brand Icons',
        'url'   => plugin_dir_url( __FILE__ ) . 'icons/brand-icons.json',
    );

    return $families;
} );
```

Icon Placement
--------------

[](#icon-placement)

### Inside

[](#inside)

The icon appears inline before each list item text. This is useful when the icon should feel like part of the content flow.

### Outside

[](#outside)

The icon appears in reserved space beside each list item. This is useful for aligned visual markers and larger icons.

Updates
-------

[](#updates)

This plugin is distributed through GitHub releases (not WordPress.org). The plugin includes a scoped GitHub updater so WordPress can detect and apply new versions from this repository.

Changelog
---------

[](#changelog)

### 0.5.1

[](#051)

- Changed nested list handling so parent list icons are only applied to direct list items.
- Let nested list blocks manage their own icon settings without inheriting parent icon markup or layout styles.
- Added regression coverage for nested list rendering.

### 0.5.0

[](#050)

- Added current icon preview with removal button to the icon picker control.
- Added copy/paste toolbar for icon styles, allowing icon settings to be copied from one list block and pasted to another.

### 0.4.1

[](#041)

- Updated icon CSS for improved styling.
- Added nested list item (`li > ul`, `li > ol`) support.
- Fixed PHP-DI compiled container scoping to cover StringDefinition and InvalidDefinition string literals across all Compiler classes.

### 0.4.0

[](#040)

- Refactored plugin internals into separate Main, Controller, Module, Provider, Service, and Transformer classes for a cleaner shared-architecture design.
- Replaced monolithic Plugin class with PHP-DI definitions file and purpose-built service classes (AssetLoader, FilePathResolver, ScriptLoader, StyleLoader, UrlResolver).
- Added Docker-based release build support via Dockerfile.build and build-plugin-release-docker.sh.
- Added release packaging script (build-plugin-release.mjs) to automate zip assembly.
- Added scoper.custom.php for PHP-DI namespace scoping.
- Added .gitattributes to exclude dev-only files from Composer/git archive exports.
- Fixed PHP lint workflow scoped dependency install step.

### 0.3.0

[](#030)

- Refined the PHP plugin architecture around `Main`, `Controller`, service providers, transformers, and PHP-DI definitions.
- Updated Composer autoloading for the new `Bmd\EnableListIcons` namespace structure.
- Added JSON icon family loading with support for WordPress, MUI, MUI Outlined, MUI Rounded, and MUI Sharp families.
- Added separate GitHub Actions lint workflows for CSS, JS, and PHP.
- Added a WordPress Playground blueprint and demo list content.
- Updated release packaging to include scoped dependencies, a compiled container, Docker build support, and production Composer files.

### 0.2.0

[](#020)

- Added toggle-to-deselect behavior for the icon picker.
- Added a dedicated "Icon Styles" panel grouping placement, size, gap, and vertical offset controls.
- Improved unit/range control layout with a shared label and stacked input plus slider.
- Fixed null handling for icon attributes throughout (`IconValue` properties now nullable).
- Fixed icon outside placement removing excess left padding on list items.

### 0.1.0

[](#010)

- Initial release as Enable List Icons.
- Added icon picker with WordPress and MUI icon sets.
- Added inside/outside placement toggle.
- Added icon color, size, gap, and vertical offset controls.
- Added server-side render filter for `core/list`.
- Added scoped GitHub updater via `wpify/scoper`.

###  Health Score

35

—

LowBetter than 77% of packages

Maintenance89

Actively maintained with recent releases

Popularity8

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity30

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.

###  Release Activity

Cadence

Every ~4 days

Total

8

Last Release

53d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/adf6af151397e0b108508ed9a8554fa09dc00f90864873446e76fa5b17463e23?d=identicon)[bobjutsu](/maintainers/bobjutsu)

---

Top Contributors

[![bob-moore](https://avatars.githubusercontent.com/u/1745619?v=4)](https://github.com/bob-moore "bob-moore (23 commits)")

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/bmd-enable-list-icons/health.svg)

```
[![Health](https://phpackages.com/badges/bmd-enable-list-icons/health.svg)](https://phpackages.com/packages/bmd-enable-list-icons)
```

###  Alternatives

[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.7k38.9k](/packages/matomo-matomo)[moodle/moodle

Moodle - the world's open source learning platform

7.2k88.5k114](/packages/moodle-moodle)[azuracast/azuracast

The AzuraCast self-hosted web radio station management suite.

3.9k27.8k](/packages/azuracast-azuracast)[phlak/directory-lister

PHP directory lister

2.5k1.4k](/packages/phlak-directory-lister)[infinum/eightshift-libs

WordPress libs developed by Eightshift team to use in modern WordPress.

63125.5k3](/packages/infinum-eightshift-libs)[drupal-code-builder/drupal-code-builder

Code generator for Drupal

27253.3k1](/packages/drupal-code-builder-drupal-code-builder)

PHPackages © 2026

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