Expand description


An easy-to-use, immediate-mode, 2D GUI library featuring a range of useful widgets.

If you are new to Conrod, we recommend checking out The Guide.


pub use color::Color;
pub use color::Colorable;
pub use position::Dimensions;
pub use position::Point;
pub use position::Position;
pub use position::Positionable;
pub use position::Range;
pub use position::Rect;
pub use position::Scalar;
pub use position::Sizeable;
pub use theme::Theme;
pub use widget::scroll;
pub use widget::Widget;


A library providing simple Color and Gradient types along with useful transformations and presets.

Contains an extendable enum of supported mouse cursor types.

Contains all types used to describe the input events that Widgets may handle.

Conrod uses a directed acyclic graph to manage both storing widgets and describing their relationships.

The Conrod Guide

A type used to manage a user’s image data and map them to Image widgets:

This module contains all the logic for handling input events and providing them to widgets.

A mesh type dedicated to converting sequences of render::Primitives to a representation in vertices ready for uploading to the GPU.

Items related to 2D positioning, used throughout conrod.

Conrod’s generic graphics backend.

Text layout logic.

Types a functionality for handling Canvas and Widget theming.

Various utility functions used throughout Conrod.

Widgets are the core building blocks for every conrod user interface.


A macro for simplifying implementation of methods for the builder pattern.

A macro to simplify implementation of “builder-pattern” methods.

A macro used to generate a struct with a field for each unique identifier given. Each field can then be used to generate unique widget::Ids.


Ui is the most important type within Conrod and is necessary for rendering and maintaining widget state.

A constructor type for building a Ui instance with a set of optional parameters.

A wrapper around the Ui that restricts the user from mutating the Ui in certain ways while in the scope of the Ui::set_widgets function and within Widgets’ update methods. Using the UiCell, users may access the Ui immutably (via Deref) however they wish, however they may only mutate the Ui via the &mut self methods provided by the UiCell.


To be used as a parameter for defining the aesthetic of the widget border.


Widgets that may display a border.

Widgets that may display some label.

Type Definitions

Font size used throughout Conrod.

Derive Macros