Release 0.5
β Stabilization of stateless widgets, first-class theming, widget operations, Lazy
widget, and more!
#1520
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR marks the end of the
0.5.0
milestone and the launch of a new release πNew features
Stabilization of stateless widgets (Replace stateful widgets with the new
iced_pure
APIΒ #1393)The old widget API has been completely replaced by stateless widgets (introduced in Stateless widgetsΒ #1284). Alongside the new API, there are a bunch of new helper functions and macros for easily describing view logic (like
row!
andcolumn!
).First-class theming (ThemingΒ #1362)
A complete overhaul of our styling primitives, introducing a
Theme
as a first-class concept of the library.Widget operations (Widget OperationsΒ #1399)
An abstraction that can be used to traverse (and operate on) the widget tree of an application in order to query or update some widget state.
Lazy
widget (Lazy
widgetΒ #1400)A widget that can call some view logic lazily only when some data has changed. Thanks to @nicksenger!
Linear gradient support for
Canvas
(Add linear gradient support to canvas widgetΒ #1448)The
Canvas
widget can draw linear gradients now. Thanks to @bungoboingo!Touch support for
Canvas
(Expose touch events in canvas widgetΒ #1305)The
Canvas
widget now supports touch events. Thanks to @artursapek!Image
andSvg
support foriced_glow
(Glow image rendering support; move image/svg code to iced_graphicsΒ #1485)Our OpenGL renderer now is capable of rendering both the
Image
andSvg
widgets. Thanks to @ids1024!Showcase
During this year, many users have chosen iced to build their applications! Here are some of the coolest ones:
yt-dlp
written in Rust.Finally, and deserving a special mention, System76 has decided to use iced instead of GTK for Pop!_OS' desktop environment π This is one of the most important adoption events since the inception of the library. The engineers at System76 are already contributing a bunch of great improvements to iced, as well as breaking ground in long-standing issues that could benefit the whole GUI ecosystem in Rust (like proper text rendering!).
Thank you! π
As always, I want to say thank you to everyone that has contributed to this release:
overlay::menu
publicly (Makeoverlay::menu
accessibleΒ #1425).integration
examples after a rename (Update docs for renamed integration examplesΒ #1433).application
feature toiced_winit
(Add application feature, which allows to build freestanding wgpu appΒ #1196).README
oficed_wgpu
(Fix wgpu README supported backends Β #1458).Canvas
widget (Expose touch events in canvas widgetΒ #1305).Canvas
widget (Add linear gradient support to canvas widgetΒ #1448), andiced_glow
(Fixed issues with old GL versions ( <= 2.1 )Β #1518).README
to have similar height (fix: corrected images inREADME.md
to be similar height.Β #1356).wgpu
to0.13
(updatewgpu
to0.13
Β #1378).window::Icon
(Added convenience functions for window::icon::IconΒ #1174).Canvas
widget (Update import path in pure canvas exampleΒ #1373), andintegration_wgpu
(Update docs for runningintegration_wgpu
exampleΒ #1434).application
feature iniced_glutin
(fix: enableapplication
feature required iniced_glutin
Β #1502).window::Action::Move
is unsupported on Wayland (Document thatwindow::Action::Move
is unsupported on WaylandΒ #1440)lazy_static!
withonce_cell
(Useonce_cell
instead oflazy_static
Β #1497)Cow<'static, [u8]>
in theImage
andSvg
widgets (UseCow<'static, [u8]>
in image/svg, add constructors taking &[u8]`Β #1453)Image
andSvg
support foriced_glow
(Glow image rendering support; move image/svg code to iced_graphicsΒ #1485)BGRA
before passing toimage
shaders (Don't convert svg to BGRA before passing to shaderΒ #1507), andglow_default_system_font
anddefault_system_font
features (Combineglow_default_system_font
anddefault_system_font
featuresΒ #1505).Canvas
(Added more clarification as to how the position and alignment of the β¦Β #1370).color!
macro helper (color!
macroΒ #1227).release-opt
profile to ourCargo.toml
(Add profile releaseΒ #1346), andcolor_palette
example (add pure version of color_palette exampleΒ #1326).resolver
requirement (Add note about resolver requirementΒ #1339)PaneGrid
widget to prevent content and controls from overlapping (Prevent pane grid title bar content and controls from overlappingΒ #1361), andPaneGrid
widget to still show content until hover when cramped (When pane grid title bar is cramped, still show content until hover and allow dragging where content would've beenΒ #1424).Component
building overlay with stale layout (fix: prevent building component overlay with stale layoutΒ #1341)border_radius
support forpick_list::Menu
(Allow specification ofborder_radius
forpick_list::Menu
Β #1396), andLazy
widget (Lazy
widgetΒ #1400).pure
feature from docs.rs build metadata (Remove old pure feature from docs.rs build metadataΒ #1429).clippy
lints (Address Clippy lintsΒ #1379).Cow
support for theText
widget (Text content by cowΒ #1107).iced_wgpu
(Fix alpha blending for wgpu msaaΒ #1367)TextInput
duringdraw
(Allow overriding pure text_input value during drawΒ #1371)Widget::operate
for theComponent
widget (Impl operate for Component widgetΒ #1402)Canvas
widget (Don't double translate text clip inside canvasΒ #1411)Tooltip
widget when inside aScrollable
(Fix Tooltip inside ScrollableΒ #1405)Tooltip
text layout to not be constricted by the viewport size (Don't constrict tooltip text layout to viewport sizeΒ #1414)PaneGrid
title bar and its body (Render pane grid titlebar after bodyΒ #1463)PaneGrid
widget (More pane grid fixesΒ #1480)PickList
menu not closing when inside aScrollable
(Fix drop down not closing when inside scrollableΒ #1496)Padding
to fit available space during layout (Constrain padding to resolved inner / outer widget sizesΒ #1494), andPaneGrid
widget (Add pane maximize / restore forPaneGrid
Β #1504).arc_to
for theCanvas
widget (Fixarc_to
Β #1358).integration_wgpu
example (Fix wgpu integration exampleΒ #1139).is_selected
argument to theStyleSheet
of aRadio
widget (is_selected
property forRadio
StyleSheet
Β #1331).sierpinski-triangle
example (Implement sierpinski-triangle exampleΒ #1136).README
(update: match test badgeΒ #1450).Custom
variant to the built-inTheme
(Add custom palette to built in themeΒ #1432).Fn
trait bounds forCommand
andAction
(RelaxFn
trait bounds inCommand
&Action
Β #1409).on_paste
handler to theTextInput
widget (Added a paste Event to TextInputΒ #1350)winit
to0.27
andglutin
to0.29
(Updatewinit
to0.27
andglutin
to0.29
Β #1410), andwgpu
to0.14
andwgpu_glyph
to0.18
(Updatewgpu
to0.14
andwgpu_glyph
to0.18
Β #1462).Thank you, everyone! π