NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #3106 most downloaded on Packagist
A tool to easily create a design system in your Symfony app with customizable, well-crafted Twig components
Last release 19 days ago
19 Sep 2026
Ships fairly regularly
a new release about every 3 weeks
Most releases are documented
notes for 11 of 13 stable releases
Nothing withdrawn
no release was ever pulled
9 months old
13 releases · first in 2026
One column per month.
Nothing published for this version
minor #3890 Drop the dead height option from recipe previews ( @Kocal )
Changelog (v3.4.0...v3.5.0)
html_attr() (@Kocal)<dialog>-based recipies accessibility, and improve right-to-left layouts (@Kocal)ux:install reporting the source path of the installed files (@ker0x)null as defined (@Kocal)tailwind_classes mergeable idiom (@Kocal)filename code options) (@Kocal)login-01 and login-02 login blocksattachment recipebubble recipecalendar recipecarousel recipedate-picker recipedrawer recipedropdown-menu recipeform recipeinput-otp recipemarker recipemenubar recipemessage recipenative-select recipenavigation-menu recipepopover recipequestionnaire recipescroll-area recipesheet recipesidebar recipeslider recipe## Accessibility section of its README.mdmodal Stimulus controller to flowbite-modal, so its data-modal-target attributes no longer collide with the attribute of the same name in Flowbite's own JavaScriptattributes.defaults({ class: '...'|tailwind_classes }) instead of tailwind_merge (consumer classes now override component variants)[autofocus] element) when a dialog opensalert-dialog, dialog, drawer and sheet rendering aria-labelledby/aria-describedby on a roleless wrapper instead of the <dialog> element, leaving the modal without an accessible nameltr:/rtl: pairs that resolved to the same rulebutton rendering type="button" when as is not buttondialog opening on initial render when open is falsetypography recipeClassMergeSpacingChecker linter## <type> <description> comment above each prop inside {% props %}, and a {##- <description> -#} doc comment above each block, replacing the {# @prop #} and {# @block #} docblocksfeature #3740 Add clipboard and tooltip recipes ( @kbond )
Changelog (v3.3.0...v3.4.0)
clipboard and tooltip recipes (@kbond)attributes.defaults() in kits components (@seb-jean, @Kocal)height preview option (@Kocal)closeable recipe (@kbond)html_attr_* filters (@Kocal)common kit with logout-link and post-link recipes (@kbond)Table:Cell and Table:Head class attibutes merging (@stephen-lewis)ClassMergeSpacingChecker checker to the linter (@Kocal)common kit, with design-system agnostic clipboard, closeable, logout-link, post-link and tooltip recipesClassMergeSpacingChecker that checks for invalid '<literal>' ~ attributes.render(...) patternAttributesDefaultsChecker that forbids data-slot (and, in Tailwind kits, ARIA, Stimulus value data-*-value and state data-* attributes) inside attributes.defaults()attributes.defaults() usage: render data-slot, state data-* and ARIA attributes directly, and keep only data-controller/data-action (plus overridable HTML defaults) in attributes.defaults()README.md documentation@value/@target/@css-class/@outlet/@action docblocks, and lint those docblocks with the new StimulusControllerDocCheckerRecipeDocRenderer that renders recipes docs as HTML or Markdown, to ease wiring official kits into ux.symfony.com and, in the future, previewing community kitscolor and icon fields to the kit manifestfeature #3700 Resolve ux:install recipe name case-insensitively and suggest alternatives ( @Kocal )
Changelog (v3.2.0...v3.3.0)
ux:install recipe name case-insensitively and suggest alternatives (@Kocal)tooltip on scroll and resize, and stop it from intercepting pointer events while hidden (@Kocal)@prop and @block comments format (@Kocal){# @prop #} and {# @block #} format and their consistency with the {% props %} declaration and the rendered blockscombobox recipesonner recipetooltip on scroll and resize, and stop it from intercepting pointer events while hiddensecurity # cve-2026-55878 Harden recipe installer against path traversal ( @Kocal )
Changelog (v3.1.0...v3.2.0)
tooltip recipe (@Kocal)bin/ux-toolkit-kit-lint to check for issues in local kitstooltip recipefeature #3586 Align button-group with shadcn reference ( @seb-jean )
Changelog (v3.0.0...v3.1.0)
button-group with shadcn reference (@seb-jean)toggle-group with shadcn reference (@seb-jean)hover-card with shadcn reference (@seb-jean)collapsible with shadcn reference (@seb-jean)table with shadcn reference (@seb-jean)skeleton with shadcn reference (@seb-jean)dialog with shadcn reference (@seb-jean)empty with shadcn reference (@seb-jean)switch with shadcn reference (@seb-jean)field with shadcn reference (@seb-jean)radio-group with shadcn reference (@seb-jean)input-group with shadcn reference (@seb-jean)input with shadcn reference (@seb-jean)item with shadcn reference (@seb-jean)label with shadcn reference (@seb-jean)spinner with shadcn reference (@seb-jean)checkbox with shadcn reference (@seb-jean)progress with shadcn reference (@seb-jean)kbd with shadcn reference (@seb-jean)alert-dialog with shadcn reference (@seb-jean)accordion with shadcn reference (@seb-jean)separator with shadcn reference (@seb-jean)alert with shadcn reference (@seb-jean)aspect-ratio with shadcn reference (@seb-jean)avatar with shadcn reference (@seb-jean)badge with shadcn reference (@seb-jean)breadcrumb with shadcn reference (@seb-jean)button with shadcn reference (@seb-jean)pagination with shadcn reference (@seb-jean)tabs with shadcn reference (@seb-jean)tooltip with shadcn reference (@seb-jean)textarea with shadcn reference (@seb-jean)resizable with shadcn reference (@seb-jean)toggle with shadcn reference (@seb-jean)card with shadcn reference (@seb-jean)version-added key in toolkit manifest (@MrYamous)collapsible recipe to use provide()/inject() (@Kocal)tooltip recipe to use provide()/inject() (@Kocal)alert-dialog recipe to use provide()/inject() (@Kocal)dialog recipe to use provide()/inject() (@Kocal)accordion recipe to use provide()/inject() (@Kocal)toggle-group recipe to use provide()/inject() (@Kocal)tabs recipe to use provide()/inject() (@Kocal)feature #3453 Update minimum required Symfony version to 7.4 ( @Kocal )
Changelog (v2.34.0...v3.0.0)
html_attr_type from twig/html-extra:^3.24 to correctly merge trigger's attributes (@Kocal)radio-group recipecollapsible recipetypography recipetoggle-group recipesecurity # cve-2026-55878 Harden recipe installer against path traversal ( @Kocal )
Changelog (v2.36.0...v2.36.1)
Changelog ( v2.35.0...v2.36.0 )
Changelog (v2.35.0...v2.36.0)
Changelog ( v2.34.0...v2.35.0 )
Changelog (v2.34.0...v2.35.0)
html_attr_type from twig/html-extra:^3.24 to correctly merge trigger's attributes (@Kocal)Changelog ( v2.33.0...v2.34.0 )
Changelog (v2.33.0...v2.34.0)
Changelog ( v2.32.0...v2.33.0 )
Changelog (v2.32.0...v2.33.0)
tailwind_merge parentheses and simplify attributes … (@seb-jean)@prop documentation to normalize Defaults to ... (@Kocal)@prop and @block annotations description (@Kocal)Field demo code (@Kocal)Badge destructive variant (@Jibbarth)Block (@jeremyFreeAgent)accordion recipetabs recipetooltip recipealert recipeavatar recipebadge recipebutton recipecard recipeinput-group recipetable recipetextarea recipeAvatar:Badge componentAvatar:Fallback componentAvatar:Group componentAvatar:GroupCount componentAlert:Action componentAvatar:Text componentNothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →