Skip to content

feat(windows): polish IDEA-inspired New UI - #204

Merged
1lck merged 23 commits into
1lck:preview/0.3.0from
yangboxuan726:feat/windows-idea-ui-polish
Aug 21, 2026
Merged

feat(windows): polish IDEA-inspired New UI#204
1lck merged 23 commits into
1lck:preview/0.3.0from
yangboxuan726:feat/windows-idea-ui-polish

Conversation

@yangboxuan726

Copy link
Copy Markdown
Contributor

Summary

  • align the Windows React/Tauri shell with IntelliJ IDEA New UI density, palette, tabs, menus, workbench framing, tool rails, and status chrome
  • make IDEA Icons the default file theme and route application controls through vendored IntelliJ SVG assets with existing fallbacks
  • add bounded Java declaration and Maven source-root/package semantics for visible Project rows and open editor tabs without a full-tree index or sidecar
  • keep the real Extensions entry on the right rail, hide the final empty Terminal pane, and preserve existing project/tab/resize behavior
  • document the Windows-only scope, architecture guardrails, and verification matrix

Scope

  • Windows-only presentation and row-model work; macOS, shared contracts, Rust Core, and platform dispatch are unchanged
  • no new runtime dependency, Java project model, persistent semantic index, or speculative tool-window action
  • vendored IntelliJ assets retain their upstream file headers and use the existing icon generation/theme paths

Verification

  • bun test — 228 passed, 0 failed
  • bun run typecheck
  • bun run lint — 0 errors (existing warnings remain)
  • ./scripts/verify-windows-boundaries.ps1
  • ./scripts/build-windows.ps1 -Configuration Release
  • cargo test --manifest-path windows/tauri/src-tauri/Cargo.toml — 69 passed, 0 failed
  • manual Windows Release smoke with hm-dianping in zh-CN Dark, plus Light/Dracula theme checks and focused Project/editor/right-rail states

Map lithe-dark/lithe-light colors to the IntelliJ New UI dark/light
theme values (Gray/Blue ramp), invert the surface/background layering
so panels sit above the editor area, switch list selection and hover
toward the IDEA blue ramp, and reduce the global radius from 10px to
8px. Values sourced from intellij-community expUI theme JSONs.
Copy 91 Apache-2.0 SVGs (52 mapped icons, light/dark pairs, embedded
copyright comments preserved) from the intellij-community platform
icon set. The mapping list and deterministic generator with --check
validation live under scripts/; asset URLs are emitted to
src/ui/icons/idea-assets.generated.ts.
createIconComponent resolves mapped display names to dual light/dark
asset instances; CSS toggles the active variant via data-theme-type so
theme switches need no rerender. Unmapped exports keep the lucide
fallback, IconProps stay unchanged, and weight/strokeWidth are no-ops
for fixed-color assets.
…ntory

Map 43 additional statically used icons to IntelliJ platform assets
(188 SVGs total now vendored) and register every remaining used icon
explicitly as a lucide fallback with a note, so the mapping file covers
the full 194-icon usage inventory.
Asset icons previously rendered as a span+img pair, which button and
chrome CSS sizing selectors ([&_svg]:size-*) did not match, shrinking
sidebar and toolbar icons to the 13px font default. Render the dual
light/dark variants as <image> children of a real svg root instead, so
asset icons keep the exact lucide sizing contract.
Selected editor and terminal tabs now carry a 4px accent underline on
the top edge over the editor background instead of a block highlight,
unselected labels render at reduced alpha, and the tab strip shares the
editor background with a 1px rule below it, matching the IntelliJ New
UI editor tab treatment.
Selected activity rail buttons and sidebar list rows now use the blue
selection fill token instead of a neutral gray block, and pane headers
tighten from 44px to 36px, matching IntelliJ tool window chrome.
Tree rows render at the 13px chrome size like the IntelliJ project
view, with the chrome radius on selection highlights.
Menu and context items render at the 13px chrome size with tighter
row padding, and tooltips drop to the 12px caption size.
Copy 77 Apache-2.0 SVGs (40 definitions, light/dark pairs) from the
intellij-community platform file type set into a new bundled idea-icons
theme directory, with a mapping file and deterministic generator that
emits the extension.json manifest and validates via --check.
Register the new theme in the bundled extension manifests and icon
asset glob so it appears alongside lithe-icons in appearance settings.
@yangboxuan726
yangboxuan726 marked this pull request as ready for review August 20, 2026 12:27
@yangboxuan726
yangboxuan726 requested a review from 1lck as a code owner August 20, 2026 12:27

@1lck 1lck left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

审查发现 1 个与有界 Java 语义识别要求冲突的资源边界问题,建议见 inline comment。

Comment thread windows/tauri/src/extensions/icon-themes/hooks/use-java-file-icon-kind.ts Outdated
@1lck
1lck merged commit 34b45f8 into 1lck:preview/0.3.0 Aug 21, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants