Symfony UX 2.32.0 introduces the new Toolkit Package, a set of fully customizable UI components, with Shadcn UI as the first available kit. The initial components include Button, Dialog, Field, Card, Pagination, Table, and InputGroup.

Additional updates across Symfony UX include:

  • Autocomplete & Turbo: bug fixes, improved rendering, and better handling of TomSelect and Mercure transports.
  • Twig Components: new options to disable component dumps and improved support for anonymous components.
  • Live Components: clearer documentation around re-rendering behavior and improved dependency stability.
  • Translator: API refactor to use string-based keys, new configuration options for filtering and TypeScript generation, simplified internals, and improved performance for non-ICU translations.
  • Map & Icons: minor API and configuration fixes.

This release also expands automated testing, improves CI and code-style tooling, and adds compatibility testing for upcoming Symfony versions.

Changelog Since SymfonyUX 2.31.0

Autocomplete

  • Untranslated no_results label when options_as_html is set by @maxperei in PR #3148
  • Add documentation about plugins management by @raphael-geffroy in PR #3087
  • Fix missing space in JSON snippet by @kasperh90 in PR #3207
  • Fix issue where TomSelect could already been initialized on an element by @daFish in PR #3155
  • Fix code-block rendering in Autocomplete by @JoppeDC in PR #3259

Turbo

  • Fix Mercure custom transport with turbo_steam_listen by @Fan2Shrek in PR #3147

Twig Components

  • Add option to disable the dump of components by @alinceDev in PR #3066
  • Fix typo in documentation by @alvidias in PR #3168
  • Allow using directory name as component name for anonymous components by @andyexeter in PR #3169

Live Components

  • Add clarification of component re-rendering vs. loading content by @Wertisdk in PR #3164
  • Pin phpdocumentor/reflection-docblock to non dev version by @Kocal in PR #3250
  • Update index.rst with MarkdownTextarea template info by @Kocal in PR #3267

Map

  • Add Map::removeAll*() method on Elements by @StevenRenaux in PR #3245

Icons

  • Fix aliases and default_attributes config types for config/reference.php by @Kocal in PR #3200

Toolkit

  • Add support for documenting props/blocks API by @Kocal in PR #3154
  • Add Item component by @bernard-ng in PR #3144
  • Update Button CSS class, remove as props by @ker0x in PR #3158
  • Add CONTRIBUTING.md by @Kocal in PR #3161
  • Add missing as props, update CONTRIBUTING.md by @ker0x in PR #3166
  • Add Dialog component by @seb-jean in PR #3173
  • Pin tales-from-a-dev/twig-tailwind-extra to ^1.0.0 by @Kocal in PR #3190
  • Remove hover style to clearly distinguish from Button by @tassilogroeper in PR #3197
  • Add new component kdb from shadcn ui by @tassilogroeper in PR #3198
  • add Empty component by @bernard-ng in PR #3213
  • add Field component by @bernard-ng in PR #3214
  • add ButtonGroup component by @bernard-ng in PR #3215
  • Add InputGroup component by @daFish in PR #3236
  • Fix forgotten documentation links, follows #3097 by @Kocal in PR #3254
  • Update CSS file by @Kocal in PR #3258

Translator

  • Refactor API to use string-based translation keys instead of generated constants by @Kocal in PR #3208
  • Early exit parameters extraction from Intl messages, if no { is found by @Kocal in PR #3219
  • Add option ux_translator.dump_typescript to enable/disable TypeScript types generation by @Kocal in PR #3218
  • Reword dump_typescript option description by @Kocal in PR #3221
  • Refactor TranslationsDumper options from __constructor and setters, to dump method by @Kocal in PR #3244
  • Add keys_patterns configuration option to filter dumped translations by key patterns by @Kocal in PR #3248

Site

  • Fix upson logo & url by @smnandre in PR #3220
  • Hide Toolkit menu by @Kocal in PR #3224
  • Minor fixes before deployement by @Kocal in PR #3229
  • Un-hide Toolkit, partially reverts #3224 by @Kocal in PR #3255
  • Rework Toolkit recipe rendering system, improve our Markdown converter by @Kocal in PR #3256
  • Fix TerminalCommand layout by @smnandre in PR #3268

Miscellaneous

  • Tests over Symfony 7.4.0-RC1 and 8.0.0-RC1 by @Kocal in PR #3159
  • Fix CI when testing Symfony RCs versions by @Kocal in PR #3178
  • Add support for MercureBundle ^0.4.1 and Mercure ^0.7.0 by @Kocal in PR #3185
  • Tests on Symfony 8 stable by @Kocal in PR #3192
  • Git-ignore config/reference.php by @Kocal in PR #3205
  • Add E2E tests for Autocomplete by @Kocal in PR #3230
  • Add E2E tests for LiveComponent by @Kocal in PR #3235
  • Add E2E tests for Chart.js by @Kocal in PR #3237
  • Add E2E tests for Turbo by @Kocal in PR #3239
  • Add E2E tests for CropperJS by @Kocal in PR #3240
  • Add quality tools: PHP-CS-Fixer and Twig-CS-Fixer by @Kocal in PR #3249
  • Fix pnpm build command by @Kocal in PR #3252
  • Truly leverage PHP-CS-Fixer and Twig-CS-Fixer to Fabbot by @Kocal in PR #3251
  • Ensure "apps/" exists before adding it in Finder by @Kocal in PR #3257
  • PHP CS Fixer: update usage by @keradus in PR #3263
  • Run Twig-CS-Fixer on all repo's files, follow #3263 by @Kocal in PR #3264
Published in #Releases