#themes #gpui #editor #showcase #color-picker

bin+lib gpui-themes

Theme editor and management for GPUI applications

1 unstable release

Uses new Rust 2024

0.5.1 Jan 11, 2026

#1028 in GUI

ISC license

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.

License

Crates

Crate Description Docs
gpui-ui-kit Reusable UI components (buttons, inputs, dialogs, etc.) docs.rs
gpui-d3rs D3.js-inspired data visualization library docs.rs
gpui-px Plotly Express-style high-level charting API docs.rs
gpui-themes Theming support for gpui-ui-kit docs.rs

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

ISC 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