Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Ux Laravel Package

enabel/ux

Enabel UX is a Symfony bundle offering reusable Twig components and utilities for building consistent, maintainable user interfaces. Install it with Composer to streamline common UI patterns across Symfony applications and reduce repetitive template code. Documentation included.

View on GitHub
Deep Wiki
Context7
v2.6.0

Changes

  • 🔥 The Bootstrap layout no longer loads anything from a CDN (#30)

    [@EnabelUx](https://github.com/EnabelUx)/layout/bootstrap/base.html.twig used to put the Enabel theme 3.0.2 CSS and bootstrap.bundle.min.js from jsDelivr in its stylesheets and javascripts blocks, then render importmap('app'). Applications import Bootstrap and the theme from their own entrypoint, so pages that did not override those blocks (typically login and reset password) loaded the theme twice, Bootstrap JS twice (double event handlers on dropdowns and collapses), and, through the theme 3.0.2, sent visitors' IP addresses to Google Fonts.

    The stylesheets block is now empty and javascripts only renders importmap('app'). Both blocks still exist, so templates overriding them are unaffected.

  • ⬆️ Enabel Bootstrap Theme 4 is accepted (^3.0.2 || ^4.0). Version 4 self-hosts its fonts and no longer bundles Font Awesome and flag-icons. No template of this bundle uses either.

Upgrading

Make sure assets/app.js imports Bootstrap and the theme:

import 'bootstrap';
import '[@enabel](https://github.com/enabel)/enabel-bootstrap-theme/dist/css/enabel-bootstrap-theme.min.css';

The CDN script also defined a global window.bootstrap. Inline scripts relying on it must import from bootstrap instead (import { Toast } from 'bootstrap').

If you move to the theme 4, import Font Awesome and flag-icons yourself when your templates use fa-* or fi fi-* classes. importmap:update ignores version constraints and will pull the theme 4: add those imports first.

Full Changelog: https://github.com/Enabel/ux/compare/v2.5.0...v2.6.0

v2.5.0

New features

  • ✨ Enabel:Ux:LocaleSwitcher gains labelFormat and header (#29)

    Apps carrying three or more locales could not afford the full own-language name in the navbar — English / Français / Nederlands eats the space the menu items need — while the only alternative, showLocaleName: false, left a bare flag with no textual cue.

    • labelFormat — name (default, unchanged), code (EN) or none (flag only).
    • header — optional dropdown-header at the top of the menu, e.g. 'Change language'. Translate at the call site; defaults to null.
    {{ component('Enabel:Ux:LocaleSwitcher', {
        locales: enabled_locales,
        labelFormat: 'code',
        header: 'navigation.language.change'|trans,
    }) }}
    

Bug fixes

  • Flags are no longer letterboxed inside their own border. They were forced into a 1.5rem square, but the cif:* set has no single aspect ratio (cif:nl is 2:1, cif:gb is 3:2), so the flag shrank and centred while the rounding and border framed empty space. Flags now render in a fixed 4:3 box (1.5rem × 1.125rem) with preserveAspectRatio="xMidYMid slice", and carry the locale's own-language name as title.

    Note both width and height are set explicitly: a host application's ux_icons.default_icon_attributes (commonly width/height: 1em) otherwise wins and forces the square back.

Backward compatibility

showLocaleName keeps working — labelFormat is derived from it, so a call site passing false still resolves to none, and an explicit labelFormat always wins. The property is now marked [@deprecated](https://github.com/deprecated); prefer labelFormat.

The only visual change for callers passing nothing is the corrected flag styling. The label still defaults to the own-language name.

Docs

The LocaleSwitcher docs documented the parameter as show_locale_name; the component has always read showLocaleName.

Full Changelog: https://github.com/Enabel/ux/compare/v2.4.1...v2.5.0

v2.4.1

Bug fixes

  • 🐛 Enabel:Ux:ErrorPage default symbol restored to brand colours and correct cropping (#28)

    The symbol shipped since v2.3.0 was traced with potrace, which flattened the three Enabel petals into a single fill="#000000" and kept a 200x200 viewBox in which the glyph only covered 64% × 59% of the box. Rendered through the theme's .bg img { width: 550px; height: 550px } with xMidYMid meet, that showed a grey blob centred in the corner instead of the brand mark bleeding off the top-left edge — and it looked inconsistent next to the default logo, which is a full-colour PNG.

    Each petal now carries its brand value (grey #58575A, yellow #F9B500, red #D81A1A) and the viewBox is cropped onto the glyph bounding box (36 41 129 118). Same 3 paths, no geometry change; the data: URI stays an SVG and is now 1434 bytes instead of 1578.

    Consumers that worked around this by passing an explicit symbol="…" to Enabel:Ux:ErrorPage can drop the override.

Internal

  • ⬆️ Upgrade PHPUnit to 12, test against Symfony 7.4 and 8.1, inline the composer-validate / php-cs-fixer / phpstan CI jobs (#27)

Full Changelog: https://github.com/Enabel/ux/compare/v2.4.0...v2.4.1

v2.4.0

What's Changed

Full Changelog: https://github.com/Enabel/ux/compare/v2.3.0...v2.4.0

v2.3.0

What's Changed

Full Changelog: https://github.com/Enabel/ux/compare/v2.2.0...v2.3.0

v2.2.0

What's Changed

Full Changelog: https://github.com/Enabel/ux/compare/v2.1.0...v2.2.0

v2.1.0

What's Changed

Full Changelog: https://github.com/Enabel/ux/compare/v2.0.3...v2.1.0

v2.0.3

Fix event bubbling for data-target=modal links

v2.0.2

What's Changed

New Features

  • Add image support in MenuItem component — display an avatar/photo instead of an icon, with a white border for visual consistency

Files Changed

  • src/Component/Navigation/MenuItem.php
  • templates/navigation/menu_item.html.twig
v2.0.0

What's Changed

New Contributors

Full Changelog: https://github.com/Enabel/ux/compare/v1.2.0...v2.0.0

v1.2.0

What's Changed

Full Changelog: https://github.com/Enabel/ux/compare/v1.1.1...v1.2.0

v1.1.1

What's Changed

Full Changelog: https://github.com/Enabel/ux/compare/v1.1.0...v1.1.1

v1.1.0

What's Changed

New Contributors

Full Changelog: https://github.com/Enabel/ux/compare/v1.0.3...v1.1.0

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
mehedimi/laravel-amp-mail
happones/laravel-vue-i18n-generator
jwerd/inertia-table
siberfx/flysystem-wasabi
hollyit/token-replace
ippanelcom/laravel-sdk
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel