mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-31 16:33:34 +08:00
The provider list behind the 860px "add provider" dialog was legible straight through the panel — URLs and model names readable in the form's empty space. `.glass-panel` states a translucent fill and a blur in one rule, and reads as frosted only when both land. The blur is the fragile half: where `backdrop-filter` does not run there is no failure for CSS to report. The declaration is skipped, the 0.84 fill is left standing on its own, and 16% of the page comes through unscrambled. A reduced repro pins it — with the blur live nothing inside the panel is readable; with it disabled the result matches the report exactly. Dialogs leave the coupling entirely. `--color-surface-dialog` is opaque by construction (no alpha channel to walk back one decimal at a time), mapping to `--cc-bg` on light themes and `--cc-s1` on the ink ones — ink runs its background at the bottom of the ramp, so a lifted surface has to climb it rather than reuse it. `.dialog-panel` carries fill, hairline and shadow and never touches `backdrop-filter`. Two things follow from an opaque panel. The scrim is now the only thing separating the dialog from the page, so `Modal` moves to the heavier `--color-modal-scrim` — the token that already existed for exactly this and had only `GlobalSearchModal` as a user, while `Modal` sat on the non-modal one. And the `:focus-within` ring goes: a dialog holds focus essentially always, so it burned permanently rather than signalling anything. The small floating layers keep the glass, but no longer depend on the blur for legibility: the fill goes to 0.92/0.93. The `@supports` fallback added alongside it is worth less than it looks — it catches engines that do not implement `backdrop-filter`, not the failure seen here, where the query returns true and the blur still never runs. Raising the density is the half that actually covers the reported case. Why the blur is inert on this machine is not established. Ruled out on the code side: GPU switches, containment on `html`/`body`/`#root`, and CSS `zoom` (UI scaling goes through Electron's `setZoomFactor`). The fix does not depend on that answer. Verified across warm-classic, dark and ink-blue: computed fills come back as `rgb(...)` with no alpha, `backdrop-filter: none`, and both ink themes render the panel lighter than the page behind it.
Claude Code Haha Desktop
基于 Tauri 2 + React 的桌面客户端。
开发
bun install
bun run tauri dev
构建
# macOS (Apple Silicon)
./scripts/build-macos-arm64.sh
# Windows (x64, MSI only)
.\scripts\build-windows-x64.ps1
构建产物位于 build-artifacts/ 目录,文件名会显式包含平台、架构和包类型。
常见问题
macOS 提示"已损坏,无法打开"
xattr -cr /Applications/Claude\ Code\ Haha.app