1 unstable release
Uses new Rust 2024
| 0.5.1 | Jan 11, 2026 |
|---|
#1028 in GUI
4.5MB
21K
SLoC
gpui-toolkit
A collection of libraries for building desktop applications with GPUI, the GPU-accelerated UI framework from the Zed editor.
Crates
| Crate | Description | Docs |
|---|---|---|
| gpui-ui-kit | Reusable UI components (buttons, inputs, dialogs, etc.) | |
| gpui-d3rs | D3.js-inspired data visualization library | |
| gpui-px | Plotly Express-style high-level charting API | |
| gpui-themes | Theming support for gpui-ui-kit |
Versions
- Use v0.5 for maching stable GPUI 0.2.2.
- Use v0.6 for matching head GPUI (not many differences today 12.01.2026)
Overview
gpui-ui-kit
A comprehensive UI component library with 40+ components including:
- Core: Button, Card, Dialog, Menu, Tabs, Toast
- Forms: Input, NumberInput, Checkbox, Toggle, Select, Slider, ColorPicker
- Data Display: Badge, Progress, Spinner, Avatar, Typography
- Audio Controls: Potentiometer, VerticalSlider, VolumeKnob
See the gpui-ui-kit README for usage examples.
gpui-d3rs
A port of D3.js concepts to Rust with idiomatic builder patterns:
- Scales: Linear, Log with automatic tick generation
- Shapes: Lines, Bars, Areas, Arcs, Pies, Scatter plots
- Colors: RGB/HSL, interpolation, categorical schemes
- Geographic: Mercator, Orthographic projections
- Spatial: QuadTree, Delaunay triangulation, Voronoi
- Animation: Transitions, easing functions, timers
See the gpui-d3rs README for the full feature list and examples.
gpui-px
High-level charting API inspired by Plotly Express:
- 6 chart types: Scatter, Line, Bar, Heatmap, Contour, Isoline
- Fluent builder API
- Color scales: Viridis, Plasma, Inferno, Magma, Heat, Coolwarm
- Logarithmic scale support
See the gpui-px README for quick start examples.
Installation
Add the crates you need to your Cargo.toml:
[dependencies]
gpui-ui-kit = "0.6"
gpui-d3rs = "0.6"
gpui-px = "0.6"
gpui = "0.2"
Quick Example
use gpui::*;
use gpui_ui_kit::{Button, ButtonVariant, Card};
use gpui_px::scatter;
// UI Component
let button = Button::new("submit", "Submit")
.variant(ButtonVariant::Primary)
.on_click(|_, _| println!("Clicked!"));
// Chart
let chart = scatter(&x_data, &y_data)
.title("My Data")
.build()?;
Showcases
Each library includes interactive showcases:
# UI Kit showcase
cargo run -p gpui-ui-kit --example showcase
# D3rs showcase
cargo run -p gpui-d3rs --bin d3rs-showcase --release
# Px showcase
cargo run -p gpui-px --bin gpui-px-showcase
License
lib.rs:
GPUI Themes - Theme editor and management for GPUI applications
This crate provides:
- Serializable theme types with JSON and Rust code export
- A color picker component for editing colors (re-exported from gpui-ui-kit)
- A component showcase for previewing theme changes
- A theme editor application
Dependencies
~44–88MB
~1.5M SLoC