v0.51.0
5 November 2026
The @ui components take class and attrs instead of styling params, and the icon set moves to phlat/addons/icons/svg/.
Added
@ui/megamenu.latteturns top-level items withitemsinto buttons that open a panel of their children (depth: 2), and folds into a popover behind a Menu button belowsm. Several on one page need a distinctid.- Every
@uicomponent takesclassandattrs.classis additive and lands on the element that carries the base class. The form fields putclassandattrson the control. itemClassstyles the second part ofrating,steps,indicator,join,accordionandtabs.avatartakesinnerandmodaltakestriggerClass.color,variantandsizeexist on the components with those class families, including the form controls. A form field with anerroris red.
Changed
- The
@uitemplates bring only their base class. The removed params are now classes:style(badge,divider,loading,progress,rating,steps,tabs,indicator,modal, the form controls),shape,direction(dropdown,footer,join,menu,stats,steps,timeline),position(indicator,toast,tooltip),vertical,end,zebraandpinRows. Pass the class inclassoritemClass(class: 'steps-vertical',class: 'toast-end toast-bottom'), or usecolor,variantandsizewhere the component has them. theme-picker.lattetakesshowLabelinstead ofshow_labeland no longer takesend. Adddropdown-endtoclass.button,alert,cardactions,progress,badgeand the form controls defaultcolortonulland no longer pick a colour.accordion,tabsandtableescape their titles, content and cells. Pass a captured block for markup.- The
@uitemplates lose their text sizes, opacity, shadows and similar decoration.navbarandheroare plainer. - The shipped icons live in
phlat/addons/icons/svg/instead ofviews/.icon()still finds an override insite/views/@icons/first. Dir::newest()matches its patterns with one regex instead offnmatch()per file, so it is much faster on a folder of thousands. Patterns support*and?only.
Fixed
@ui/alert.latteno longer fails on anullcolour when it looks up its icon.@ui/pagination.latteno longer shadows$pagewith its loop variable, and the skipped-page marker is no longer a button.