Repository navigation
gpuicn v0.8.0
gpuicn v0.8.0
The runtime moves to GPUI Kit 0.9.0 on gpui-pre 0.3.11, with gpui-icons
0.6.0. This release also fixes the rendering and interaction problems found
while reviewing the 0.7 chat components in the catalog, most of them in dark
mode. Keep these pins together:
gpui_platform = { package = "gpui-pre-platform", version = "=0.3.11", features = ["font-kit"] }
gpui-icons = "=0.6.0"
gpui-kit = { version = "=0.9.0", default-features = false, features = ["component"] }GPUI Kit 0.9 makes its public theme structs #[non_exhaustive], so struct
literals such as Theme { .., ..Default::default() } no longer compile.
Start from Default::default() and assign fields. See the GPUI Kit
release notes.
gpui-pre 0.3.11 no longer installs a Fetch client on the web. A browser app
that shows images from URLs must pass one in:
let platform = gpui_kit::web::WebPlatform::new_with_backend(true, backend);
let http_client = std::sync::Arc::new(platform.fetch_http_client());
Application::with_platform(std::rc::Rc::new(platform)).with_http_client(http_client)Fixes
- Rounded corners: GPUI clips children to a rectangle, so square content
poked past rounded frames, most visibly in dark mode. Command and Emoji
Picker paint their surface on the rounded root, Attachment and Markdown
images take the frame's inner radius, and thumbnail images take the frame's
aspect ratio so tall images no longer overflow. - Attachment: the upload bar stays clear of the rounded corners on file
cards and image thumbnails. - Dialog: pressing the backdrop closes the dialog again, and the same for
the mobile sidebar sheet. Alert dialogs still ignore it. - Dark theme: the modal scrim is 50% black, since GPUI has no backdrop
blur to pair with shadcn's 10%. The Kit theme now starts from Kit's palette
for the active mode, so colors gpuicn doesn't set, such as scrollbar
tracks, no longer keep light values in dark mode. - Scroll Area: the scrollbar has no track in any state.
- Kbd and Command: modifier and arrow symbols draw as icons, because the
browser build has no fallback font for them.kbd::key_labeldraws the
same inline. - Message: a continuation row's hover time floats in the gutter, so
hovering no longer changes the row's height.
Emoji Picker
Recents set after a pick now wait for the next EmojiPickerState::open, so
picking several emoji doesn't shift the grid. Call open each time you show
the picker; it applies the held recents and focuses the search field.
Upgrading
Update the pins above together, then run gpuicn diff and
gpuicn add <component> --overwrite for the components you use. The theme,
dialog, command, kbd, emoji picker, attachment, markdown, message, scroll area
and sidebar sources changed.