This commit is contained in:
2026-10-21 16:20:51 +07:00
parent d0ad1a6f57
commit d7160e196e
46 changed files with 2307 additions and 1534 deletions
+30 -17
View File
@@ -2,15 +2,23 @@
> **Status: Phase A is implemented** (on the working tree, uncommitted). The
> app builds against `gpui-kit` (resolved 0.7.3 / gpui-pre 0.3.9), every UI
> element comes from the kit, `crates/theme` is deleted, and `crates/ui` is a
> utilities-only crate (`motion`, `typography`, `layout`, `styled` helpers,
> `window_drag`). Two planned holdouts moved into app crates instead of being
> reimplemented on kit parts: the chat message composition (→ `chat_ui::message`)
> and the sidebar `Nav` row (→ `workspace::nav`). The panel-background-image
> feature was dropped (per §8). Validation: `cargo check`, `cargo clippy` and
> `cargo fmt` are clean workspace-wide, the desktop binary builds, and `ui`,
> `workspace` compile for `wasm32-unknown-unknown` (the remaining web failures
> are the pre-existing `auto_update` → `rustls` chain, present at HEAD).
> element comes from the kit, and `crates/theme` is deleted.
>
> **Follow-up (this revision, also uncommitted):** the last custom modules in
> `crates/ui` are gone — `motion`, `typography`, `layout` and `styled` were
> deleted and every call site now reads gpui-kit tokens directly (`text_xs` /
> `text_sm`, `cx.theme().radius` / `radius_lg`, `gap_2`, `Separator`). The
> dock wears the previous skin again, ported from the `signed` reference
> implementation onto the kit dock engine (`workspace::dock`: pill tabs, the
> 44px bar that doubles as the title bar, window controls, collapse buttons,
> chromeless sidebar group). The avatar with the pixel fallback is back
> (`ui::Avatar`): user image when set, deterministic pixel art from the
> profile/group seed otherwise, also as the image-load fallback. Desktop
> traffic lights recenter for the 44px bar (`workspace::TAB_BAR_HEIGHT`).
> Validation: `cargo check`, `cargo clippy` and `cargo fmt` are clean
> workspace-wide and the desktop binary builds; the wasm32 check fails
> identically before and after (pre-existing `state` → `gpui_tokio` and
> `rustls` blockers, verified at HEAD).
Plan to move coop's custom UI elements onto [GPUI-Kit](https://gpui-kit.com)
(`gpui-kit` 0.7.1), delete the custom theme implementation (`crates/theme`),
@@ -219,14 +227,19 @@ site is mapped.
`colors.rs`, `palette.rs`, `brand.rs`, `appearance.rs`, `paint.rs`,
`color.rs`, `syntax.rs`, `notification.rs`, `scrollbar_mode.rs`,
`platform_kind.rs`;
move to `crates/ui` unchanged: `typography.rs` (`TextStyle`/`Typeset`,
~200 call sites — retained deliberately as coop's type ladder),
`layout.rs` (spacing constants, radius accessors), `geometry.rs`
(`Edges`/`Side`/`AxisExt`), and the three `CLIENT_SIDE_DECORATION_*`
constants;
- end state: `crates/ui` is utilities-only — `motion.rs`, `typography.rs`,
`layout.rs`, `geometry.rs`, the CSD constants and the combined asset
source. Every element module is deleted; nothing custom is maintained;
- the `typography`, `layout`, `styled` and `motion` modules were NOT kept:
a follow-up revision removed them and adapted every call site to gpui-kit
tokens — the `TextStyle` ladder collapsed to `text_xs`/`text_sm` (plus
`font_semibold`/`font_medium`), the radius ladder to `cx.theme().radius`
/ `cx.theme().radius_lg`, `SPACE` to `gap_2`, `divider` to the kit
`Separator`, and motion was deleted unused. `geometry.rs` and the CSD
constants never carried over (the framework Root draws the window
border); `TAB_BAR_HEIGHT` (44px, the dock tab bar that doubles as the
title bar) now lives in `workspace::dock` and `SIDEBAR_WIDTH` in
`workspace`;
- end state: `crates/ui` is `avatar.rs` + `window_drag.rs` only — see the
status note at the top of this file for the restored dock skin and
avatar (the two deliberate exceptions to "no custom elements");
- `AppearanceMode` (System/Light/Dark, serde-persisted) moves into
`crates/settings`.
- The gpui-base projection coop did in `sync_base` is now the framework's job