Skip to content

Releases: pierreaubert/gpui-toolkit

Faster and leaner

Choose a tag to compare

@pierreaubert pierreaubert released this 21 Oct 18:27
9b22eb3

Performance improvement across the stack around 30% and 20% less memory.
Usual list of small bug fixes.
Improve documentation and linked a new tutorial.

New CLI, macros, components. Stable Python and WASM.

Choose a tag to compare

@pierreaubert pierreaubert released this 10 Oct 09:40
846d289

gpui-toolkit 0.10 — Release Notes

0.10 is the first minor line cut after the workspace-wide QA, gallery, and
design-system push: one CLI for humans and agents, a supported WASM/browser
target with a live demo gallery, a compile-time layout macro, 30 new UI
components, and a design selector that now drives every design-aware
component. All crates move from 0.9.x to 0.10.x; the neutral design
reproduces previous rendering exactly.

Unified gpui-toolkit CLI

One binary (gpui-toolkit-cli) covers the component catalog
(component --props, batch reads), page/block/theme templates, theme
token export, doctor health checks, upgrade migration notes with
deprecated-pattern detection, and layout-expression tools. Every command
honors --json with typed envelopes and stable ERR_* codes, and
manifest --json exposes a self-describing surface for coding agents.
Project overrides live in toolkit.toml.

cargo install --path crates/gpui-toolkit-cli
gpui-toolkit doctor            # CI gate, exits 1 on failure
gpui-toolkit component Button --props

Layout expressions and the layout! macro

gpui-layout-expr adds a compact layout-expression language with a
parser, component registry, project aliases, and CLI
check/expand — plus the compile-time layout! proc macro in
gpui-ui-kit-macros, so widget trees can be sketched as one-liners
(V > (Tx"Hi" + B.primary"Go")) or as structured macro blocks with
unknown names failing the build at the offending span. The README
comparison shows the same UI in builder Rust, layout!, and Python.

30 new UI-kit components

AppShell/TopNav/MobileNav shell family, Calendar, DateRange/Time/DateTime
inputs, Chat, Markdown/Blockquote, FileInput, Pagination, Skeleton,
Field/FieldStatus, Tokenizer, Lightbox, Carousel, HoverCard,
Grid/Center/AspectRatio layout primitives, Layer, VisuallyHidden,
SelectableCard, MetadataList, Citation, Timestamp, Resizable, and List —
each with theme coverage, behavior-matrix rows, i18n labels, lab
stories, showcase sections, and Python bindings.

Design system: the selector drives everything

Alert, Toast (+container), ButtonSet, Badge, Progress
(+circular), Tabs, and Card take .design() and follow
DesignSystem tokens for padding, gaps, radii, and type; the audio
VolumeKnob, LevelMeter, and Spectrum family takes
.design()/.design_tokens() for knob, meter, and spectrum geometry
(mirrored to the Python AudioDesignTokens dataclass). The
component-lab design selector gained macOS, Adwaita, Breeze, and Carbon
presets, syncs the app-global design, and threads explicit per-cell
designs through every story renderer, so matrix mode renders each cell
in its own design. The Vello meter/spectrum paint paths now honor
corner radius, matching CPU output.

WASM/browser target and demo gallery

WASM/browser is a supported target with renderer queries (auto, cpu,
legacy), headless-Chrome smoke tests, and screenshot diffs against
baselines (just wasm-setup, just wasm-serve-*, just wasm-test,
just wasm-visual). Charts and audio visuals default to Vello with CPU
fallback. The generated gallery at gpui-toolkit.spinorama.org renders
one featured example across every theme and design style, with each
card linking to a seeded ?style= demo variant.

Python runtime

Retained IR nodes plus Python builders and showcase sections for the
new components, DatasetFrame Arrow IPC ingest, per-chart-kind chart
validation, and line coverage above the 90% release floor. Tutorial
floor: gpui-toolkit 0.10.33+.

Platforms and quality gates

macOS, Linux, Windows, iOS, tvOS, Android, and WASM, behind the just qa suite: clippy/rustdoc/contract gates, 200-case Metal PR capture
profile with versioned baselines, mesh/visual/CVD/perf/memory gates,
and locked publish dry-runs for the crates.io wave-1 set
(gpui-design, gpui-profiler, gpui-ui-kit-macros).

Upgrading from 0.9

  • Bump workspace/internal requirements from "0.9" to "0.10".
  • Pre-1.0 minor: intentional breaking changes are possible; see the
    per-crate changelogs and upgrade notes. One rendering note:
    text_xs labels now resolve through the small type token (11px
    under neutral instead of 12px).
  • MSRV remains Rust 1.89.

Major release with python bindings

Choose a tag to compare

@pierreaubert pierreaubert released this 01 Sep 09:22
v0.9.25
65c7e35

Gpui-toolkit is slowing converging to production quality.

Highlights:

  • python bindings on pypi: pip install gpui-toolkit
  • wasm version is working and you can use it directly in your browser. you can now build an app 100% in rust and render in the browers
  • 2d graphics are now very fast thanks to vello integration
  • a scaffolder make it easy to start

Technical:

  • QA is in place with visual non-regression across all platforms
  • Lots of bug fixes :)

v0.7.0

Choose a tag to compare

@pierreaubert pierreaubert released this 12 Jun 09:27
4d5c78c

Stable release

  • works on iOS :)
  • builder pattern is here
  • support for figma/token
  • designer pattern
  • components lab
  • scaffolder

Look at the README and TUTORIAL. Points your favorite LLM to AGENTS.md and start building.

Forked from SotF

Choose a tag to compare

@pierreaubert pierreaubert released this 11 Jan 21:28
bdbdfc5

This is the same version as the current one on SotF.

Differences:

  • works with GPUI 0.2.2 (SotF is on head)