A cross-platform GUI library for Rust, inspired by Elm
extend
and from_vec
methods for Column
and Row
. #2264
PartialOrd
, Ord
, and Hash
implementations for keyboard::Modifiers
. #2270
clipboard
module in advanced
module. #2272
disabled
style for checkbox
and hovered
style for Svg
. #2273
From<u16>
and From<i32>
implementations for border::Radius
. #2274
size_hint
method for Component
trait. #2275
iced_wgpu
. #2259
horizontal_space
and vertical_space
helpers. #2265
Key
from keyboard::Modifiers
and apply them to text
in KeyboardInput
. #2238
TextInput
and TextEditor
. #2278
iced_tiny_skia
clipping line strokes. #2282
Many thanks to...
TextEditor
widget (or multi-line text input). #2123
Shader
widget. #2085
Canvas
. #2204
Themer
widget. #2209
Transform
primitive. #2120
TextEditor
. #2215
Checkbox
. #2109
skip_taskbar
window setting for Windows. #2211
fetch_maximized
and fetch_minimized
commands in window
. #2189
run_with_handle
command in window
. #2200
show_system_menu
command in window
. #2243
text_shaping
method for Tooltip
. #2172
interaction
method for MouseArea
. #2207
hovered
styling for Svg
widget. #2163
height
method for TextEditor
. #2221
TextEditor
. #2159
QRCode
. #2229
Toggler
. #2219
RawText
variant for Primitive
in iced_graphics
. #2158
Stream
support for Command
. #2150
Scrollable
viewport. #2072
Frame::scale_nonuniform
method. #2070
theme::Custom::with_fn
to generate completely custom themes. #2067
style
attribute for Font
. #2041
Image
. #1894
default
and shift_step
methods for slider
widgets. #2100
Custom
variant to command::Action
. #2146
MouseArea
. #2147
Theme
. #2170
Theme
. #2233
From<T> where T: Into<PathBuf>
for svg::Handle
. #2235
on_open
and on_close
handlers for PickList
. #2174
Element
in Tooltip
. #2228
gap
styling for Scrollable
. #2239
Borrow
for both options
and selected
in PickList. #2251
clip
property for Container
, Column
, Row
, and Button
. #2252
wgpu
by default instead of WebGL. #2068
glyphon
to 0.4
. #2203
Send
on stored pipelines. #2197
wgpu
to 0.19
, glyphon
to 0.5
, softbuffer
to 0.4
, window-clipboard
to 0.4
, and raw-window-handle
to 0.6
. #2191
winit
to 0.29
. #2169
Shader
primitives. #2149
test
workflow. #2135
wgpu
to 0.18
and cosmic-text
to 0.10
. #2122
keyboard
subscriptions and rename subscription::events
to event::listen
. #2073
wgpu
to 0.17
. #2065
Button
. #2046
with_clip
and with_save
in Frame
able to return the data of the provided closure. #1994
Radians
for angle fields in Arc
and arc::Elliptical
. #2027
iced_tiny_skia
. #2082
position
from overlay::Element
. #2226
GlyphCache
in iced_tiny_skia
. #2210
PartialEq
implementation of image::Bytes
. #2220
bitflags
, glam
, kurbo
, ouroboros
, qrcode
, and sysinfo
dependencies. #2227
TextInput
selection. #2199
Paragraph::grapheme_position
when ligatures are present. #2196
PaneGrid
click interaction on the top edge. #2168
iced_wgpu
not rendering text in SVGs. #2161
iced_tiny_skia
. #2250
Tooltip
changes overlay
. #2143
Overlay
composition. #2142
progress_bar
example. #2141
iced_renderer
crate. #2134
Settings::resizable
is false
. #2124
Scrollable
. #2084
ComboBox
widget panic on wasm. #2078
@interpolate(flat)
not used as attribute. #2071
Checkbox
and Toggler
hidden behind scrollbar in styling
example. #2062
LineHeight
sometimes being 0
. #2059
Command<T>::perform
to return a Command<T>
. #2000
convert_text
not called on Svg
trees. #1908
backend.rs
file in renderer crate. #2182
clippy::pedantic
lints. #2096
Scrollable
with touch events. #1940
system::Information
. #2223
size_hint
not being called from element::Map
. #2224
size_hint
not being called from element::Explain
. #2225
TextEditor
widget. #2140
Subscription::map
using unreliable function pointer hash to identify mappers. #2237
time::every
. #2188
iced_wgpu
. #2231
Many thanks to...
iced_wgpu
overhaul. #1697
iced_tiny_skia
. #1811
LineHeight
support for text widgets. #1828
text::Shaping
strategy selection. #1822
ComboBox
widget. #1954
web-colors
feature flag to enable "sRGB linear" blending. #1888
PaneGrid
logic to split panes by drag & drop. #1856
PaneGrid
logic to drag & drop panes to the edges. #1865
Scrollable
direction. #1878
Scrollable
alignment. #1912
Scrollable
. #1953
scroll_to
widget operation. #1796
scroll_to
helper. #1804
visible_bounds
widget operation for Container
. #1971
Fn
trait to custom theme. #1861
border_radius
styling to Slider
rail. #1892
application_id
in PlatformSpecific
settings for Linux. #1963
text::Cache
. #1934
operate
method for program::State
. #1913
Viewport
argument to Widget::on_event
. #1956
DEPENDENCIES.md
. #1859
CHANGELOG
is always up-to-date. #1970
wgpu
to 0.16
. #1807
glam
to 0.24
. #1840
winit
to 0.28
. #1738
palette
to 0.7
. #1875
ouroboros
to 0.17
. #1925
resvg
to 0.35
and tiny-skia
to 0.10
. #1907
mouse::Button::Other
to take u16
instead of u8
. #1797
subscription::channel
to take a FnOnce
non-Sync
closure. #1917
Copy
requirement for text StyleSheet::Style
. #1814
min_width
of 1 from scrollbar & scroller for Scrollable
. #1844
Widget::overlay
for Tooltip
. #1692
Responsive
layout not invalidated when shell layout is invalidated. #1799
Responsive
layout not invalidated when size changes without a view
call. #1890
ROADMAP.md
. #1815
bounds
of selected option background in Menu
. #1831
iced_tiny_skia
. #1842
Svg
filtered color not premultiplied. #1841
image::Atlas
. #1847
iced_tiny_skia
. #1854
iced_graphics::Gradient
. #1871
glyphon
when glyphs are missing. #1883
iced_wgpu::triangle
pipeline. #1893
Scrollable
scrolling when mouse not over it. #1910
translation
in layout
of Nested
overlay. #1924
Component
overlays. #1949
BorderRadius
not exposed in root crate. #1972
ROADMAP
. #1958
Many thanks to...
MouseArea
widget. #1594
channel
helper in subscription
. #1786
width
for Scrollable
. #1749
TextInput
. #1744
TextInput
. #1702
scrollable::StyleSheet
. #1669
Radio
. #1762
wgpu
has been updated to 0.15
in iced_wgpu
. #1789
resvg
has been updated to 0.29
in iced_graphics
. #1733
subscription::run
now takes a function pointer. #1723
on_scroll
messages for Scrollable
. #1788
ROADMAP.md
#1782
iced_wgpu
. #1779
clippy
lints for Rust 1.68. #1755
Component
rebuilds. #1754
Padding::fit
on irregular values for an axis. #1734
Debug
implementation of Font
displaying its bytes. #1731
Fill
variant for Alignment
. #1735
Many thanks to...
custom
method to widget::Operation
trait. #1649
Group
overlay. #1655
draw
helper for image
. #1682
pick_list::Handle
. #1675
Id
support for Container
. #1695
Checkbox
icon support. #1707
window
action to change always on top setting. #1587
window
action to fetch its unique identifier. #1589
Command
and Subscription
with #[must_use]
. #1676
Fn
with FnOnce
in canvas::Cache::draw
. #1694
[default]
on enum in game_of_life
example. #1660
QRCode
hide when data is empty in qr_code
example. #1665
Cow
with Bytes
in image
to accept any kind of data that implements AsRef<[u8]>
. #1551
pick_list
width. #1679
text_input
implementation in operation::Map
. #1678
Component
. #1685
overlay::Group
. #1686
is_over
implementation for overlays of iced_lazy
widgets. #1699
TextInput
width when using padding. #1706
iced_glow
crash on some hardware. #1703
overlay::Menu
. #1714
README
. #1659
clippy
lints. #1681
Many thanks to...
Scrollable
. #1550
VerticalSlider
widget. #1596
Shift+Click
text selection support in TextInput
. #1622
chrome-trace
feature. #1565
PickList
. #1562
window
action to request user attention. #1584
window
action to gain focus. #1585
window
action to toggle decorations. #1588
Copy
implementation for gradient::Location
. #1636
Application::should_exit
with a window::close
action. #1606
focusable::Count
fields public. #1635
Dependency
argument to the closure of Lazy
. #1646
Toggler::new
for consistency. #1616
Checkbox::new
for consistency. #1633
iced_glow
when the image
feature is enabled but svg
isn't. #1593
Responsive
widget. #1615
Responsive
. #1638
overlay
implementation for Lazy
. #1644
Many thanks to...
Primitive::Quad
. #1506
TextInput
. #1529
Svg
. #1578
Overlay
layout cache not being invalidated. #1528
PaneGrid
. #1533
widget::Operation
always returning Outcome::None
. #1536
TextInput
with Length::Units
width. #1539
Image
and Svg
widgets in iced_glow
. #1557
Custom
style of PickList
widget. #1570
Scrollable
always being drawn. #1574
Many thanks to...
Stabilization of stateless widgets (#1393)
The old widget API has been completely replaced by stateless widgets (introduced in #1284). Alongside the new API, there are a bunch of new helper functions and macros for easily describing view logic (like row!
and column!
).
First-class theming (#1362)
A complete overhaul of our styling primitives, introducing a Theme
as a first-class concept of the library.
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 (#1400)
A widget that can call some view logic lazily only when some data has changed. Thanks to @nicksenger!
Linear gradient support for Canvas
(#1448)
The Canvas
widget can draw linear gradients now. Thanks to @bungoboingo!
Touch support for Canvas
(#1305)
The Canvas
widget now supports touch events. Thanks to @artursapek!
Image
and Svg
support for iced_glow
(#1485)
Our OpenGL renderer now is capable of rendering both the Image
and Svg
widgets. Thanks to @ids1024!
overlay::menu
publicly (#1425).integration
examples after a rename (#1433).application
feature to iced_winit
(#1196).README
of iced_wgpu
(#1458).Canvas
widget (#1305).Canvas
widget (#1448), andiced_glow
(#1518).README
to have similar height (#1356).wgpu
to 0.13
(#1378).window::Icon
(#1174).Canvas
widget (#1373), andintegration_wgpu
(#1434).application
feature in iced_glutin
(#1502).window::Action::Move
is unsupported on Wayland (#1440)lazy_static!
with once_cell
(#1497)Cow<'static, [u8]>
in the Image
and Svg
widgets (#1453)Image
and Svg
support for iced_glow
(#1485)BGRA
before passing to image
shaders (#1507), andglow_default_system_font
and default_system_font
features (#1505).Canvas
(#1370).color!
macro helper (#1227).release-opt
profile to our Cargo.toml
(#1346), andcolor_palette
example (#1326).resolver
requirement (#1339)PaneGrid
widget to prevent content and controls from overlapping (#1361), andPaneGrid
widget to still show content until hover when cramped (#1424).Component
building overlay with stale layout (#1341)border_radius
support for pick_list::Menu
(#1396), andLazy
widget (#1400).pure
feature from docs.rs build metadata (#1429).clippy
lints (#1379).Cow
support for the Text
widget (#1107).iced_wgpu
(#1367)TextInput
during draw
(#1371)Widget::operate
for the Component
widget (#1402)Canvas
widget (#1411)Tooltip
widget when inside a Scrollable
(#1405)Tooltip
text layout to not be constricted by the viewport size (#1414)PaneGrid
title bar and its body (#1463)PaneGrid
widget (#1480)PickList
menu not closing when inside a Scrollable
(#1496)Padding
to fit available space during layout (#1494), andPaneGrid
widget (#1504).arc_to
for the Canvas
widget (#1358).integration_wgpu
example (#1139).is_selected
argument to the StyleSheet
of a Radio
widget (#1331).sierpinski-triangle
example (#1136).README
(#1450).Custom
variant to the built-in Theme
(#1432).Fn
trait bounds for Command
and Action
(#1409).on_paste
handler to the TextInput
widget (#1350)winit
to 0.27
and glutin
to 0.29
(#1410), andwgpu
to 0.14
and wgpu_glyph
to 0.18
(#1462).Stateless widgets (#1284)
A brand new widget API that removes the need to keep track of internal widget state. No more button::State
in your application!
Component
trait (#1131)
A new trait to implement custom widgets with internal mutable state while using composition and The Elm Architecture.
Responsive
widget (#1193)
A widget that is aware of its dimensions and can be used to easily build responsive user interfaces.
Experimental WebGL support (#1096)
Applications can now be rendered into an HTML canvas
when targeting Wasm by leveraging the WebGL support in wgpu
. Thanks to @pacmancoder and @kaimast!
Support for Raspberry Pis and older devices (#1160)
The compatibility of our OpenGL renderer has been improved and should run on any hardware that supports OpenGL 2.1+ or OpenGL ES 2.0+. Additionally, we started maintaining Docker images for aarch64
and armv7
to easily cross-compile iced
applications and target Raspberry Pis. Thanks to @derezzedex!
Simpler Renderer
APIs (#1110)
The surface of the Renderer
APIs of the library has been considerably reduced. Instead of a Renderer
trait per widget, now there are only 3 traits that are reused by all the widgets.
Default
trait for pure::State
(#1298).PickList
by scrolling (#872).PickList
widget (#888).Svg
widget (#952).iced_wgpu
.iced_glow
(#1021).ContentFit
support for the Image
and Svg
widgets (#1219).select_all
method to text_input::State
(#776).image::Handle
from iced_native
and lowered the trait bound of text::Renderer::Font
(#1155).Application::run
to return on native platforms (#1112).iced_wgpu
by using the preferred texture format of the window surface (#978).iced_wgpu
panicking when a SwapChain
frame is outdated (#667), andRule
widget (#994).pure
version of the Tooltip
widget (#1315).PickList
to respect custom fonts (#886), andimage::Viewer
widget (#885).PaneGrid
(#892), andPaneGrid
(#920).TextInput
widget (#1098).Component
widget (#1205).WGPU_BACKEND
environment variable (#876).canvas::Program
(#927).wgpu
to 0.8
(#830).Sandbox
applications to quit gracefully (#1175).integration_opengl
example (#1181).text_color
to the Style
of a Checkbox
(#1116).winit
to 0.25
(#919),hash_layout
implementation of the Container
widget (#1140).Toggler
widget (#535).iced-rs
organization (#1168).todos
example in CI for macOS builds (#956), andoverlay
calls not being forwarded when using Element::map
(#1294).Element::explain
(#1109).Button
(#646).Widget::height
implementation of the Component
widget (#1149),Widget::overlay
for Component
(#1154),Responsive
widget (#1262),Component
in a pure Responsive
widget (#1319).ferris.png
in the tour
example (#1157).blit
shader in iced_wgpu
(#1084).wgpu
to 0.9
(#925),wgpu
to 0.10
(#1000), andwgpu
to 0.11
(#1081).iced_wgpu
(#1096).String
allocation in some examples (#1106).README
of the integration_opengl
example.qr_code
feature in docs.rs (#815).twox-hash
dependency (#1117)Hidden
variant to window::Mode
(#825),Moved
variant to window::Event
(#965),PaneGrid
title bar not closing when dragging a pane (#971),Fill
variant for Alignment
(#1044),Slider
messages (#1114),Canvas
widget (#1225), andPickList
(#1318).scissor_rect
in iced_wgpu
being too large in some circumstances (#818), andEnter
key for TextInput
(#1150).Slider
(#1286).window::Setting
to toggle drag and drop on Windows (#893).README
with the new Discord server (#1151).iced_glow
for multi-windowed applications (#980).Scrollable
programmatically (#607),iced_wgpu
(#875).text_color
and font
methods to Radio
and Checkbox
(#831).TextInput
widget. #770Application::update
. #773image::Viewer
widget. It allows panning and scaling of an image. #319 (thanks to @tarkah!)Tooltip
widget. It annotates content with some text on mouse hover. #465 (thanks to @yusdacra!)smol
async runtime. #699 (thanks to @JayceFayne!)Application
trait. #804iced_wgpu
to reduce code bloat. #392 (thanks to @unrelentingtech!)Focused
and Unfocused
variant to window::Event
. #701 (thanks to @cossonleo!)WGPU_BACKEND
environment variable to configure the internal graphics backend of iced_wgpu
. #789 (thanks to @Cupnfish!)TitleBar
of a PaneGrid
now supports generic elements. #657 (thanks to @clarkmoody!)Error
type now implements Send
and Sync
. #719 (thanks to @taiki-e!)Style
types in iced_style
now implement Clone
and Copy
. #720 (thanks to @taiki-e!)download_progress
now showcases multiple file downloads at once. #283 (thanks to @Folyd!)solar_system
uses the new rand
API. #760 (thanks to @TriedAngle!)Button
widget. #764 (thanks to @thenlevy!)Viewport::physical_width
returning the wrong value. #700 (thanks to @TannerRogalsky!)Sandbox
trait. #710 (thanks to @GunpowderGuy!)