v0.6.2

Developer-Y/cs-video-coursesv0.6.2Sep 18, 2026by huacnlee

Upgrading?

AI Summary

Adds mobile application support, new components, public editor search API, Markdown plugins, and motion sequencing.

Key Highlights

  • Mobile application support for iOS and Android
  • New components: Carousel, Empty, and InputGroup
  • Public editor search API
  • Markdown inline plugins
  • Motion sequencing with Sequence
  • Removed the dock's tiles canvas

Breaking Changes

  • Removed the dock's tiles canvas

New Features

  • Mobile support with touch text selection
  • Carousel, Empty, and InputGroup components
  • Public editor search API
  • Markdown plugins
  • Motion sequencing
  • Touch text selection and scroll bounce

Full Release Notes

# GPUI Kit v0.6.2

GPUI Kit v0.6.2 brings mobile application support for iOS and Android, three new components (Carousel, Empty, and InputGroup), a public editor search API, Markdown inline plugins, and motion sequencing. This release also cuts per-frame work in TextView, List, Plot, and Chart, and removes the dock's tiles canvas.

## Mobile Applications

GPUI Kit applications can now be hosted by an external iOS or Android platform. Mobile builds keep GPUI and component initialization while leaving the desktop platform selector out, and `gpui_kit::is_mobile()` exposes the target check. On mobile, tooltips stay hidden and `HoverCard` opens and closes on tap. New [mobile guides](https://gpui-kit.com/docs/mobile/) cover simulator setup, Swift `UIView` embedding, lifecycle and keyboard layout, and touch interactions. ([#3045](https://github.com/longbridge/gpui-kit/pull/3045))

- **Touch text selection**: a long press in `Input`, `Textarea`, `Editor`, or a selectable `TextView` selects the word under the finger and shows draggable selection handles with an iOS-style edit menu (Cut, Copy, Paste, Select All). Double tap selects a word in editable text, Select All reaches past the viewport, and the menu returns after a scroll. ([#3058](https://github.com/longbridge/gpui-kit/pull/3058), [#3073](https://github.com/longbridge/gpui-kit/pull/3073), [#3076](https://github.com/longbridge/gpui-kit/pull/3076), [#3075](https://github.com/longbridge/gpui-kit/pull/3075), [#3077](https://github.com/longbridge/gpui-kit/pull/3077))
- **iOS-like scroll bounce** through the new `ScrollBounce` wrapper in `gpui-base`, covering lists, scrollable `div`s, touch release, momentum, and reduced motion. ([#3067](https://github.com/longbridge/gpui-kit/pull/3067))
- Scrollbars support touch dragging with a smaller resting thumb on mobile. ([#3060](https://github.com/longbridge/gpui-kit/pull/3060), [#3111](https://github.com/longbridge/gpui-kit/pull/3111))
- A long press opens a plot's tooltip on mobile. ([#3078](https://github.com/longbridge/gpui-kit/pull/3078))

## New Components

- **Carousel**: horizontal and vertical snapping, pointer and trackpad gestures, keyboard navigation, controlled selection, looping, optional pagination, and reduced motion. ([#2867](https://github.com/longbridge/gpui-kit/pull/2867))
- **Empty**: composable empty states built from `Empty`, `EmptyHeader`, `EmptyMedia`, `EmptyTitle`, `EmptyDescription`, and `EmptyContent`, imported from `gpui_kit::component::empty`. ([#3030](https://github.com/longbridge/gpui-kit/pull/3030))
- **InputGroup**: inline addons, block toolbars, and textareas sharing one input frame through `InputGroup`, `InputGroupInput`, `InputGroupTextarea`, `InputGroupAddon`, `InputGroupButton`, and `InputGroupText`. ([#3042](https://github.com/longbridge/gpui-kit/pull/3042))

## Editor and Text Input

- **Editor search API** is now public on the editor state: `set_search_query`, `close_search`, `next_search_match`, `previous_search_match`, the replace methods, and `search_session()`, so an application can draw its own search bar. Match highlights show without the panel, and the search shortcut reaches the host view. ([#2533](https://github.com/longbridge/gpui-kit/pull/2533))
- Wrapped search matches stay visible with surrounding context. ([#3013](https://github.com/longbridge/gpui-kit/pull/3013))
- Added `on_paste` to `Input`, `Textarea`, and `Editor` so applications can handle images and files from the clipboard instead of dropping them. ([#3087](https://github.com/longbridge/gpui-kit/pull/3087))
- Languages can register runtime parser factories through `LanguageRegistry::register_parser_factory`, so a Tree-sitter grammar no longer has to be linked into the binary. ([#3039](https://github.com/longbridge/gpui-kit/pull/3039))
- Fixed text descender clipping. ([#3023](https://github.com/longbridge/gpui-kit/pull/3023))

## Markdown and Text Rendering

- **Inline plugins** through `MarkdownPlugin` and `.plugin(...)`. Inline math parses by default, and the example adds `[@user](mention:user)` profile cards. Inline objects inherit surrounding formatting and links and participate in table column sizing. ([#3031](https://github.com/longbridge/gpui-kit/pull/3031), [#3070](https://github.com/longbridge/gpui-kit/pull/3070))
- **Streamed text fades in** with `TextView::stream_fade(true)`, or with custom timing and a word-by-word reveal through `TextViewMotion`. ([#3082](https://github.com/longbridge/gpui-kit/pull/3082))
- A Markdown image's `data:` URL is decoded instead of fetched. ([#3088](https://github.com/longbridge/gpui-kit/pull/3088))
- Faster rendering: fewer and cheaper elements per Markdown frame, and a paragraph's shaped text and highlights are kept across frames. ([#3090](https://github.com/longbridge/gpui-kit/pull/3090), [#3115](https://github.com/longbridge/gpui-kit/pull/3115))
- Fixed inline-code layout in headings, list alignment, and inline-code fragments wrapping twice. ([#3038](https://github.com/longbridge/gpui-kit/pull/3038), [#3046](https://github.com/longbridge/gpui-kit/pull/3046))

## Motion

- **`Sequence`** chains transitions so a step starts when the previous one ends, each with its own duration, easing, and delay. ([#3092](https://github.com/longbridge/gpui-kit/pull/3092))
- `gpui_base::init` reads the operating system's reduced-motion preference into `App::reduce_motion`, which every Base motion primitive already honors. ([#3094](https://github.com/longbridge/gpui-kit/pull/3094))

## Dock

- **Removed the tiles canvas.** `Split` and `Tabs` are now the only container shapes; a freeform canvas is a panel the host implements. `gpui_component::dock::Panel::title_bar` lets a panel that carries its own chrome opt out of the tab group's title bar. See Breaking Changes below. ([#3036](https://github.com/longbridge/gpui-kit/pull/3036))
- Added `DockArea::select_panel` to display a tab by `PanelId` wherever it sits, without moving it. ([#3063](https://github.com/longbridge/gpui-kit/pull/3063))

## Components

- **Button**: a ghost button hovers with `accent` and presses with `button_active`, matching the outline button and other low-emphasis controls. ([#3100](https://github.com/longbridge/gpui-kit/pull/3100))
- **Dialog**: a dialog stays inside the window it opens in, and its own controls route to that dialog. ([#3093](https://github.com/longbridge/gpui-kit/pull/3093), [#3097](https://github.com/longbridge/gpui-kit/pull/3097))
- **Menu**: a submenu opens from a scrollable `PopupMenu`, and shortcut hints paint on the frame the menu opens. ([#3095](https://github.com/longbridge/gpui-kit/pull/3095), [#3096](https://github.com/longbridge/gpui-kit/pull/3096))
- **Tab**: fixed explicit scrolling to newly added tabs, and `flex_1()` tabs fill the tab bar again. ([#3021](https://github.com/longbridge/gpui-kit/pull/3021), [#3032](https://github.com/longbridge/gpui-kit/pull/3032))
- **List and Table**: dropped the outline from the selected item, row, and cell; keyboard row navigation stops when `row_selectable` is off. ([#3108](https://github.com/longbridge/gpui-kit/pull/3108), [#3033](https://github.com/longbridge/gpui-kit/pull/3033))
- **Select**: the search query clears when the menu closes. ([#3050](https://github.com/longbridge/gpui-kit/pull/3050))
- **Setting**: fixed number step and clamping in the delegate, and preserved the selected page while searching. ([#3099](https://github.com/longbridge/gpui-kit/pull/3099), [#3104](https://github.com/longbridge/gpui-kit/pull/3104))
- **Avatar**: the initials fallback draws from an even OkLCH hue ring. ([#3026](https://github.com/longbridge/gpui-kit/pull/3026))
- **ColorPicker**: fixed duplicate accessibility node IDs. ([#3028](https://github.com/longbridge/gpui-kit/pull/3028))
- **Chart and Plot**: the hover animates, heavy geometry is cached, grids paint as quads, and tessellated line and area paths are cached. The chart gallery cards were reworked. ([#3112](https://github.com/longbridge/gpui-kit/pull/3112), [#3071](https://github.com/longbridge/gpui-kit/pull/3071))
- **List**: trimmed the per-frame cost of a scrolling list. ([#3085](https://github.com/longbridge/gpui-kit/pull/3085))
- **FPS**: the readout leaves its own frame out of the readings, grades against the panel, and stops the clock while hidden. ([#3025](https://github.com/longbridge/gpui-kit/pull/3025), [#3029](https://github.com/longbridge/gpui-kit/pull/3029))

## Documentation and Website

Added mobile guides, notification placement docs, and certified AI-facing consumer recipes. The website lets the browser draw emoji and CJK text the bundled fonts lack, skips the system font probe when no font is installed, and fixes the docs sidebar hover background. ([#3062](https://github.com/longbridge/gpui-kit/pull/3062), [#3109](https://github.com/longbridge/gpui-kit/pull/3109), [#3057](https://github.com/longbridge/gpui-kit/pull/3057), [#3106](https://github.com/longbridge/gpui-kit/pull/3106), [#3044](https://github.com/longbridge/gpui-kit/pull/3044))

Thank you to everyone who contributed code, documentation, testing, and feedback!

## What's Changed
* chore: Refresh the recipes lock for the `0.6.1` version bump by @madcodelife in https://github.com/longbridge/gpui-kit/pull/3024
* carousel: Add a Carousel component by @suxiaoshao in https://github.com/longbridge/gpui-kit/pull/2867
* shell: switch to quickjs-jit 0.12.7 with upstream compatibility facade by @huacnlee in https://github.com/longbridge/gpui-kit/pull/2903
* fps: Leave the readout clock's own frame out of the readings by @madcodelife in https://github.com/longbridge/gpui-kit/pull/3025
* component: Fix text descender clipping by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3023
* avatar: Draw the initials fallback from an even OkLCH hue ring by @madcodelife in https://github.com/longbridge/gpui-kit/pull/3026
* tab: Fix explicit scrolling to newly added tabs by @BeratHundurel in https://github.com/longbridge/gpui-kit/pull/3021
* editor: keep wrapped search matches visible with context by @hlcfan in https://github.com/longbridge/gpui-kit/pull/3013
* color_picker: Fix prevent duplicate accessibility node IDs by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3028
* fps: Grade against the panel, and stop the clock while hidden by @madcodelife in https://github.com/longbridge/gpui-kit/pull/3029
* tab: Let `flex_1()` tabs fill the tab bar again by @madcodelife in https://github.com/longbridge/gpui-kit/pull/3032
* table: Stop keyboard row navigation when `row_selectable` is off by @madcodelife in https://github.com/longbridge/gpui-kit/pull/3033
* text_view: Add Inline plugin by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3031
* chore: Fix inline flow lint. by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3034
* empty: Add composable empty states by @suxiaoshao in https://github.com/longbridge/gpui-kit/pull/3030
* text: Fix inline-code heading layout and list alignment by @wabzqem in https://github.com/longbridge/gpui-kit/pull/3038
* dock: Remove the tiles canvas by @madcodelife in https://github.com/longbridge/gpui-kit/pull/3036
* website: fix docs sidebar hover background clipped on left edge by @Muhammad-Owais-Warsi in https://github.com/longbridge/gpui-kit/pull/3044
* highlighter: allow languages to register runtime parser factories by @feigeCode in https://github.com/longbridge/gpui-kit/pull/3039
* text: prevent inline-code fragments from wrapping twice by @wabzqem in https://github.com/longbridge/gpui-kit/pull/3046
* kit: Add support mobile applications in GPUI Kit by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3045
* select: Clear the search query when the menu closes by @Muhammad-Owais-Warsi in https://github.com/longbridge/gpui-kit/pull/3050
* shell: validate default TextView link URLs by @lurenjia534 in https://github.com/longbridge/gpui-kit/pull/3048
* chore: Relax exact gpui-pre dependency pins when staging by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3059
* mobile: Support mobile text selection and scrollbar dragging by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3058
* scrollbar: Preserve thumb alignment and drag throttling for mobile support by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3060
* docs: document notification placement by @Muhammad-Owais-Warsi in https://github.com/longbridge/gpui-kit/pull/3062
* test: adapt TextView settle check for GPUI 0.3.5 by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3064
* chore: Fix release gpui scope staged GPUI clippy warnings by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3065
* chroe: Allow upstream deprecations in GPUI release check by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3066
* dock: Add `DockArea::select_panel` to display a tab by panel identity by @kameron1979 in https://github.com/longbridge/gpui-kit/pull/3063
* website: Let the browser draw emoji and CJK text the bundled fonts lack by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3057
* base: Add iOS like ScrollBounce by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3067
* ci: Split checks into parallel jobs and stop recompiling GPUI per step by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3068
* base: Walk rows, not characters, for Inline text line bounds by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3070
* plot: Paint grids as quads and cache tessellated line and area paths by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3071
* mobile: Add touch selection handles and an edit menu to Input and TextView by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3073
* base: Give a double tap handles, and let Select All reach past the viewport by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3076
* base: Bring the edit menu back after a scroll the container swallowed by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3075
* base: Keep a finger's double tap out of read-only text by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3077
* plot: Open a plot's tooltip with a long press on mobile by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3078
* mobile: Size the dock title bar's buttons and Clipboard for a finger by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3079
* dock: Revert the mobile title bar sizing by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3080
* list: Trim what a scrolling list pays per frame outside GPUI by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3085
* input: Add on_paste to handle images from clipboard instead of silently dropping them by @Muhammad-Owais-Warsi in https://github.com/longbridge/gpui-kit/pull/3087
* text: Fade streamed text in with `TextView::stream_fade` by @madcodelife in https://github.com/longbridge/gpui-kit/pull/3082
* text_view: Decode a Markdown image's `data:` URL instead of fetching it by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3088
* text_view: Build fewer, cheaper elements per Markdown frame by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3090
* dialog: Keep a dialog inside the window it opens in by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3093
* menu: Let a submenu open from a scrollable PopupMenu by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3095
* menu: Paint a menu's shortcut hints on the frame it opens by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3096
* base: Read the operating system's reduced-motion preference at init by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3094
* motion: Chain transitions with `Sequence` so a step starts when the last one ends by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3092
* button: Hover a ghost button with `accent`, press it with `button_active` by @madcodelife in https://github.com/longbridge/gpui-kit/pull/3100
* dialog: Route a dialog's own controls to that dialog by @IHadACookie in https://github.com/longbridge/gpui-kit/pull/3097
* setting: Fix delegate number step and clamp to InputState by @Muhammad-Owais-Warsi in https://github.com/longbridge/gpui-kit/pull/3099
* website: Skip the system font probe while no font is installed by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3106
* setting: Preserve selected page identity when searching by @suxiaoshao in https://github.com/longbridge/gpui-kit/pull/3104
* input: Expose editor search API by @calmondev in https://github.com/longbridge/gpui-kit/pull/2533
* list, table: Drop the outline from the selected item, row and cell by @madcodelife in https://github.com/longbridge/gpui-kit/pull/3108
* docs: Certify AI-facing consumer recipes by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3109
* input_group: Add InputGroup by @suxiaoshao in https://github.com/longbridge/gpui-kit/pull/3042
* scrollbar: Shrink the resting thumb on mobile by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3111
* chart: Animate the hover, cache heavy geometry and rework the gallery cards by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3112
* shell: update QuickJS JIT to 0.12.9 by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3116
* text_view: Keep a paragraph's shaped text and rendered highlights across frames by @huacnlee in https://github.com/longbridge/gpui-kit/pull/3115

## New Contributors
* @feigeCode made their first contribution in https://github.com/longbridge/gpui-kit/pull/3039
* @kameron1979 made their first contribution in https://github.com/longbridge/gpui-kit/pull/3063
* @calmondev made their first contribution in https://github.com/longbridge/gpui-kit/pull/2533

**Full Changelog**: https://github.com/longbridge/gpui-kit/compare/v0.6.1...v0.6.2

Related Repositories