A cross-platform GUI library for Rust, inspired by Elm
Canvas
interactivity (#325)
A trait-based approach to react to mouse and keyboard interactions in the Canvas
widget.
iced_graphics
subcrate (#354)
A backend-agnostic graphics subcrate that can be leveraged to build new renderers.
OpenGL renderer (#354)
An OpenGL renderer powered by iced_graphics
, glow
, and glutin
. It is an alternative to the default wgpu
renderer.
Overlay support (#444)
Basic support for superpositioning interactive widgets on top of other widgets.
Faster event loop (#597)
The event loop now takes advantage of the data dependencies in The Elm Architecture and leverages the borrow checker to keep the widget tree alive between iterations, avoiding unnecessary rebuilds.
Event capturing (#614)
The runtime now can tell whether a widget has handled an event or not, easing integration with existing applications.
PickList
widget (#444)
A drop-down selector widget built on top of the new overlay support.
QRCode
widget (#622)
A widget that displays a QR code, powered by the qrcode
crate.
Radio
widget to make it consistent with Checkbox
(#345).winit
in iced_winit
to 0.23
(#542) and guillotiere
to 0.6
(#600).Command
implementations (#322).transparent
field to window::Settings
(#484).Point
, Size
, and [f32; 2]
(#558).font-kit
dependency (#370).glam
to 0.9
(#482).color_palette
example showcasing conversion traits for palette
(#200), improved the spacing of the PaneGrid
widget (#361), and implemented scrollbar customization for the Scrollable
widget (#575).integration
example (#390).image::Handle
constructors (#324).Clone
trait implementation for the Text
widget (#363).From<Color>
trait for Option<Background>
(#487).hash_layout
implementation of Column
and Row
(#563) and added conversion fuctions for Size
and Vector
(#583).on_release
handler to the Slider
widget (#378).always_show_controls
method for pane_grid::TitleBar
(#463).Column
and Row
(#545).TextInput
(#445).focus
method to text_input::State
(#598).ProgressBar
and Slider
(#527).window::icon
(#592).iced_web
widgets (#292).always_on_top
in window::Settings
(#543).tokio
to 0.3
(#595).ellipse
implementation of path::Builder
(#401).iced_wgpu
(#334).progress_bar
module (#396).Settings::with_flags
to easily initialize some default settings with flags. #266Default
implementation for canvas::layer::Cache
. #267Ctrl + Del
support for TextInput
. #268canvas::Path
to easily draw lines, rectangles, and circles. #293From<Color>
implementation for canvas::Fill
. #293From<String>
implementation for canvas::Text
. #293From<&str>
implementation for canvas::Text
. #293new
method of Radio
and Checkbox
now take a generic Into<String>
for the label. #260Frame::fill
now takes a generic Into<canvas::Fill>
. #293Frame::stroke
now takes a generic Into<canvas::Stroke>
. #293Frame::fill_text
now takes a generic Into<canvas::Text>
. #293Canvas
. #278TextInput
value. #279TextInput
producing a Clip
primitive when unnecessary. #279Text
primitive in iced_wgpu
. #281CursorEntered
and CursorLeft
not being generated. #289'static
lifetimes in Renderer
bounds. #290Custom styling (#146)
A simple, trait-based approach for customizing the appearance of different widgets.
Event subscriptions (#122)
A declarative way to listen to external events asynchronously by leveraging streams.
Canvas
widget (#193)
A widget for drawing 2D graphics with an interface inspired by the Web Canvas API and powered by lyon
.
PaneGrid
widget (#224)
A widget that dynamically organizes layout by splitting panes that can be resized and drag and dropped.
Svg
widget (#111)
A widget that renders vector graphics on top of resvg
and raqote
. Thanks to @Maldela!
ProgressBar
widget (#141)
A widget to notify progress of asynchronous tasks to your users. Thanks to @Songtronix!
Configurable futures executor (#164)
Support for plugging tokio
, async-std
, wasm-bindgen-futures
, or your own custom futures executor to an application.
Compatibility with existing wgpu
projects (#183)
A bunch of improvements to the flexibility of iced_wgpu
to allow integration in existing codebases.
Text selection for TextInput
(#202)
Thanks to @FabianLars and @Finnerale!
Texture atlas for iced_wgpu
(#154)
An atlas on top of guillotiere
for batching draw calls. Thanks to @Maldela!
bezier_tool
, a Paint-like tool for drawing Bézier curves using lyon
.clock
, an application that uses the Canvas
widget to draw a clock and its hands to display the current time.counter
, the classic counter example explained in the README
.custom_widget
, a custom widget that draws a circle.download_progress
, a basic application that asynchronously downloads a dummy file of 100 MB and tracks the download progress.events
, a log of native events displayed using a conditional Subscription
.geometry
, a custom widget showcasing how to draw geometry with the Mesh2D
primitive in iced_wgpu
.integration
, an example demonstrating how to integrate Iced in an existing graphical application.pane_grid
, a grid of panes that can be split, resized, and reorganized.pokedex
, an application that displays a random Pokédex entry (sprite included!) by using the PokéAPI.progress_bar
, a simple progress bar that can be filled by using a slider.styling
, an example showcasing custom styling with a light and dark theme.solar_system
, an animated solar system drawn using the Canvas
widget and showcasing how to compose different transforms.stopwatch
, a watch with start/stop and reset buttons showcasing how to listen to time.svg
, an application that renders the Ghostscript Tiger by leveraging the Svg
widget.iced-pancurses
, started a great issue to find a project logo (#143), and worked on a potential website (#115).Mesh2D
primitive for iced_wgpu
(#140) which ended up being the foundations of the Canvas
widget.Checkbox
widget (#192).Node
API (#187) and has been working on the Grid
widget (#189).Clone
bound on the Message
associated type of Application
(#155).TextInput
(#202) on top of @Finnerale's work.Scrollable
widget (#95).iced_web
(#127), removed unnecessary bounds (#128), and built a cool Space Engineers calculator.iced_winit
(#94), implemented the bezier_tool
example (#144), and provided feedback related to using the library for building VST plugins (#118).winit
to 0.21
(#181) and exposed the Clipboard
type in iced_winit
(#178).integration
example (#240) and contributed other minor code cleanups (#242).cargo fmt
(#228).Svg
widget (#111) and a texture atlas for iced_wgpu
(#154).Ctrl+Backspace
behavior for TextInput
(#249).const
(#91) and added some From
implementations (#92).svg
example (#196).clock
example (#251).with_children
method for Column
and Row
(#220).hash_layout
implementation of the Image
widget (#101).winit
.ProgressBar
widget (#141), contributed the download_progress
example (#232), and has been using the library in Airshipper, a cross-platform launcher for Veloren.TextInput
(#171).'static
lifetimes in a bunch of generic types (#245).