Expand description
§Kael
A GPU-accelerated desktop UI framework for building native applications in Rust.
Renders via Metal (macOS), DirectX 11 (Windows), and Vulkan (Linux). Apps are pure Rust with native performance and 120fps rendering through dirty tracking and render-on-demand.
Kael is a fork of GPUI, the UI framework Zed Industries built for the Zed editor. It was previously distributed as the adabraka GPUI fork and renamed to Kael. It is an independent project — not affiliated with, maintained by, or endorsed by Zed Industries.
§Quick Start
[dependencies]
kael = "0.1"use kael::*;
use kael::prelude::*;
struct Counter { count: i32 }
impl Render for Counter {
fn render(&mut self, _window: &mut Window, cx: &mut Context<Self>) -> impl IntoElement {
let entity = cx.entity().clone();
div()
.flex().flex_col().gap_2()
.child(format!("Count: {}", self.count))
.child(
button("inc", "Increment")
.on_click(move |_, window, cx| {
entity.update(cx, |this, cx| {
this.count += 1;
cx.notify();
});
}),
)
}
}
fn main() {
Application::new().run(|cx| {
cx.open_window(WindowOptions::default(), |_, cx| {
cx.new(|_| Counter { count: 0 })
})
.unwrap();
});
}§What’s Included
- 42+ UI primitives: Button, TextInput, Checkbox, Toggle, Slider, Select, DatePicker, Modal, Popover, Tabs, Disclosure, lists, and more
- Flexbox layout via Taffy with responsive styling
- Entity-based reactive state:
Entity<T>,cx.new(),cx.notify(),cx.observe(),cx.subscribe() - Platform APIs: file dialogs, system tray, notifications, global hotkeys, printing, clipboard, auto-updates, WebViews
- Theming: JSON/TOML themes with hot-reload
- Accessibility: screen reader roles, keyboard navigation, focus management
- Animation: keyframe and spring animations, Lottie playback
- Canvas: stroked/filled paths, shapes, transforms
- Plugin system: WASM-sandboxed extensions
§Platform Support
| Platform | Renderer | Status |
|---|---|---|
| macOS | Metal | Full support |
| Linux (X11) | Vulkan | Full support |
| Linux (Wayland) | Vulkan | Full support |
| Windows | DirectX 11 | Full support |
§Documentation
§Acknowledgements
Kael began as a fork of GPUI, the GPU-accelerated UI framework originally created by Zed Industries for the Zed code editor — and was previously distributed as the adabraka GPUI fork. We are grateful for their foundational work. The original GPUI code is copyright 2022-2025 Zed Industries, Inc. and licensed under Apache-2.0. Kael is an independent project and is not affiliated with or endorsed by Zed Industries.
§License
Apache-2.0 — see LICENSE for details.
Re-exports§
pub use command_registry::CommandDescriptor;pub use command_registry::CommandPalette;pub use command_registry::PaletteCommandId;pub use crate::animation::Animation;pub use crate::animation::AnimationSequence;pub use crate::animation::Easing;pub use crate::animation::Keyframes;pub use crate::animation::Repeat;pub use crate::animation::StyledKeyframe;pub use crate::animation::keyframes;pub use http_client;pub use accessibility::*;pub use app_runtime::*;pub use background_jobs::*;pub use benchmark::*;pub use dev_tools::*;pub use crate::animation::easing::*;pub use extension_host::*;pub use extension_rpc::*;pub use gesture::*;pub use gpu::*;pub use headless_render::*;pub use ipc_transport::*;pub use media_capture::*;pub use panels::*;pub use platform_caps::*;pub use plugin::*;pub use process_model::*;pub use runtime::*;pub use scene_graph::*;pub use security::*;pub use split_pane::*;pub use status_bar::*;pub use supervisor::*;pub use text_engine::*;pub use theme::*;pub use video_color::*;pub use virtual_data::*;pub use worker_api::*;pub use workspace::*;
Modules§
- _ownership_
and_ data_ flow - In GPUI, every model or view in the application is actually owned by a single top-level object called the
App. When a new entity or view is created (referred to collectively as entities), the application is given ownership of their state to enable their participation in a variety of app services and interaction with other entities. - accessibility
- Shared accessibility model and semantic role system for GPUI.
- animation
- Explicit animation primitives and keyframe builders.
- app_
runtime - Higher-level app-runtime primitives for common desktop product patterns.
- background_
jobs - Background job orchestration with worker-pool integration.
- benchmark
- Product-level benchmark workloads and harness for GPUI.
- colors
- The default colors used by GPUI.
- command_
registry - Command registry for registering named commands invokable from menus, keybindings, and a command palette.
- dev_
tools - Developer tools for observability, diagnostics, and runtime inspection.
- extension_
host - Extension host runtime managing the full lifecycle of extensions.
- extension_
rpc - Extension RPC contract and typed transport wrappers.
- gesture
- Gesture recognizers and higher-level pointer interaction types.
- golden
- GPU memory budgeting and eviction. Golden-image pixel-diff comparison for the headless render pipeline. Golden-image pixel-diff comparison for the headless render pipeline (P0-J).
- gpu
- GPU memory budgeting and eviction.
- headless_
render - Headless off-screen rendering for benchmarks and golden-image tests. Headless off-screen rendering for benchmarks and golden-image tests.
- inspector_
reflection - Provides definitions used by
#[derive_inspector_reflection]. - ipc_
transport - Cross-platform IPC transport for the GPUI process-isolation model.
- media_
capture - Cross-platform media and capture infrastructure for GPUI.
- panels
- Pre-built panel implementations for common dock areas.
- platform_
caps - Platform capability detection and feature-level support reporting.
- plugin
- Plugin and extension architecture for GPUI.
- prelude
- The GPUI prelude is a collection of traits and types that are widely used throughout the library. It is recommended to import this prelude into your application to avoid having to import each trait individually.
- process_
model - Process-isolation model and typed IPC for GPUI.
- runtime
- Runtime worker support. Runtime worker support for background task execution.
- scene_
graph - Scene graph primitives for canvas and creative applications. Scene graph primitives for canvas and creative applications.
- scroll_
bar - Scroll bar primitives bound to scroll handles.
- security
- Security boundary: capability model and permission broker for GPUI.
- single_
instance - Cross-platform single instance enforcement using Unix domain sockets and Windows named mutexes.
- split_
pane - Split-pane and tab model for IDE-style workspace layouts.
- status_
bar - Status bar for displaying contextual information in large applications.
- styled_
reflection - Implements function reflection
- supervisor
- Process supervisor for the GPUI process-isolation model.
- tab_
manager - Cross-platform window tab manager for Windows and Linux backends.
- text_
engine - Text and document editing engine for IDEs, notes apps, and chat composers.
- theme
- Application themes with JSON or TOML loading and file hot-reload support.
- video_
color - Video color: YCbCr→RGB matrices and transfer functions. Video color: YCbCr→RGB matrices and transfer functions.
- virtual_
data - Virtualized data models for lists, tables, and trees.
- window_
positioner - Pure Rust utility for computing window bounds from a semantic
WindowPosition. - worker_
api - Worker API for runtime tasks.
- workspace
- Workspace and panel layout management with JSON persistence.
Macros§
- actions
- Defines and registers unit structs that can be used as actions. For more complex data types, derive
Action. - border_
style_ methods - Generates methods for border styles.
- box_
shadow_ style_ methods - Generates methods for box shadow styles.
- cursor_
style_ methods - Generates methods for cursor styles.
- include_
lottie - Embed a Lottie asset directly into the binary at compile time.
- margin_
style_ methods - Generates methods for margin styles.
- overflow_
style_ methods - Generates methods for overflow styles.
- padding_
style_ methods - Generates methods for padding styles.
- position_
style_ methods - Generates methods for position styles.
- register_
action - This can be used to register an action with the GPUI runtime when you want to manually implement
the
Actiontrait. Typically you should use theActionderive macro oractions!macro instead. - visibility_
style_ methods - Generates methods for visibility styles.
Structs§
- Anchored
- An anchored element that can be used to display UI that will avoid overflowing the window bounds.
- Anchored
State - The state that the anchored element element uses to track its children.
- Animation
Element - A GPUI element that applies an animation to another element
- Animation
Handle - A handle that can be used to cancel an in-flight animation.
- AnyDrag
- Contains state associated with an active drag operation, started by dragging an element within the window or by dragging into the app from the underlying platform.
- AnyElement
- A dynamically typed element that can be used to store any element type.
- AnyEntity
- A dynamically typed reference to a entity, which can be downcast into a
Entity<T>. - AnyImage
Cache - A dynamically typed image cache, which can be used to store any image cache
- AnyTooltip
- Contains state associated with a tooltip. You’ll only need this struct if you’re implementing tooltip behavior on a custom element. Otherwise, use Div::tooltip.
- AnyView
- A dynamically-typed handle to a view, which can be downcast to a Entity for a specific type.
- AnyWeak
Entity - A type erased, weak reference to a entity.
- AnyWeak
View - A weak, dynamically-typed view handle that does not prevent the view from being released.
- AnyWindow
Handle - A handle to a window with any root view type, which can be downcast to a window with a specific root view type.
- App
- Contains the state of the full application, and passed as a reference to a variety of callbacks.
Other Context derefs to this type.
You need a reference to an
Appto access the state of a Entity. - Application
- A reference to a GPUI application, typically constructed in the
mainfunction of your app. You won’t interact with this type much outside of initial configuration and startup. - Arena
Clear Needed - Returned when the element arena has been used and so must be cleared before the next draw.
- Async
App - An async-friendly version of App with a static lifetime so it can be held across
awaitpoints in async code. You’re provided with an instance when calling App::spawn, and you can also create one with App::to_async. Internally, this holds a weak reference to anApp, so its methods are fallible to protect against cases where the App is dropped. - Async
Window Context - A cloneable, owned handle to the application context, composed with the window associated with the current task.
- Auto
Updater - The auto-updater.
- Auto
Updater Config - Configuration for the auto-updater.
- Background
- A background color, which can be a solid color, linear gradient, radial gradient, or conic gradient.
- Background
Executor - A pointer to the executor that is currently running, for spawning background tasks.
- Backspace
- Delete the current selection or the grapheme before the caret.
- Binding
Index - Index of a binding within a keymap.
- Boundary
- A boundary between two lines of text.
- Bounds
- Represents a rectangular area in a 2D space with an origin point and a size.
- Bounds
Refinement - A refinable version of [
#ident], see that documentation for details. - BoxShadow
- The possible values of the box-shadow property
- Button
- A focusable button primitive backed by
divclick semantics. - Button
Render State - Snapshot of button state passed to a custom renderer.
- Cached
- A cache wrapper that replays a previously rendered child subtree when its dependencies are unchanged.
- Canvas
- A canvas element, meant for accessing the low level paint API without defining a whole custom element
- Canvas
Draw - A canvas element backed by an immediate-mode
DrawContext. - Capslock
- The state of the capslock key at some point in time
- Cascade
- A cascade of refinements that can be merged in priority order.
- Cascade
Slot - A handle to a specific slot in a cascade.
- Checkbox
- A controlled checkbox form control.
- Checkbox
Render State - Snapshot of checkbox state passed to a custom renderer.
- Clipboard
Item - A clipboard item that should be copied to the clipboard
- Clipboard
String - A clipboard item that should be copied to the clipboard
- Content
Mask - Indicates which region of the window is visible. Content falling outside of this mask will not be rendered. Currently, only rectangular content masks are supported, but we give the mask its own type to leave room to support more complex shapes in the future.
- Context
- The app context, with specialized behavior for the given entity.
- Context
Entry - An entry in a KeyContext
- Context
Menu - A builder for structured in-window context menus.
- Copy
- Copy the selected text to the clipboard.
- Corners
- Represents the corners of a box in a 2D space, such as border radius.
- Corners
Refinement - A refinable version of [
#ident], see that documentation for details. - Crash
Report - Information collected for a crash report.
- Crash
Reporter - A crash reporter that captures Rust panics, persists them to disk, and attempts to submit them on the next launch.
- Cut
- Cut the selected text to the clipboard.
- Date
Picker - A controlled date picker with a popup month grid.
- Date
Picker DayRender State - Snapshot of a calendar day cell passed to a custom renderer.
- Date
Picker Header Render State - Snapshot of the calendar header passed to a custom renderer.
- Date
Picker NavButton Render State - Snapshot of a month navigation button passed to a custom renderer.
- Date
Picker Popup Render State - Snapshot of date picker popup state passed to a custom renderer.
- Date
Picker Render State - Snapshot of date picker trigger state passed to a custom renderer.
- Date
Picker Weekday Render State - Snapshot of a weekday label passed to a custom renderer.
- Debug
Below - Use this struct for interfacing with the ‘debug_below’ styling from your own elements. If a parent element has this style set on it, then this struct will be set as a global in GPUI.
- Decoration
Run - Set the text decoration for a run of text.
- Deferred
- An element which delays the painting of its child until after all of its ancestors, while keeping its layout as part of the current element tree.
- Deferred
Scroll ToItem - Delete
- Delete the current selection or the grapheme after the caret.
- Delete
Word Backward - Delete from the caret to the previous word boundary.
- Delete
Word Forward - Delete from the caret to the next word boundary.
- Device
Pixels - Represents physical pixels on the display.
- Dialog
Options - Options for displaying a native dialog.
- Disclosure
- A controlled disclosure primitive with caller-owned trigger visuals and panel content.
- Disclosure
Render State - Snapshot of disclosure trigger state passed to a custom renderer.
- Dismiss
Event - Emitted by implementers of
ManagedViewto indicate the view should be dismissed, such as when a view is presented as a modal. - Display
Id - An opaque identifier for a hardware display
- Div
- A
Divelement, the all-in-one element for building complex UIs in GPUI - DivFrame
State - A frame state for a
Divelement, which contains layout IDs for its children. - DivInspector
State - Interactivity state displayed an manipulated in the inspector.
- DivPrepaint
State - Prepaint state for a div.
- Download
Progress - Progress information during an update download.
- Drag
Move Event - An event for when a drag is moving over this element, with the given state type.
- Draw
Context - Immediate-mode drawing context used by
canvas(size, draw). - Drawable
- A wrapper around an implementer of
Elementthat allows it to be drawn in a window. - Dummy
Keyboard Mapper - A dummy implementation of the platform keyboard mapper
- Edges
- Represents the edges of a box in a 2D space, such as padding or margin.
- Edges
Refinement - A refinable version of [
#ident], see that documentation for details. - Element
Clicked State - Whether or not the element or a group that contains it is clicked by the mouse.
- Element
Input Handler - The canonical implementation of
PlatformInputHandler. CallWindow::handle_inputwith an instance during your element’s paint. - Empty
- The empty element, which renders nothing.
- Empty
View - A view that renders nothing
- Entity
- A strong, well-typed reference to a struct which is managed by GPUI
- Entity
Id - A unique identifier for a entity across the application.
- External
Paths - A collection of paths from the platform, such as from a file drop.
- Fallback
Prompt Renderer - The default GPUI fallback for rendering prompts, when the platform doesn’t support it.
- File
Watch Options - Options that control how a path is watched.
- File
Watcher - Cross-platform file-system watcher backed by the
notifycrate. - Fill
Options - Parameters for the fill tessellator.
- Focus
Handle - A handle which can be used to track and manipulate the focused element in a window.
- FocusId
- A globally unique identifier for a focusable element.
- Focus
OutEvent - This is provided when subscribing for
Context::on_focus_outevents. - Focused
Window Info - Information about the currently focused window from any application.
- Font
- The configuration details for identifying a specific font.
- Font
Fallbacks - The fallback fonts that can be configured for a given font. Fallback fonts family names are stored here.
- Font
Family Id - An opaque identifier for a specific font family.
- Font
Feature - A single OpenType font feature tag with its value.
- Font
Features - The OpenType features that can be configured for a given font.
- FontId
- An opaque identifier for a specific font.
- Font
Metrics - A struct for storing font metrics. It is used to define the measurements of a typeface.
- FontRun
- A run of text with a single font.
- Font
Weight - The degree of blackness or stroke thickness of a font. This value ranges from 100.0 to 900.0, with 400.0 as normal.
- Foreground
Executor - A pointer to the executor that is currently running, for spawning tasks on the main thread.
- Global
Element Id - A globally unique identifier for an element, used to track state across frames.
- GlyphId
- An identifier for a specific glyph, as returned by
WindowTextSystem::layout_line. - GpuSpecs
- Information about the GPU GPUI is running on.
- Gpui
Borrow - A mutable reference to an entity owned by GPUI
- Grid
Location - A location in a grid layout.
- Group
Style - The styling information for a given group.
- Highlight
Style - A highlight style to apply, similar to a
TextStyleexcept for a single font, uniformly sized and spaced text. - Hitbox
- A rectangular region that potentially blocks hitboxes inserted prior. See Window::insert_hitbox for more details.
- Hitbox
Id - An identifier for a Hitbox which also includes HitboxBehavior.
- Hsla
- An HSLA color
- Icon
- An icon element backed by the generated build-time icon atlas.
- Image
- An image, with a format and certain bytes
- Image
Cache Element - An image cache element.
- Image
Format Iter - An iterator over the variants of ImageFormat
- ImageId
- A unique identifier for the image cache
- Image
Style - The style of an image element.
- Img
- An image element.
- ImgLayout
State - The image layout state between frames
- Insert
Newline - Insert a newline in multiline mode or submit in single-line mode.
- Inspector
- Manages inspector state - which element is currently selected and whether the inspector is in picking mode.
- Inspector
Element Id - A unique identifier for an element that can be inspected.
- Inspector
Element Path GlobalElementIdqualified by source location of element construction.- Interactive
Element State - The per-frame state of an interactive element. Used for tracking stateful interactions like clicks and scroll offsets.
- Interactive
Text - A text element that can be interacted with.
- Interactivity
- The interactivity struct. Powers all of the general-purpose
interactivity in the
Divelement. - Invalid
Keystroke Error - Error type for
Keystroke::parse. This is used instead ofanyhow::Errorso that Kael can use markdown to display it. - Item
Size - The size of the item and its contents.
- KeyBinding
- A keybinding and its associated metadata, from the keymap.
- KeyBinding
Meta Index - A unique identifier for retrieval of metadata associated with a key binding. Intended to be used as an index or key into a user-defined store of metadata associated with the binding, such as the source of the binding.
- KeyContext
- A datastructure for resolving whether an action should be dispatched at this point in the element tree. Contains a set of identifiers and/or key value pairs representing the current context for the keymap.
- KeyDown
Event - The key down event equivalent for the platform.
- KeyUp
Event - The key up event equivalent for the platform.
- Keybinding
Keystroke - Represents a keystroke that can be used in keybindings and displayed to the user.
- Keyboard
Click Event - A click event that was generated by a keyboard button being pressed and released.
- Keymap
- A collection of key bindings for the user’s application.
- Keymap
Version - An opaque identifier of which version of the keymap is currently active. The keymap’s version is changed whenever bindings are added or removed.
- Keystroke
- A keystroke and associated metadata generated by the platform
- Keystroke
Event - A keystroke event, and potentially the associated action
- Label
- A text label primitive that can forward focus to another control when clicked.
- Layer
Anchor - Anchored placement configuration for a layer.
- LayerId
- A stable identifier for a layer managed by
LayerStack. - Layer
Options - Options that control how a layer behaves inside a
LayerStack. - Layer
Stack - A stack of in-window layers such as modals and popovers.
- Layout
Id - A unique identifier for a layout node, generated when requesting a layout from Taffy
- Line
Layout - A laid out and styled line of text
- Line
Wrapper - The GPUI line wrapper, used to wrap lines of text to a given width.
- Line
Wrapper Handle - A handle into the text system, which can be used to compute the wrapped layout of text
- Linear
Color Stop - A color stop in a linear gradient.
- Link
- A focusable hyperlink primitive with built-in external URL support.
- Linux
Installer - Linux installer: handles AppImage delta updates, Flatpak, and Snap update channels.
- List
- A list element
- List
Offset - An offset into the list’s items, in terms of the item index and the number of pixels off the top left of the item.
- List
Prepaint State - Frame state used by the List element after layout.
- List
Scroll Event - A scroll event that has been converted to be in terms of the list’s items.
- List
State - The list state that views must hold on behalf of the list element.
- Lottie
- A Lottie animation element.
- Lottie
Animation - Parsed Lottie animation metadata and source bytes.
- Lottie
Player - Playback controller for a decoded Lottie animation.
- Magnify
Event - A magnification gesture event from the platform.
- Menu
- A menu of the application, either a main menu or a submenu
- Menu
Button - A popup-backed menu button with caller-owned trigger and item visuals.
- Menu
Button Item - A single popup menu item.
- Menu
Button Item Render State - Snapshot of a popup menu item row passed to a custom renderer.
- Menu
Button Trigger Render State - Snapshot of menu button trigger state passed to a custom renderer.
- Menu
Entry - A focusable menu item primitive with caller-owned visuals.
- Modal
- A controlled modal primitive with caller-owned dialog visuals.
- Modal
Render State - Snapshot of modal state passed to a custom renderer.
- Modifiers
- The state of the modifier keys at some point in time
- Modifiers
Changed Event - The modifiers changed event equivalent for the platform.
- Mouse
Click Event - A click event, generated when a mouse button is pressed and released.
- Mouse
Down Event - A mouse down event from the platform
- Mouse
Exit Event - A mouse exit event from the platform, generated when the mouse leaves the window.
- Mouse
Move Event - A mouse move event from the platform
- Mouse
UpEvent - A mouse up event from the platform
- Move
Left - Move the caret one grapheme to the left.
- Move
Right - Move the caret one grapheme to the right.
- Move
ToEnd - Move the caret to the end of the field.
- Move
ToStart - Move the caret to the beginning of the field.
- Move
Word Left - Move the caret to the previous word boundary.
- Move
Word Right - Move the caret to the next word boundary.
- Navigator
- A renderable navigation stack that supports animated route transitions.
- NoAction
- Action with special handling which unbinds the keybinding this is associated with, if it is the highest precedence match.
- Notification
Action - A notification action button.
- OsInfo
- Information about the operating system.
- OsMenu
- OS menus are menus that are recognized by the operating system This allows the operating system to provide specialized items for these menus
- Owned
Menu - A menu of the application, either a main menu or a submenu
- Owned
OsMenu - OS menus are menus that are recognized by the operating system This allows the operating system to provide specialized items for these menus
- Paint
Quad - A rectangle to be rendered in the window at the given position and size.
Passed as an argument
Window::paint_quad. - Paste
- Paste clipboard text into the field.
- Path
- A line made up of a series of vertices and control points.
- Path
Builder - A
Pathbuilder. - Path
Prompt Options - The options that can be configured for a file dialog prompt
- Percentage
- A type representing a percentage value.
- Pixel
Snap Policy - Consistent pixel-snapping helper for fills, strokes, clips, and text baselines.
- Pixels
- Represents a length in pixels, the base unit of measurement in the UI framework.
- Point
- Describes a location in a 2D cartesian space.
- Point
Refinement - A refinable version of [
#ident], see that documentation for details. - Popover
- A controlled anchored popover with caller-owned anchor and popup visuals.
- Popover
Anchor Render State - Snapshot of popover anchor state passed to a custom renderer.
- Popover
Popup Render State - Snapshot of popover popup state passed to a custom renderer.
- Print
Context - A recording context for one printed page.
- Print
Image Style - Image layout settings for print image commands.
- Print
Job - A print job that can be sent directly to the platform printer or shown in a native print dialog.
- Print
Page - A single page in a print job.
- Print
Stroke - Stroke settings for line drawing commands.
- Print
Text Style - Text styling for print text commands.
- Progress
- A styled progress indicator with caller-owned rendering.
- Progress
Render State - Snapshot of progress state passed to a custom renderer.
- Prompt
Handle - A handle to a prompt that can be used to interact with it.
- Prompt
Response - The event emitted when a prompt’s option is selected. The usize is the index of the selected option, from the actions passed to the prompt.
- Radians
- Represents an angle in Radians
- Radio
Group - A controlled radio group form control.
- Radio
Item Render State - Snapshot of a single radio option passed to a custom renderer.
- Radio
Option - A single labeled option in a radio group.
- Recycling
List - A keyed heterogeneous list that recycles layout state across frames.
- Recycling
List Frame State - Frame state used by a
RecyclingListbetween prepaint and paint. - Redo
- Reapply the next edit snapshot.
- Rems
- Represents a length in rems, a unit based on the font-size of the window, which can be assigned with
Window::set_rem_size. - Render
Image - A cached and processed image, in BGRA format
- Renderable
Prompt Handle - A prompt handle capable of being rendered in a window.
- Reservation
- Returned by Context::reserve_entity to later be passed to Context::insert_entity. Allows you to obtain the EntityId for a entity before it is created.
- Resize
Event - An event that fires when an element’s bounds change size.
- Retain
AllImage Cache - An implementation of ImageCache, that uses an LRU caching strategy to unload images when the cache is full
- Retain
AllImage Cache Provider - A provider struct for creating a retain-all image cache inline
- Rgba
- An RGBA color
- Rich
Text - A builder-backed rich text element for styled content, entities, and inline children.
- Rich
Text Layout - A tracked layout handle for rich text geometry and selection queries.
- Route
- A route rendered by a
Navigator. - Route
Change Event - An event emitted whenever the active route changes.
- Scaled
Pixels - Represents scaled pixels that take into account the device’s scale factor.
- Scope
- Scope manages a set of tasks that are enqueued and waited on together. See
BackgroundExecutor::scoped. - Screen
Capture Frame - A frame of video captured from a screen.
- Scroll
Anchor - Represents an element that can be scrolled to in its parent element.
Contrary to
ScrollHandle::scroll_to_active_item, an anchored element does not have to be an immediate child of the parent. - Scroll
Bar - A focusable scroll bar primitive bound to a scrollable container.
- Scroll
BarRender State - Snapshot of scroll bar state passed to a custom renderer.
- Scroll
Handle - A handle to the scrollable aspects of an element. Used for accessing scroll state, like the current scroll offset, and for mutating the scroll state, like scrolling to a specific child.
- Scroll
Wheel Event - A mouse wheel event from the platform
- Select
- A controlled popup-backed combo box.
- Select
All - Select all text in the field.
- Select
Left - Extend the selection one grapheme to the left.
- Select
Option - A single labeled option in a select control.
- Select
Option Render State - Snapshot of a popup option row passed to a custom renderer.
- Select
Popup Render State - Snapshot of select popup state passed to a custom popup renderer.
- Select
Render State - Snapshot of select trigger state passed to a custom renderer.
- Select
Right - Extend the selection one grapheme to the right.
- Select
Search Render State - Snapshot of the in-popup search field passed to a custom renderer.
- Select
ToEnd - Extend the selection to the end of the field.
- Select
ToStart - Extend the selection to the beginning of the field.
- Select
Word Left - Extend the selection to the previous word boundary.
- Select
Word Right - Extend the selection to the next word boundary.
- Semantic
Version - A semantic version number.
- Session
Snapshot - A persisted snapshot of the entire session.
- Session
Store - Persistent storage for application session state.
- Shaped
Glyph - A single glyph, ready to paint.
- Shaped
Line - A line of text that has been shaped and decorated.
- Shaped
Run - A run of text that has been shaped .
- Shared
String - A shared string is an immutable string that can be cheaply cloned in GPUI
tasks. Essentially an abstraction over an
Arc<str>and&'static str, - Shared
Uri - A
SharedStringcontaining a URI. - Size
- A structure representing a two-dimensional size with width and height in a given unit.
- Size
Refinement - A refinable version of [
#ident], see that documentation for details. - Slider
- A controlled slider form control.
- Slider
Render State - Snapshot of slider state passed to a custom renderer.
- Sortable
List - A list component that supports reordering its own items via drag and drop.
- Source
Metadata - Metadata for a given ScreenCaptureSource
- Splitter
- A controlled splitter primitive with caller-owned visuals.
- Splitter
Render State - Snapshot of splitter state passed to a custom renderer.
- Stateful
- A wrapper around an element that can store state, produced after assigning an ElementId.
- Strikethrough
Style - The properties that can be applied to a strikethrough.
- Strikethrough
Style Refinement - A refinable version of [
#ident], see that documentation for details. - Stroke
- Stroke styling for immediate-mode canvas drawing.
- Stroke
Dash - Stroke dash settings for canvas stroke operations.
- Stroke
Options - Parameters for the tessellator.
- Style
- The CSS styling that can be applied to an element via the
Styledtrait - Style
Refinement - A refinable version of [
#ident], see that documentation for details. - Styled
Text - Renders text with runs of different styles.
- Submit
- Submit the current field value.
- Subscription
- A handle to a subscription created by GPUI. When dropped, the subscription is cancelled and the callback will no longer be invoked.
- Surface
- A surface element.
- Svg
- An SVG element.
- System
Window TabController - A controller for managing window tabs.
- TabItem
- A single tab item with a label and panel body.
- TabRender
State - Snapshot of a tab trigger passed to a custom renderer.
- Tabs
- A controlled tabs primitive with caller-owned tab bodies and panels.
- Task
- Task is a primitive that allows work to happen in the background.
- Task
Label - A task label is an opaque identifier that you can use to refer to a task in tests.
- Text
Input - A controlled editable text field.
- Text
Input Render Line - A single shaped line and its paint origin for a custom text input renderer.
- Text
Input Render State - Snapshot of text input paint state passed to a custom renderer.
- Text
Layout - The Layout for TextElement. This can be used to map indices to pixels and vice versa.
- TextRun
- A styled run of text, for use in
crate::TextLayout. - Text
Shadow - A shadow effect applied to text, rendered by painting glyphs twice.
- Text
Style - The properties that can be used to style text in GPUI
- Text
Style Refinement - A refinable version of [
#ident], see that documentation for details. - Text
System - The GPUI text rendering sub system.
- Tiling
- A type to describe which sides of the window are currently tiled in some way
- Timeout
- Error returned by with_timeout when the timeout duration elapsed before the future resolved
- Timer
- A future or stream that emits timed events.
- Titlebar
Options - The options that can be configured for a window’s titlebar
- Toast
- Configuration for a single toast notification.
- Toast
Stack - A stack of toast notifications that manages display and auto-dismissal.
- Toggle
- A controlled toggle switch form control.
- Toggle
Render State - Snapshot of toggle state passed to a custom renderer.
- Tooltip
Id - An identifier for a tooltip.
- Trace
Event - A single trace event compatible with the Chrome Trace Event format.
- Tracer
- A tracer that collects trace events and can export them in Chrome Trace Event format.
- Transformation
- A transformation to apply to an SVG element.
- Transformation
Matrix - A data type representing a 2 dimensional transformation that can be applied to an element.
- Tree
Item - A focusable tree item primitive with controlled selected and expanded state.
- UTF16
Selection - A struct representing a selection in a text buffer, in UTF16 characters. This is different from a range because the head may be before the tail.
- Underline
Style - The properties that can be applied to an underline.
- Underline
Style Refinement - A refinable version of [
#ident], see that documentation for details. - Undo
- Restore the previous edit snapshot.
- Uniform
List - A list element for efficiently laying out and displaying a list of uniform-height elements.
- Uniform
List Frame State - Frame state used by the UniformList.
- Uniform
List Scroll Handle - A handle for controlling the scroll position of a uniform list. This should be stored in your view and passed to the uniform_list on each frame.
- Uniform
List Scroll State - Update
Info - Information about an available update.
- Weak
Entity - A weak reference to a entity of the given type.
- Weak
Focus Handle - A weak reference to a focus handle.
- WebView
- A native embedded WebView element.
- Window
- Holds the state for a specific window.
- Window
Controls - What window controls this platform supports
- Window
Handle - A handle to a window with a specific root view type. Note that this does not keep the window alive on its own.
- Window
Id - A unique identifier for a window.
- Window
Options - The variables that can be configured when creating a new window
- Window
State - A snapshot of a window’s state for save/restore.
- Window
Text System - The GPUI text layout subsystem.
- Wrap
Boundary - A boundary at which a line was wrapped
- Wrapped
Line - A line of text that has been shaped, decorated, and wrapped by the text layout system.
- Wrapped
Line Layout - A line of text that has been wrapped to fit a given width
Enums§
- Absolute
Length - Represents an absolute length in pixels or rems.
- Action
Build Error - Error type for
Keystroke::parse. This is used instead ofanyhow::Errorso that Kael can use markdown to display it. - Align
Content - Sets the distribution of space between and around content items For Flexbox it controls alignment in the cross axis For Grid it controls alignment in the block axis
- Align
Items - Used to control how child nodes are aligned. For Flexbox it controls alignment in the cross axis For Grid it controls alignment in the block axis
- Anchored
FitMode - Which algorithm to use when fitting the anchored element to be inside the window.
- Anchored
Position Mode - Which algorithm to use when positioning the anchored element.
- ArcCow
- Asset
Logger - An asset Loader which logs the
Errvariant of aResultduring loading - Attention
Type - The type of user attention to request from the OS.
- Available
Space - The space available for an element to be laid out in
- Axis
- Axis in a 2D cartesian space.
- Biometric
Kind - The kind of biometric authentication available.
- Biometric
Status - The availability status of biometric authentication.
- Blend
Mode - The blend mode to apply when rendering a quad.
- Border
Style - The style of a border.
- Click
Event - A click event, generated when a mouse button or keyboard button is pressed and released.
- Clipboard
Entry - Either a ClipboardString or a ClipboardImage
- Color
Space - A color space for color interpolation.
- Corner
- Identifies a corner of a 2d box.
- Cursor
Style - The style of the cursor (pointer)
- Date
Picker Navigation Direction - Direction of a date picker navigation button.
- Decorations
- A type to describe how this window is currently configured
- Definite
Length - A non-auto length that can be defined in pixels, rems, or percent of parent.
- Dialog
Kind - The kind of a native dialog.
- Dispatch
Phase - Represents the two different phases when dispatching events.
- Display
- Sets the layout used for the children of this node
- Element
Id - An identifier for an
Element. - File
Drop Event - A file drop event from the platform, generated when files are dragged and dropped onto the window.
- File
Watch Event - A file-system change delivered by
FileWatcher. - Fill
- The kinds of fill that can be applied to a shape.
- Fill
Rule - The fill rule defines how to determine what is inside and what is outside of the shape.
- Flex
Direction - The direction of the flexbox layout main axis.
- Flex
Wrap - Controls whether flex items are forced onto one line or can wrap onto multiple lines.
- Font
Style - Allows italic or oblique faces to be selected.
- Grid
Placement - The placement of an item within a grid layout’s column or row.
- Hitbox
Behavior - How the hitbox affects mouse behavior.
- Image
Asset Loader - An image loader for the GPUI asset system
- Image
Cache Error - An error that can occur when interacting with the image cache.
- Image
Cache Item - An image cache item
- Image
Format - One of the editor’s supported image formats (e.g. PNG, JPEG) - used when dealing with images in the clipboard
- Image
Source - A source of image content.
- KeyBinding
Context Predicate - A datastructure for resolving whether an action should be dispatched Representing a small language for describing which contexts correspond to which actions.
- Keyboard
Button - An enum representing the keyboard button that was pressed for a click event.
- Layer
Placement - Controls how a layer is placed inside a
LayerStack. - Length
- A length that can be defined in pixels, rems, percent of parent, or auto.
- LineCap
- Line cap as defined by the SVG specification.
- Line
Fragment - A fragment of a line that can be wrapped.
- Line
Join - Line join as defined by the SVG specification.
- Linux
Package Format - Supported Linux packaging formats for auto-update.
- List
Alignment - Whether the list is scrolling from top to bottom or bottom to top.
- List
Horizontal Sizing Behavior - The horizontal sizing behavior to apply during layout.
- List
Sizing Behavior - The sizing behavior to apply during layout.
- Loop
Mode - The loop policy used by a Lottie player.
- Lottie
Asset Loader - Asset loader for decoded Lottie animations.
- Lottie
Asset Source - Internal asset-cache key used for Lottie resource loading.
- Lottie
Error - An error that can occur when loading or rendering a Lottie animation.
- Lottie
Source - A source of Lottie animation content.
- Media
KeyEvent - Media key events from hardware media keys or OS media controls.
- Menu
Item - The different kinds of items that can be in a menu
- Mouse
Button - An enum representing the mouse button that was pressed.
- Navigation
Direction - A navigation direction, such as back or forward.
- Navigation
Policy - Controls whether a WebView navigation attempt should continue.
- Network
Status - The current network connectivity status.
- Object
Fit - How to fit the image into the bounds of the element.
- OsAction
- OS actions are actions that are recognized by the operating system This allows the operating system to provide specialized behavior for these actions
- Overflow
- How children overflowing their container should affect layout
- Owned
Menu Item - The different kinds of items that can be in a menu
- Path
Style - Style of the PathBuilder
- Permission
Status - The status of a system permission.
- Platform
Input - An enum corresponding to all kinds of platform input events.
- Playback
State - The playback state for a Lottie animation.
- Position
- The positioning strategy for this item.
- Power
Mode - The system’s current power policy.
- Power
Save Blocker Kind - The kind of power save blocker to create.
- Print
Image Fit - How to fit an image into a print image bounds rectangle.
- Print
Orientation - Orientation metadata for a print job.
- Progress
BarState - The state of a taskbar/dock progress bar for a window.
- Prompt
Button - Prompt Button
- Prompt
Level - What kind of prompt styling to show
- Resize
Edge - Which part of the window to resize
- Resource
- An enum representing
- Scroll
Delta - The scroll delta for a scroll wheel event.
- Scroll
Strategy - Where to place the element scrolled to.
- Surface
Source - A source of a surface’s content.
- System
Menu Type - The type of system menu
- System
Power Event - System power state change events.
- Text
Align - How to align text within the element
- Text
Overflow - How to truncate text that overflows the width of the element
- Toast
Position - Position where toasts appear on screen.
- Touch
Phase - The phase of a touch motion event. Based on the winit enum of the same name.
- Trace
Phase - The phase of a trace event in the Chrome Trace Event format.
- Transition
- A transition applied between navigation stack changes.
- Tray
Icon Event - Events that can occur on a system tray icon.
- Tray
Menu Item - A menu item for a system tray context menu.
- Update
Status - The current state of the auto-updater.
- Visibility
- The value of the visibility property, similar to the CSS property
visibility - White
Space - How to handle whitespace in text
- Window
Appearance - The appearance of the window, as defined by the operating system.
- Window
Background Appearance - The appearance of the background of the window itself, when there is no content or the content is transparent.
- Window
Bounds - Represents the status of how a window should be opened.
- Window
Control Area - A type of window control area that corresponds to the platform window.
- Window
Decorations - A type to describe the appearance of a window
- Window
Kind - The kind of window to create
- Window
Position - A semantic window position for positioning windows relative to the screen.
Constants§
- KEYSTROKE_
PARSE_ EXPECTED_ MESSAGE - Sentence explaining what keystroke parser expects, starting with “Expected …”
- LOADING_
DELAY - The delay before showing the loading state.
- SHUTDOWN_
TIMEOUT - The duration for which futures returned from Context::on_app_quit can run before the application fully quits.
Traits§
- Action
- Actions are used to implement keyboard-driven UI. When you declare an action, you can bind keys to the action in the keymap and listeners for that action in the element tree.
- Along
- A trait for accessing the given unit along a certain axis.
- Animation
Ext - An extension trait for adding the animation wrapper to both Elements and Components
- AppContext
- The context trait, allows the different contexts in GPUI to be used interchangeably for certain operations.
- AsKeystroke
- This is a helper trait so that we can simplify the implementation of some functions
- Asset
- A trait for asynchronous asset loading.
- Asset
Source - A source of assets for this app to use.
- Borrow
AppContext - A helper trait for auto-implementing certain methods on contexts that can be used interchangeably.
- Element
- Implemented by types that participate in laying out and painting the contents of a window. Elements form a tree and are laid out according to web-based layout rules, as implemented by Taffy. You can create custom elements by implementing this trait, see the module-level documentation for more details.
- Entity
Input Handler - Implement this trait to allow views to handle textual input when implementing an editor, field, etc.
- Event
Emitter - A trait for tying together the types of a GPUI entity and the events it can emit.
- Flatten
- A flatten equivalent for anyhow
Results. - Focusable
- Focusable allows users of your view to easily focus it (using window.focus_view(cx, view))
- Future
Ext - Extensions for Future types that provide additional combinators and utilities.
- Global
- A marker trait for types that can be stored in GPUI’s global state.
- Half
- Provides a trait for types that can calculate half of their value.
- Image
Cache - An object that can handle the caching and unloading of images. Implementations of this trait should ensure that images are removed from all windows when they are no longer needed.
- Image
Cache Provider - An object that can create an ImageCache during the render phase. See the ImageCache trait for more information.
- Input
Event - An event from a platform input source.
- Input
Handler - Kael’s interface for handling text input from the platform’s IME system This is currently a 1:1 exposure of the NSTextInputClient API:
- Input
Mask - A hook that can normalize a text edit before it is committed.
- Interactive
Element - A trait for elements that want to use the standard GPUI event handlers that don’t require any state.
- Into
Element - Implemented by any type that can be converted into an element.
- IsEmpty
- IsZero
- A trait for checking if a value is zero.
- KeyEvent
- A key event from the platform.
- List
Delegate - Supplies item counts, estimated heights, and item rendering for a
RecyclingList. - Managed
View - ManagedView is a view (like a Modal, Popover, Menu, etc.) where the lifecycle of the view is handled by another view.
- Mouse
Event - A mouse event from the platform.
- Negate
- Provides a trait for types that can negate their values.
- Parent
Element - This is a helper trait to provide a uniform interface for constructing elements that can accept any number of any kind of child elements
- Platform
Display - A handle to a platform’s display, e.g. a monitor or laptop screen.
- Platform
Installer - Trait for platform-specific update installation.
- Platform
Keyboard Layout - A trait for platform-specific keyboard layouts
- Platform
Keyboard Mapper - A trait for platform-specific keyboard mappings
- Prompt
- A prompt that can be rendered in the window.
- Read
Global - A trait for reading a global value from the context.
- Refineable
- A trait for types that can be refined with partial updates.
- Render
- An object that can be drawn to the screen. This is the trait that distinguishes “views” from
other entities. Views are
Entity’s whichimpl Renderand drawn to the screen. - Render
Once - You can derive
IntoElementon any type that implements this trait. It is used to construct reusablecomponentsout of plain data. Think of components as a recipe for a certain pattern of elements. RenderOnce allows you to invoke this pattern, without breaking the fluent builder pattern of the element APIs. - Screen
Capture Source - A source of on-screen video content that can be captured.
- Screen
Capture Stream - A video stream captured from a screen.
- Sortable
Delegate - Supplies item rendering and reorder behavior for a
SortableList. - Stateful
Interactive Element - A trait for elements that want to use the standard GPUI interactivity features that require state.
- Styled
- A trait for elements that can be styled. Use this to opt-in to a utility CSS-like styling API.
- Styled
Image - Style an image element.
- Tooltip
Content - Accepted content sources for tooltips on interactive elements.
- Transition
Animator - Renders a custom navigation transition.
- Uniform
List Decoration - A decoration for a
UniformList. This can be used for various things, such as rendering indent guides, or other visual effects. - Update
Global - A trait for updating a global value in the context.
- Visual
Context - This trait is used for the different visual contexts in GPUI that require a window to be present.
Functions§
- alert
- Construct a semantic alert container.
- anchored
- anchored gives you an element that will avoid overflowing the window bounds. Its children should have no margin to avoid measurement issues.
- auto
- Returns a
Lengthrepresenting an automatic length. - background_
executor - Returns a background executor for the current platform.
- black
- Pure black in
Hsla - blue
- The color blue in
Hsla - bounds
- Create a bounds with the given origin and size
- button
- Construct a button primitive with caller-owned visuals.
- cached
- Reuses a child subtree’s previous prepaint and paint output until one of its tracked entities changes.
- canvas
- Construct a canvas element.
- canvas_
with_ prepaint - Construct a canvas element from explicit prepaint and paint closures.
- capture_
crash_ report - Capture a
CrashReportfrom the current panic information. - checkbox
- Construct a controlled checkbox form control.
- combine_
highlights - Combine and merge the highlights and ranges in the two iterators.
- conic_
gradient - Creates a conic (sweep) gradient background.
- date_
picker - Construct a controlled popup-backed date picker.
- deferred
- Builds a
Deferredelement, which delays the layout and paint of its child. - dialog
- Construct a semantic dialog container.
- disclosure
- Construct a controlled disclosure primitive.
- div
- Construct a new
Divelement - fallback_
prompt_ renderer - Use this function in conjunction with App::set_prompt_builder to force GPUI to always use the fallback prompt renderer.
- fill
- Creates a filled quad with the given bounds and background color.
- font
- Get a
Fontfor a given name. - generate_
list_ of_ all_ registered_ actions - Generate a list of all the registered actions. Useful for transforming the list of available actions into a format suited for static analysis such as in validating keymaps, or generating documentation.
- green
- The color green in
Hsla - guess_
compositor - Return which compositor we’re guessing we’ll use. Does not attempt to connect to the given compositor
- hash
- Use a quick, non-cryptographically secure hash function to get an identifier from data
- hsla
- Construct an
Hslaobject from plain values - icon
- Create a built-in icon element from the generated icon atlas.
- image_
cache - An image cache element, all its child img elements will use the cache specified by this element.
Note that this could as simple as passing an
Entity<T: ImageCache> - img
- Create a new image element.
- is_
no_ action - Returns whether or not this action represents a removed key binding.
- label
- Construct a label primitive.
- linear_
color_ stop - Creates a new linear color stop.
- linear_
gradient - Creates a LinearGradient background color.
- link
- Construct a semantic hyperlink primitive.
- list
- Construct a new list element
- lottie
- Create a Lottie animation element.
- menu
- Construct a semantic menu container.
- menu_
button - Construct a menu button primitive backed by an anchored popup menu.
- menu_
item - Construct a semantic menu item primitive.
- modal
- Construct a controlled modal primitive.
- multi_
stop_ linear_ gradient - Creates a linear gradient with up to 4 color stops.
- navigator
- Creates a navigator initialized with a single route.
- opaque_
grey - Opaque grey in
Hsla, values will be clamped to the range [0, 1] - outline
- Creates a rectangle outline with the given bounds, border color, and a 1px border width
- pane
- Construct a semantic pane container.
- parse_
update_ feed - Parse an update feed, auto-detecting Sparkle appcast XML vs JSON format.
- pattern_
slash - Creates a hash pattern background
- percentage
- Generate a
Radianfrom a percentage of a full circle. - phi
- Returns the Golden Ratio, i.e.
~(1.0 + sqrt(5.0)) / 2.0. - point
- Constructs a new
Point<T>with the given x and y coordinates. - popover
- Construct a controlled anchored popover primitive.
- progress
- Construct a progress indicator from the current value.
- px
- Constructs a
Pixelsvalue representing a length in pixels. - quad
- Creates a quad with the given parameters.
- radial_
gradient - Creates a radial gradient background.
- radians
- Create a
Radianfrom a raw value - radio_
group - Construct a controlled radio group from a current value and labeled options.
- recycling_
list - Lazily render a heterogeneous list with estimated heights for off-screen items.
- red
- The color red in
Hsla - relative
- Constructs a
DefiniteLengthrepresenting a relative fraction of a parent size. - rems
- Constructs a
Remsvalue representing a length in rems. - retain_
all - Constructs a retain-all image cache that uses the element state associated with the given ID.
- rgb
- Convert an RGB hex color code number to a color type
- rgba
- Convert an RGBA hex color code number to
Rgba - rich_
text - Creates a rich text element that supports styled spans, inline elements, and selection.
- scroll_
bar - Construct a scroll bar primitive bound to a scroll handle.
- select
- Construct a controlled combo box from the current value and labeled options.
- separator
- Construct a semantic separator primitive.
- size
- Constructs a new
Size<T>with the provided width and height. - slider
- Construct a controlled slider form control.
- solid_
background - Creates a solid background color.
- sortable_
list - Creates a list with built-in internal drag-and-drop reordering.
- splitter
- Construct a controlled splitter primitive for resizable panes.
- stroke
- Construct a stroke with the default cap and join settings.
- surface
- Create a new surface element.
- svg
- Create a new SVG element.
- tabs
- Construct a controlled tabs primitive.
- text_
input - Construct an editable text field.
- toggle
- Construct a controlled toggle switch form control.
- toolbar
- Construct a semantic toolbar container.
- transparent_
black - Transparent black in
Hsla - transparent_
white - Transparent white in
Hsla - tree
- Construct a semantic tree container.
- tree_
item - Construct a semantic tree item primitive.
- uniform_
list - uniform_list provides lazy rendering for a set of items that are of uniform height. When rendered into a container with overflow-y: hidden and a fixed (or max) height, uniform_list will only render the visible subset of items.
- webview
- Creates a WebView element backed by the platform’s native embedded web content view.
- white
- Pure white in
Hsla - write_
crash_ report - Write a crash report JSON file to the given directory.
- yellow
- The color yellow in
Hsla
Type Aliases§
- Align
Self - Used to control how the specified nodes is aligned.
Overrides the parent Node’s
AlignItemsproperty. For Flexbox it controls alignment in the cross axis For Grid it controls alignment in the block axis - Image
Loading Task - An image loading task associated with an image cache.
- ImgResource
Loader - A type alias to the resource loader that the
img()element uses. - Inspector
Renderer - Function set on
Appto render the inspector UI. - Justify
Content - Sets the distribution of space between and around content items For Flexbox it controls alignment in the main axis For Grid it controls alignment in the inline axis
- Justify
Items - Used to control how child nodes are aligned. Does not apply to Flexbox, and will be ignored if specified on a flex container For Grid it controls alignment in the inline axis
- Justify
Self - Used to control how the specified nodes is aligned.
Overrides the parent Node’s
JustifyItemsproperty. Does not apply to Flexbox, and will be ignored if specified on a flex child For Grid it controls alignment in the inline axis - Lottie
Resource Loader - A type alias to the resource loader that the
lottie()element uses. - Result
Result<T, Error>- Transform
- Alias for
euclid::default::Transform2D<f32>
Attribute Macros§
- test
#[kael::test]can be used to annotate test functions that run with GPUI support.
Derive Macros§
- Action
Actionderive macro - see the trait documentation for details.- AppContext
- #[derive(AppContext)] is used to create a context out of anything that holds a
&mut AppNote that a#[app]attribute is required to identify the variable holding the &mut App. - Into
Element - #[derive(IntoElement)] is used to create a Component out of anything that implements
the
RenderOncetrait. - Refineable
- Visual
Context - #[derive(VisualContext)] is used to create a visual context out of anything that holds a
&mut Windowand implementsAppContextNote that a#[app]and a#[window]attribute are required to identify the variables holding the &mut App, and &mut Window respectively.