ZacharyZhang-NY c0afce2507 T23a: AI chat, messages
- messages: yours in a quiet bubble, the assistant's as prose beside its mark,
  system notes, errors; avatars, headers with model and time, footers
- MessageList over gpui's bottom-aligned list: drawn near the view, held at the
  newest, counting arrivals while away; a way back down; day separators
- streaming text and markdown reveal toward the text as it grows, with a caret;
  a blinking cursor before the first words
- CodeBlock with language, copy, run, apply, download and folding;
  MarkdownRenderer::code lets messages draw fences with it
- pictures, grids, files, voice notes, video over host frames, link previews
- quotes, actions, an editor that takes focus, versions, regenerate, stop and
  continue
- errors with retry, a rate limit counting down, feedback, thinking blocks
- gallery: the AI Chat page with scripted states
2026-09-26 05:35:09 -04:00
2026-09-26 05:10:37 -04:00
2026-09-26 05:35:09 -04:00
2026-09-26 05:35:09 -04:00
2026-09-26 05:35:09 -04:00
2026-09-26 05:35:09 -04:00
2026-09-26 03:32:24 -04:00
2026-09-26 03:32:24 -04:00
2026-09-26 05:35:09 -04:00

Ely GPUI Component

A component library for GPUI, the Rust UI framework behind Zed. Every component ships in light and dark. The palette is warm and quiet. Color carries meaning, not decoration.

Status: early. TASKS.md tracks every component, chapter by chapter.

Use

[dependencies]
ely-gpui-component = { git = "https://github.com/ZacharyZhang-NY/Ely-GPUI-Components" }
gpui = "0.2.2"
use ely_gpui_component::{Assets, theme::{Mode, Theme}};
use gpui::{App, Application};

fn main() {
    Application::new().with_assets(Assets).run(|cx: &mut App| {
        ely_gpui_component::init(cx);
        Theme::set_mode(Mode::Dark, cx);
    });
}

init registers the fonts and the theme. It panics if Assets is not wired into the application.

cargo run --example gallery
cargo run --example gallery -- --page buttons
cargo run --example gallery -- --capture shots   # macOS: PNG of every page, light and dark

Build notes

  • gpui 0.2.2 compiles its Metal shaders at runtime here (runtime_shaders, on by default), so a full Xcode install is not required.
  • Tested on macOS only. The capture tool needs macOS.

License

MIT or Apache-2.0, at your option. Lucide icons: ISC. Inter and JetBrains Mono: SIL Open Font License 1.1. The gallery photos in examples/gallery/assets were generated for this project with gpt-image-2.

Languages
Rust 98.1%
TypeScript 1.2%
CSS 0.3%
Python 0.2%