New features and enhancements
- Introduce
app.colorsfor global color configuration (#3787, #5611 by @ghbm-itk, @evnchn, @falkoschindler) - Introduce color setters and bindings like
set_background_color()andbind_text_color()(#5511, #5512 by @borolepratik, @evnchn, @falkoschindler) - Introduce
ui.on_exceptionfor handling exceptions after the page has been sent to the client (#5617, #5618 by @CatamountJack, @evnchn, @falkoschindler) - Provide an easy way to replace AG Grid Community with Enterprise (#2431, #5623, #5629 by @ducnva, @luongnv275, @xaptronic, @gioxc88, @evnchn, @falkoschindler)
- Let
ui.altairaccept any Altair chart type likeLayerChartorFacetChart(#5649, #5650 by @s-meza, @falkoschindler) - Allow passing a path to
ui.run(show=...)to open a specific page (#5642 by @jsb-zz, @falkoschindler, @evnchn) - Make
ui.tabsandui.tab_panelsalways emit change values as string (#5637, #5638 by @jeffective, @evnchn, @falkoschindler) - Allow the user to click-to-reload when
ui.sceneloses the WebGL context (#5360, #5656 by @falkoschindler, @evnchn) - Suppress Vue component registration warnings for native tags (#3179, #5654 by @jojje, @ksikka, @evnchn, @falkoschindler)
- Patch and warn about late event registrations (#4154, #5439, #5663, #5664 by @Alyxion, @xaptronic, @evnchn, @falkoschindler)
- Break up strong reference cycles in slot children for better garbage collection (#5110, #5644 by @thevinchi, @falkoschindler, @evnchn, @phifuh)
- Reduce initial page payload by omitting unused element properties (#5500 by @evnchn, @falkoschindler)
- Speed-up the websocket handshake process (#5499 by @evnchn, @falkoschindler)
Bugfixes
- Fix CSS not being added correctly when calling
ui.add_cssafter client connected (#5624, #5628, #5666, #5667 by @svhb1000, @falkoschindler, @evnchn) - Fix
ui.dialogbeing hidden when created insideui.menu(#4116, #5602 by @tgbl-mk, @evnchn, @falkoschindler) - Fix
ui.leaflettiles not loading when element is unhidden (#2338, #5614 by @kleynjan, @evnchn, @falkoschindler) - Fix
ui.logscroll-to-bottom inui.tab_panel(#5118, #5632 by @pandabearcodes, @evnchn, @falkoschindler) - Fix errors when updating elements on hidden tabs (#5333, #5633 by @natankeddem, @evnchn, @falkoschindler)
- Fix AG Grid memory leak on update and unmount (#5635 by @evnchn, @falkoschindler)
- Fix nested updates in
ui.anywidgetnot propagating back to frontend (#5626, #5636 by @s-meza, @evnchn, @falkoschindler) - Ensure API exceptions return raw error instead of NiceGUI error page (#5508, #5510 by @ghbm-itk, @evnchn, @falkoschindler)
- Forward log messages through On Air relay (#5668 by @falkoschindler)
Documentation
- Add
on_path_changeddemo and reference forSubPagesRouter(#5487, #5665 by @GinjiJizai, @falkoschindler, @evnchn) - Fix documentation for native mode settings in packaged apps (#4842, #5651 by @h0uter, @himbeles, @falkoschindler, @evnchn)
- Avoid duplication in methods documentation and use best available docstring (#5630, #5631 by @evnchn, @falkoschindler)
- Fix docs for
ui.context.client.connected(#5607 by @jeffective, @falkoschindler, @evnchn)
Testing
- Add a note about limitations for the
asyncio_default_fixture_loop_scopesetting (#4785 by @gzu300, @evnchn, @rodja, @falkoschindler)
Special thanks to our top sponsors Lechler GmbH and TestMu AI ✨
and all our other sponsors and contributors for supporting this project!
🙏 Want to support this project? Check out our GitHub Sponsors page to help us keep building amazing features!