PHPackages                             nowo-tech/icon-selector-bundle - 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. nowo-tech/icon-selector-bundle

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

nowo-tech/icon-selector-bundle
==============================

Symfony form type for icon selection: direct selector and search. Integrates with Symfony UX Icons (Heroicons, Bootstrap Icons, etc.). Stores icon identifier as string.

v1.0.9(2mo ago)0743↓17.5%[4 PRs](https://github.com/nowo-tech/IconSelectorBundle/pulls)MITPHPPHP &gt;=8.1 &lt;8.6CI passing

Since Mar 12Pushed 1mo agoCompare

[ Source](https://github.com/nowo-tech/IconSelectorBundle)[ Packagist](https://packagist.org/packages/nowo-tech/icon-selector-bundle)[ Docs](https://github.com/nowo-tech/icon-selector-bundle)[ GitHub Sponsors](https://github.com/HecFranco)[ RSS](/packages/nowo-tech-icon-selector-bundle/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (9)Dependencies (40)Versions (14)Used By (0)

Icon Selector Bundle
====================

[](#icon-selector-bundle)

[![CI](https://github.com/nowo-tech/IconSelectorBundle/actions/workflows/ci.yml/badge.svg)](https://github.com/nowo-tech/IconSelectorBundle/actions/workflows/ci.yml) [![Packagist Version](https://camo.githubusercontent.com/cd25aa760c8a97f1b7fd0505ef8558ca4680bc81c438a1af04c5dd358879a0a5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6e6f776f2d746563682f69636f6e2d73656c6563746f722d62756e646c652e7376673f7374796c653d666c6174)](https://packagist.org/packages/nowo-tech/icon-selector-bundle) [![Packagist Downloads](https://camo.githubusercontent.com/85af20a6c2a661a192f3d44488a6dceba33951e25efc27f82d99a891cc2838b4/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6e6f776f2d746563682f69636f6e2d73656c6563746f722d62756e646c652e737667)](https://packagist.org/packages/nowo-tech/icon-selector-bundle) [![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE) [![PHP](https://camo.githubusercontent.com/3f99b197569aa2dcfbefff17ecc68d74098e7f929d8b52dc40f3a898f740eae1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e322532422d3737374242343f6c6f676f3d706870)](https://php.net) [![Symfony](https://camo.githubusercontent.com/14a8a35146549d981b2ec9e844832719c6d44417e478603dbbd9bebb50a0fcc1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f53796d666f6e792d37253230253743253230382d3030303030303f6c6f676f3d73796d666f6e79)](https://symfony.com) [![GitHub stars](https://camo.githubusercontent.com/0e008a6f1a6fbe8809040c40c3f8bd1b7daf4c60c389cfc266b988b5a702a55c/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f6e6f776f2d746563682f69636f6e2d73656c6563746f722d62756e646c652e7376673f7374796c653d736f6369616c266c6162656c3d53746172)](https://github.com/nowo-tech/IconSelectorBundle) [![Coverage](https://camo.githubusercontent.com/cd0704b56f1d56def350b6d0164316307bb2f47834225fd85443b6fb0059bc73/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f436f7665726167652d3130302532352d627269676874677265656e)](#tests-and-coverage)

> ⭐ **Found this useful?** [Install from Packagist](https://packagist.org/packages/nowo-tech/icon-selector-bundle) · Give it a **star** on [GitHub](https://github.com/nowo-tech/IconSelectorBundle) so more developers can find it.

**Icon Selector Bundle** — Symfony form type for selecting an icon with two modes: **direct selector** (grid) and **search** (filter by text). The value is stored as a string (e.g. `heroicons-outline:home`, `bi:house`). Configurable icon sets (Symfony UX Icons). For Symfony 7 and 8 · PHP 8.2+.

Table of contents
-----------------

[](#table-of-contents)

- [Quick search terms](#quick-search-terms)
- [Features](#features)
- [Installation](#installation)
- [Usage](#usage)
- [Configuration](#configuration)
- [Internationalization](#internationalization)
- [Documentation](#documentation)
- [Requirements](#requirements)
- [Demo](#demo)
- [Development](#development)
- [License &amp; author](#license--author)

Quick search terms
------------------

[](#quick-search-terms)

Looking for **icon selector**, **icon picker**, **Symfony form icon**, **UX Icons form**, **Heroicons selector**, **Bootstrap Icons form**, **form type icon**? You're in the right place.

Features
--------

[](#features)

- ✅ **IconSelectorType** form type with `mode`: **direct** (grid of icons) or **search** (input + filtered list)
- ✅ Value is a single **string** (icon identifier compatible with Symfony UX Icons)
- ✅ **Configurable icon sets** in bundle config (e.g. `heroicons`, `bootstrap-icons`)
- ✅ **API endpoint** returns available icons (JSON) for the frontend; **batch SVG endpoint** (`/svg`) returns SVG markup for many icon IDs in one request (server uses ux\_icon), so the selector avoids N individual requests when painting icons
- ✅ **Form theme** aligned with your app: set `form_theme` to match `twig.form_themes` (form\_div, Bootstrap 5, etc.)
- ✅ **Frontend**: TypeScript + Vite; built script in `Resources/public/` for `assets:install`
- ✅ **Demos** (Symfony 7 and 8) with both selector types, persisting the chosen icon string
- ✅ **Demos run with FrankenPHP** (Caddy, HTTP on port 80 in the container). Default **`APP_ENV=dev`** uses **Caddyfile.dev** (no PHP worker so template/PHP changes show on refresh). **Worker mode** applies to a production-style setup — see [docs/DEMO-FRANKENPHP.md](docs/DEMO-FRANKENPHP.md)
- ✅ **Internationalizable**: uses Symfony Translation; domain `NowoIconSelectorBundle` for placeholder, search placeholder and choice labels; override with `translation_domain` and `search_placeholder` options

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

[](#installation)

```
composer require nowo-tech/icon-selector-bundle
```

[![Install from Packagist](https://camo.githubusercontent.com/25ba1d8b573a14c09873ad1c973fe17a929432bcf6cf4ceca6fa0910e34c5d08/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5061636b61676973742d696e7374616c6c2d3737374242343f6c6f676f3d636f6d706f736572)](https://packagist.org/packages/nowo-tech/icon-selector-bundle)

With **Symfony Flex**, the recipe (if available) registers the bundle and adds config. Without Flex, see [docs/INSTALLATION.md](docs/INSTALLATION.md) for manual steps.

**Manual registration** in `config/bundles.php`:

```
