Skip to content

feat(theme): follow system dark appearance - #937

Merged
xiaocheny214 merged 17 commits into
1024XEngineer:mainfrom
huyanxius:feat/system-dark-mode
Sep 8, 2026
Merged

feat(theme): follow system dark appearance#937
xiaocheny214 merged 17 commits into
1024XEngineer:mainfrom
huyanxius:feat/system-dark-mode

Conversation

@huyanxius

@huyanxius huyanxius commented Sep 8, 2026

Copy link
Copy Markdown
Collaborator

全局自动跟随系统深色外观,使用中性炭灰,覆盖首页、登录面板、产品界面与 SVG 标志。

Why

原有界面只有浅色配色。

Changes

  • 独立深色令牌覆盖,系统切换同步更新绘制组件。
  • 补齐固定界面颜色与 SVG,图片和视频不加主题滤镜。

Verification

构建通过;相关 8 个测试文件 120 项通过,拆分后主题 3 项复验通过;已进行本地浏览器 UI 验收。

Closes #936

Shared surfaces had only light colors.

Pair semantic colors and initialize native color scheme.

Light and dark appearances switch without reloading.
Authentication controls retained fixed light colors.

Pair panel colors and define matching button foregrounds.

Forms remain legible in both appearances.
Page chrome retained fixed backgrounds and text.

Pair shell and session notice colors.

Global chrome follows the selected appearance.
Canvas uniforms do not inherit CSS colors.

Subscribe to appearance changes and choose explicit palettes.

Decorative canvases follow the surrounding interface.
Landing surfaces used fixed light backgrounds.

Pair interface colors while preserving media assets.

Marketing pages remain readable in both appearances.
Preview chrome retained fixed light colors.

Pair stage grid and export control colors.

Preview media retains its original pixels.
Third-party canvas chrome used independent defaults.

Use application tokens for attribution and selection.

Canvas controls follow the surrounding interface.
Export controls used light stock colors.

Add scoped dark variants backed by semantic tokens.

Export feedback remains legible in dark appearance.
History rows used light stock colors.

Add scoped dark variants.

History text follows system appearance.
The missing page retained light stock colors.

Use dark variants for its border and secondary text.

The fallback page matches the global appearance.
The vector mark stayed dark on dark backgrounds.

Change the silhouette fill with a media query.

The mark stays visible while its mask stays intact.
Canvas appearance needs first-render and live-change coverage.

Exercise dark startup, system changes, CSS overrides and fallback.

Regression checks cover appearance synchronization.
@vercel

vercel Bot commented Sep 8, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
windup Ready Ready Preview Sep 8, 2026 12:13pm UTC

@codecov

codecov Bot commented Sep 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

Impacted file tree graph

@@           Coverage Diff           @@
##             main     #937   +/-   ##
=======================================
  Coverage   91.27%   91.27%           
=======================================
  Files         193      193           
  Lines       13204    13204           
=======================================
  Hits        12052    12052           
  Misses       1152     1152           
Flag Coverage Δ
backend 91.27% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Dark adaptation and light palette changes need independent reviews.

Isolate dark overrides from the light palette.

The dark theme can merge independently of the light palette.
Dark adaptation and light palette changes need independent reviews.

Use semantic colors for shared chrome.

The dark theme can merge independently of the light palette.
…change

Dark adaptation and light palette changes need independent reviews.

Keep existing light backgrounds in the dark theme change.

The dark theme can merge independently of the light palette.
Dark adaptation and light palette changes need independent reviews.

Keep existing light preview colors.

The dark theme can merge independently of the light palette.
Dark adaptation and light palette changes need independent reviews.

Preserve the light vector fill.

The dark theme can merge independently of the light palette.
@huyanxius huyanxius changed the title feat(theme): add neutral light and dark system themes feat(theme): follow system dark appearance Sep 8, 2026
@huyanxius
huyanxius marked this pull request as ready for review September 8, 2026 12:13

@fennoai fennoai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Reviewed the complete fixed diff for the system dark appearance change, including theme token overrides, Tailwind dark variants, the SVG mark, auth/export/history surfaces, React Flow styling, and the canvas/shader color-scheme synchronization. No actionable correctness, compatibility, or regression issues found.

Verification: npm run typecheck, npm run lint, npm test (90 files / 1,390 tests), and npm run build all pass.

@xiaocheny214
xiaocheny214 merged commit 2761dde into 1024XEngineer:main Sep 8, 2026
14 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.

[Feature]: Follow system appearance with a dark theme

2 participants