🎉 Features
- QR code generation built into Kirby: New
Kirby\Image\QrCode
class,qr()
helper function and>toQrCode()
field method #5666$qr = new Kirby\Image\QrCode('https://getkirby.com'); $qr->toSvg(color: '#ff00ff'); $qr->toDataUri(color: '#ff00ff'); $qr->write(file: 'qr.png', size: 750, back: '#efefef') qr('https://getkirby.com')->toSvg(); $page->myLinkField()->toQrCode()->toSvg();
- New
k-alpha-input
andk-hue-input
#5693 - New
k-color-frame
component to preview color swatches #5686 - New
k-coloroptions-input
#5696 andk-colorname-input
#5699 - New
k-search-input
component #5705 - New
LazyValue
class that can be used to resolve a value lazily. Collections and controllers use it to resolve many of Kirby's objects only when the collection/controller requests them, improving performance #5608
✨ Enhancements
k-tabs
is now fully responsive #5583k-pagination
always can be navigated by keys (no extra prop needed anymore) #5578- ModelsSection: use
Filter
as label #5612 - Text fields: new
font: monospace
option https://kirby.nolt.io/558 panel.css
andpanel.js
config options now also support arrays with multiple entries as well as absolute URLs #5602- Responsive: show only text for language dropdown #5577
- Notification: support custom icons #5601
- Files, pages and users fields more consistent #5637
- Blocks field: improve UI for no fieldsets #5679
k-calendar-input
is now set up as a proper fieldset with legend and additional aria labels for improved accessibility. #5695k-tag
supports an image/icon frame #5686- Link field uses native
k-tag
image for preview #5686 - Color field preview uses
k-tag
withk-color-frame
in image slot #5686 - Improved grids: Only break to single column at 30rem, not 40rem
- Improved focus styles for links and the flag preview in tables
- Improved text overflow behavior for links in tables
- The color field now also translates valid CSS color names
- Various table improvements
- Better focus styles for the option and flag buttons in the table
- Simplified CSS styles for the table
- New
--table
CSS properties for more control - Better mobile responsiveness for tables with a scrollable container instead of hiding cells
- Better disabled state with
aria-disabled
property - New disabled property for the
k-options-dropdown
component - More reliable margin rules for
k-text
- Full
k-text
style support for thek-html-field-preview
component - The table rows are now the same height as inputs, boxes and items, which cleans up the design quite a bit
- All field previews now use the
--table-cell-padding
property to control their padding, which leads to more reliable styling options - All table setup variants have examples in the lab
- New
selected
prop fork-button
to set thearia-selected
attribute. #5698
🐛 Bug fixes
- Color field: added backend validation #5570
- Color field: support
grad
,rad
andturn
angels forhsl
format #5589 - Fix color field border radius #5655
- Fixed dropdown positioning in RTL languages #5599
- Fixed return type for create methods #5586
- Creating listed pages no longer bypasses permissions #5365
- Fix regression for automatic plugin assets #5620
- Fixed problem deleting images in pages/files field #5623
- Fixed overflow issue in grids #5633
- Upload dialog: fix error overflow #5622
- The file upload now creates files with the right extension if the format is converted #5593
- Fixed reading invalid block types #5660
- Blocks field: max option respected when pasting blocks #5673
- Allow to use SVG fill attributes again #5668
- Blocks can be pasted before the selected block via the “insert before” dialog #5678
$page->search()
allows to provide a string with field names as$params
again getkirby.com#2094- Fix collapsing block fields preview #5669
- Fix sticky columns #5664
- Fixed translation string for the blocks field
- The link field shows up correctly if no options are defined
- The current scroll position is now correctly restored when opening a dropdown. This will no longer cause the main view to scroll up when a dropdown is opened. #5691
k-calendar-input
can now receive a regular iso date as value.- File preview: fixed thumb placement and sizing in Safari #5605 #5604 #5603
- File view: fixed issues with the Panel menu when resizing in Safari #5606
k-bubbles-field-preview
and all other previews that extend it now correctly display when there are no bubblesk-color-field-preview
correctly displays the pattern when no color is set- The sticky header in the table now uses the
--header-sticky-offset
to fix it's stickiness. - Various block fixes
- Added default values for object props to avoid breaks
- Fixed various inconsistencies in
k-block-title
styles - Better defaults and removed outdated props in
k-block-figure
- Fixed padding in the block header of the field block type component.
♻️ Refactored
k-pagination
: removed unusedalign
anddropdown
props #5578- Clean up type hints for
Str::short()
#5688 k-color
is nowk-colorpicker-input
#5685k-coords
is nowk-coords-input
#5685- Better reset for range inputs, stored in styles/rests/range.css
k-colorpicker-input
now uses the new inputs- The basic choice styles have been moved to
styles/reset/choice.css
k-time-field-preview
now extendsk-date-field-preview
and improves time parsing and the default formatting- The
fieldPreview
mixin defines proper defaults for column and field k-toggle-field-preview
uses the low levelk-toggle-input
instead ofk-input
to avoid unnecessary markupk-timeoptions-input
replacesk-times
.k-times
is still available as deprecated alias. #5698- Date and Time fields use the new
k-timeoptions-input
#5698
☠️ Deprecated
<k-dropdown>
was deprecated. Use<k-dropdown-content>
as standalone instead.k-calendar-input
replacesk-calendar
.k-calendar
is still available but only as deprecated alias.
🚨 Breaking changes
k-pagination
doesn't support setting custom labels/titles vianextLabel
,prevLabel
orpageLabel
#5578- Removed deprecated
DS
constant. Use/
instead. #5590 Panel\Assets::custom()
now returns an array #5602- When impersonating the almighty
kirby
user, any permission check will succeed even if permission has been disabled for regular admins #5511 - Renamed parameter of
::group()
method of all collection classes to$caseInsensitive
#5634 k-range
is gone and replaced byk-alpha-range
andk-hue-range
k-choice
has been removed. Usek-choice-input
instead- The unused theme prop has been removed from
k-choice-input
🧹 Housekeeping
- Uses lightningcss for Vite instead of postcss