Proposal: Modernize the UI with a Fluent 2 / Windows 11 design
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 18/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- react, typescript
Research direction
Start in src/vscode-windhawk-ui, where app.tsx holds the existing ConfigProvider and where the FluentProvider would sit beside it, then read AppHeader.tsx and ModCard.tsx, the Home screen pieces the proposal uses for a proof of concept. Done would need maintainer agreement on the approach and migration steps first, then a Home-screen conversion with before and after screenshots. The large compiled app.css is the eventual cleanup target.
Written by the indexing model from the issue text.
Description
Background
The panel UI (Home, Explore, Settings, About) is built on Ant Design v4 with a dark theme
that's compiled in statically. It works, but it has drifted from how Windows 11 looks today:
the geometry, the Mica surfaces, the typography and the controls, and there's no light mode
at all. The goal here is to bring it in line with Fluent 2, which is the design language
WinUI 3 apps use.
Why Fluent UI React, not WinUI 3
The UI isn't native. It's a React app rendered inside a VS Code webview (src/vscode-windhawk-ui),
so XAML/WinUI 3 doesn't apply. The web-side equivalent is Fluent UI React v9
(@fluentui/react-components), Microsoft's implementation of Fluent 2. Same design language,
fits the current React 18 / TypeScript setup, no change to the hosting model.
Plan
This would go in steps instead of one large rewrite, with both libraries running at the same
time until the migration is finished:
- Add a FluentProvider in app.tsx next to the existing ConfigProvider. antd keeps rendering
as before. i18n and RTL stay untouched. - Convert the Home screen first as a proof of concept: the navigation in AppHeader.tsx and
the cards in ModCard.tsx. Before/after screenshots attached. - Move the remaining screens after that, one per PR (Explore, Settings, About, the mod
details views). - Once nothing imports antd anymore, remove it. That also cuts down the large compiled
app.css.
System light/dark would be straightforward to wire up along the way if that's wanted, and it
would match how native Win11 apps behave.
Open questions
Before putting real work into PRs:
- Is this something you'd consider merging at all?
- Any constraints I should know about (bundle size, older Windows versions, design
preferences you already have)? - Smaller PRs or larger ones?
I can start with the Home screen alone so the result is visible before deciding on the rest.
- Dominant language
- Rust
- Stars
- 9.3k
- Forks
- 246
- PR merge metrics
- No merged PRs in 30d
Getting set up
This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ramensoftware/windhawk
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
ramensoftware/windhawk#1156 · 2 comments ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
ramensoftware/windhawk#1089 · 3 comments ·
-
bug info-needed
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
ramensoftware/windhawk#1046 · 2 comments ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
ramensoftware/windhawk#382 · 3 comments · 2 reactions ·
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 55/100
ramensoftware/windhawk#1161 ·
All issues in ramensoftware/windhawk
Similar issues
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
status:untriaged
Difficulty 1/5 Under an hour Newbie friendliness 72/100
midnightntwrk/midnight-zk#592 ·
Maintainers usually reply within 3 days
-
QuartoHub: have the Document name before the filename in the browser tabPossibly taken @cscheid claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
quarto-dev/q2#930 · 1 comment ·
Maintainers usually reply within 1 day
-
muse P3
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
HerringtonDarkholme/hd-lang#923 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day