Skip to content

fix screen white flashing on ui load#8077

Closed
light-and-ray wants to merge 4 commits intoComfy-Org:mainfrom
light-and-ray:fix_screen_flash_on_load
Closed

fix screen white flashing on ui load#8077
light-and-ray wants to merge 4 commits intoComfy-Org:mainfrom
light-and-ray:fix_screen_flash_on_load

Conversation

@light-and-ray
Copy link
Contributor

@light-and-ray light-and-ray commented Jan 15, 2026

Summary

This PR removes white bind flash on UI startup, caused by 3 different reasons:

  1. (only in PWA) - splashing screen background. I changed it from white to gray
  2. When index.css is not loaded yet. I added <style>body { background: #52525b;}</style> in the html head
  3. When .dark-theme class is not attached yet, and --bg-color variable has light theme value. I made 2 different variables --bg-color-light and --bg-color-dark, and use them in pair with prefers-color-scheme on stage where we can't rely on .dark-theme class

I also removed "theme_color" from pwa manifest. I have not seen it used on 3 different devices where I tested, but if it is used somewhere, the default system color will be definitely more preferred then #000

I have made background: var(--bg-img, var(--bg-color-dark)); but not background: var(--bg-color-dark) var(--bg-img, transparent); because the second variant doesn't work - the background is completly white if --bg-img is not defined. transparent as a fallback doesn't help

┆Issue is synchronized with this Notion page by Unito

@light-and-ray light-and-ray requested a review from a team as a code owner January 15, 2026 16:28
@dosubot dosubot bot added the size:S This PR changes 10-29 lines, ignoring generated files. label Jan 15, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 15, 2026

📝 Walkthrough

Walkthrough

Added dark-mode CSS in the HTML head to set a dark background under prefers-color-scheme, updated manifest background color and removed theme_color, and simplified body background handling in the design-system CSS to prefer the background image over the color.

Changes

Cohort / File(s) Change Summary
HTML & Manifest
index.html, manifest.json
index.html: added an inline CSS block applying a dark-theme background when prefers-color-scheme: dark. manifest.json: updated background_color to #52525b and removed theme_color.
Design-system CSS
packages/design-system/src/css/style.css
Modified body background rule to use --bg-img alone (removed composite with --bg-color), simplifying background layering and fallbacks.

Possibly related PRs

Suggested reviewers

  • DrJKL
  • viva-jinyi
  • christian-byrne

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@socket-security
Copy link

socket-security bot commented Jan 15, 2026

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedfirebase@​11.6.09910010099100

View full report

@github-actions
Copy link

github-actions bot commented Jan 15, 2026

🎭 Playwright Tests: ❌ Failed

Results: 499 passed, 3 failed, 1 flaky, 8 skipped (Total: 511)

❌ Failed Tests

📊 Browser Reports
  • chromium: View Report (✅ 489 / ❌ 2 / ⚠️ 1 / ⏭️ 8)
  • chromium-2x: View Report (✅ 2 / ❌ 0 / ⚠️ 0 / ⏭️ 0)
  • chromium-0.5x: View Report (✅ 1 / ❌ 0 / ⚠️ 0 / ⏭️ 0)
  • mobile-chrome: View Report (✅ 7 / ❌ 1 / ⚠️ 0 / ⏭️ 0)

@github-actions
Copy link

github-actions bot commented Jan 15, 2026

🎨 Storybook Build Status

loading Build is starting...

⏰ Started at: 01/20/2026, 05:44:03 AM UTC

🚀 Building Storybook

  • 📦 Installing dependencies...
  • 🔧 Building Storybook components...
  • 🌐 Preparing deployment to Cloudflare Pages...

⏱️ Please wait while the Storybook build is in progress...

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@packages/design-system/src/css/style.css`:
- Around line 589-592: Add a `.dark-theme body` CSS rule so the app-level theme
overrides the OS media query: when `.dark-theme` is present set `background` to
use `var(--bg-img, var(--bg-color-dark))` (mirroring the value inside `@media
(prefers-color-scheme: dark)`), ensuring the body background follows the app's
`.dark-theme` setting rather than only the `prefers-color-scheme` user agent
preference.
📜 Review details

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 23694f3 and 25ef16e.

📒 Files selected for processing (3)
  • index.html
  • manifest.json
  • packages/design-system/src/css/style.css
🧰 Additional context used
🧠 Learnings (4)
📓 Common learnings
Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-10T00:24:17.695Z
Learning: Applies to src/**/*.vue : Use Tailwind utility classes instead of `dark:` variant - use semantic values from `style.css` theme (e.g., `bg-node-component-surface`)
📚 Learning: 2026-01-10T00:24:17.695Z
Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: AGENTS.md:0-0
Timestamp: 2026-01-10T00:24:17.695Z
Learning: Applies to src/**/*.vue : Use Tailwind utility classes instead of `dark:` variant - use semantic values from `style.css` theme (e.g., `bg-node-component-surface`)

Applied to files:

  • packages/design-system/src/css/style.css
📚 Learning: 2025-11-24T19:47:45.616Z
Learnt from: CR
Repo: Comfy-Org/ComfyUI_frontend PR: 0
File: src/components/CLAUDE.md:0-0
Timestamp: 2025-11-24T19:47:45.616Z
Learning: Applies to src/components/**/*.{vue,css} : Use the correct tokens from style.css in the design system package

Applied to files:

  • packages/design-system/src/css/style.css
📚 Learning: 2025-12-09T03:50:03.127Z
Learnt from: christian-byrne
Repo: Comfy-Org/ComfyUI_frontend PR: 6300
File: src/platform/updates/components/WhatsNewPopup.vue:5-13
Timestamp: 2025-12-09T03:50:03.127Z
Learning: In the Comfy-Org/ComfyUI_frontend repository, when avoiding PrimeVue components, prefer using the repo's common button components from src/components/button/ (IconButton.vue, TextButton.vue, IconTextButton.vue) rather than plain HTML buttons. These components wrap PrimeVue with custom design system styling.

Applied to files:

  • index.html
🔇 Additional comments (4)
manifest.json (1)

14-14: LGTM!

The background_color change from #ffffff to #52525b (zinc-600) addresses the PWA splash screen white flash. This neutral gray serves as a good compromise during the brief splash screen display before the actual theme loads.

index.html (1)

6-6: LGTM!

The inline style ensures the background color is applied immediately, before any external CSS loads. Using #52525b (zinc-600) as a neutral gray prevents the jarring white flash while being visually acceptable for both light and dark theme users during the brief loading period.

packages/design-system/src/css/style.css (2)

143-145: LGTM!

Good extraction of the explicit light and dark background color values into separate variables. This allows direct reference to each variant without depending on the cascade from .dark-theme.


294-294: LGTM!

Using the new --bg-color-dark variable maintains consistency with the design system while preserving backward compatibility for components that reference --bg-color.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

@light-and-ray

This comment was marked as resolved.

@light-and-ray
Copy link
Contributor Author

Never mind, it's me accidentaly broken .text-white style

@light-and-ray
Copy link
Contributor Author

light-and-ray commented Jan 15, 2026

I've found that "Milk White" theme is broken, but it's broken even with no my patch

@christian-byrne
Copy link
Contributor

I've found that "Milk White" theme is broken, but it's broken even with no my patch

I think that is not a theme we support by default

@github-actions
Copy link

github-actions bot commented Jan 16, 2026

Bundle Size Report

Summary

  • Raw size: 21.3 MB baseline 21.3 MB — 🔴 +113 B
  • Gzip: 4.43 MB baseline 4.43 MB — 🟢 -6 B
  • Brotli: 3.28 MB baseline 3.28 MB — 🔴 +112 B
  • Bundles: 155 current • 155 baseline • 65 added / 65 removed

Category Glance
App Entry Points 🔴 +124 B (22.5 kB) · Data & Services 🟢 -11 B (3.04 MB) · Vendor & Third-Party ⚪ 0 B (10.4 MB) · Other ⚪ 0 B (6.25 MB) · Graph Workspace ⚪ 0 B (1.02 MB) · Panels & Settings ⚪ 0 B (430 kB) · + 5 more

Per-category breakdown
App Entry Points — 22.5 kB (baseline 22.4 kB) • 🔴 +124 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-BJF-rt4f.js (new) 22.5 kB 🔴 +22.5 kB 🔴 +6.77 kB 🔴 +5.95 kB
assets/index-ClIoWONr.js (removed) 22.4 kB 🟢 -22.4 kB 🟢 -6.74 kB 🟢 -5.93 kB

Status: 1 added / 1 removed

Graph Workspace — 1.02 MB (baseline 1.02 MB) • ⚪ 0 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-DX19GHRq.js (removed) 1.02 MB 🟢 -1.02 MB 🟢 -201 kB 🟢 -153 kB
assets/GraphView-DYNrx-F0.js (new) 1.02 MB 🔴 +1.02 MB 🔴 +201 kB 🔴 +153 kB

Status: 1 added / 1 removed

Views & Navigation — 80.7 kB (baseline 80.7 kB) • ⚪ 0 B

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CloudSurveyView-Datel9jP.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -3.61 kB 🟢 -3.06 kB
assets/CloudSurveyView-GoQLCAku.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +3.61 kB 🔴 +3.06 kB
assets/CloudLoginView-BlYEUrNJ.js (removed) 11.8 kB 🟢 -11.8 kB 🟢 -3.1 kB 🟢 -2.72 kB
assets/CloudLoginView-DvBnlq75.js (new) 11.8 kB 🔴 +11.8 kB 🔴 +3.09 kB 🔴 +2.72 kB
assets/UserCheckView-BgTK5yKN.js (removed) 10.5 kB 🟢 -10.5 kB 🟢 -2.46 kB 🟢 -2.13 kB
assets/UserCheckView-BgwYMf4U.js (new) 10.5 kB 🔴 +10.5 kB 🔴 +2.46 kB 🔴 +2.13 kB
assets/CloudLayoutView-BjwFKPHZ.js (removed) 8.54 kB 🟢 -8.54 kB 🟢 -2.25 kB 🟢 -1.97 kB
assets/CloudLayoutView-To7tZmCq.js (new) 8.54 kB 🔴 +8.54 kB 🔴 +2.25 kB 🔴 +1.97 kB
assets/CloudSignupView-DGMC1cUY.js (removed) 8.18 kB 🟢 -8.18 kB 🟢 -2.33 kB 🟢 -2.03 kB
assets/CloudSignupView-DohuNum4.js (new) 8.18 kB 🔴 +8.18 kB 🔴 +2.33 kB 🔴 +2.02 kB
assets/CloudForgotPasswordView-D_3gNhat.js (new) 6.26 kB 🔴 +6.26 kB 🔴 +1.93 kB 🔴 +1.69 kB
assets/CloudForgotPasswordView-DvyMktDH.js (removed) 6.26 kB 🟢 -6.26 kB 🟢 -1.93 kB 🟢 -1.68 kB
assets/UserSelectView--z1pMhvM.js (new) 5.28 kB 🔴 +5.28 kB 🔴 +1.76 kB 🔴 +1.57 kB
assets/UserSelectView-Ba2jNYDU.js (removed) 5.28 kB 🟢 -5.28 kB 🟢 -1.76 kB 🟢 -1.57 kB
assets/CloudSubscriptionRedirectView-Ch_p3kwV.js (removed) 5.27 kB 🟢 -5.27 kB 🟢 -1.73 kB 🟢 -1.54 kB
assets/CloudSubscriptionRedirectView-Cw2l1VwM.js (new) 5.27 kB 🔴 +5.27 kB 🔴 +1.73 kB 🔴 +1.54 kB
assets/CloudAuthTimeoutView-CiXMADHS.js (new) 5.24 kB 🔴 +5.24 kB 🔴 +1.72 kB 🔴 +1.48 kB
assets/CloudAuthTimeoutView-DpioZYiG.js (removed) 5.24 kB 🟢 -5.24 kB 🟢 -1.72 kB 🟢 -1.48 kB
assets/CloudSorryContactSupportView-QtHXqQri.js 1.97 kB 1.97 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/layout-Bf1taiS0.js 500 B 500 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 9 added / 9 removed

Panels & Settings — 430 kB (baseline 430 kB) • ⚪ 0 B

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/LegacyCreditsPanel-BfEhe8nG.js (new) 23.8 kB 🔴 +23.8 kB 🔴 +5.95 kB 🔴 +5.24 kB
assets/LegacyCreditsPanel-fSCmxtXj.js (removed) 23.8 kB 🟢 -23.8 kB 🟢 -5.95 kB 🟢 -5.23 kB
assets/SubscriptionPanel-CGvA5lq7.js (removed) 20.6 kB 🟢 -20.6 kB 🟢 -5 kB 🟢 -4.38 kB
assets/SubscriptionPanel-CRGtbNLc.js (new) 20.6 kB 🔴 +20.6 kB 🔴 +4.99 kB 🔴 +4.38 kB
assets/KeybindingPanel-BG_TWlhO.js (removed) 14.2 kB 🟢 -14.2 kB 🟢 -3.74 kB 🟢 -3.31 kB
assets/KeybindingPanel-Z6w-2lhU.js (new) 14.2 kB 🔴 +14.2 kB 🔴 +3.75 kB 🔴 +3.32 kB
assets/AboutPanel-07k2QnTj.js (new) 10.8 kB 🔴 +10.8 kB 🔴 +2.68 kB 🔴 +2.44 kB
assets/AboutPanel-DtINB2-L.js (removed) 10.8 kB 🟢 -10.8 kB 🟢 -2.69 kB 🟢 -2.43 kB
assets/ExtensionPanel-BaUSyRJZ.js (new) 10.2 kB 🔴 +10.2 kB 🔴 +2.71 kB 🔴 +2.4 kB
assets/ExtensionPanel-DG8t_wal.js (removed) 10.2 kB 🟢 -10.2 kB 🟢 -2.71 kB 🟢 -2.4 kB
assets/ServerConfigPanel-Dl-BYJtT.js (removed) 7.23 kB 🟢 -7.23 kB 🟢 -2.17 kB 🟢 -1.94 kB
assets/ServerConfigPanel-SJQYXziL.js (new) 7.23 kB 🔴 +7.23 kB 🔴 +2.17 kB 🔴 +1.93 kB
assets/UserPanel-BtpFS2jQ.js (new) 6.58 kB 🔴 +6.58 kB 🔴 +1.91 kB 🔴 +1.67 kB
assets/UserPanel-m36VW4ej.js (removed) 6.58 kB 🟢 -6.58 kB 🟢 -1.91 kB 🟢 -1.67 kB
assets/cloudRemoteConfig-39-8Wl4f.js (new) 1.82 kB 🔴 +1.82 kB 🔴 +770 B 🔴 +654 B
assets/cloudRemoteConfig-Dbh02Jcm.js (removed) 1.82 kB 🟢 -1.82 kB 🟢 -769 B 🟢 -656 B
assets/remoteConfig-B0rgMcLx.js 1.07 kB 1.07 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/remoteConfig-CW7J8vSK.js 188 B 188 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-6DVADt2n.js 34.3 kB 34.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-B0j03ezr.js 38.3 kB 38.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BHe-AJJN.js 29.6 kB 29.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BT2lfy0S.js 29.5 kB 29.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-Cp0lF2Mp.js 31.2 kB 31.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CwdesOpm.js 32.1 kB 32.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-D3SeHgho.js 28.6 kB 28.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-D42m_JEJ.js 25.9 kB 25.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-FF_vLB0C.js 25.2 kB 25.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-reUMVWRn.js 30.4 kB 30.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-s7kHNBdQ.js 28.9 kB 28.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 8 added / 8 removed

User & Accounts — 3.94 kB (baseline 3.94 kB) • ⚪ 0 B

Authentication, profile, and account management bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/auth-CaBTqJto.js (new) 3.54 kB 🔴 +3.54 kB 🔴 +1.23 kB 🔴 +1.06 kB
assets/auth-CBwHAJ5U.js (removed) 3.54 kB 🟢 -3.54 kB 🟢 -1.24 kB 🟢 -1.08 kB
assets/firebaseAuthStore-BX7zwNB0.js (new) 217 B 🔴 +217 B 🔴 +138 B 🔴 +119 B
assets/firebaseAuthStore-D-EebVL7.js (removed) 217 B 🟢 -217 B 🟢 -138 B 🟢 -122 B
assets/auth-CvPU01WY.js (new) 178 B 🔴 +178 B 🔴 +141 B 🔴 +131 B
assets/auth-Ka6Iu1bV.js (removed) 178 B 🟢 -178 B 🟢 -142 B 🟢 -143 B

Status: 3 added / 3 removed

Editors & Dialogs — 2.8 kB (baseline 2.8 kB) • ⚪ 0 B

Modals, dialogs, drawers, and in-app editors

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useSubscriptionDialog-BvOKCrLi.js (new) 2.62 kB 🔴 +2.62 kB 🔴 +1.23 kB 🔴 +1.09 kB
assets/useSubscriptionDialog-D3v76K0U.js (removed) 2.62 kB 🟢 -2.62 kB 🟢 -1.24 kB 🟢 -1.09 kB
assets/useSubscriptionDialog-BUCMRs91.js (new) 179 B 🔴 +179 B 🔴 +110 B 🔴 +98 B
assets/useSubscriptionDialog-RvWnZ75q.js (removed) 179 B 🟢 -179 B 🟢 -110 B 🟢 -95 B

Status: 2 added / 2 removed

UI Components — 32.8 kB (baseline 32.8 kB) • ⚪ 0 B

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/SubscribeButton-B3bpukh-.js (removed) 12.5 kB 🟢 -12.5 kB 🟢 -3 kB 🟢 -2.7 kB
assets/SubscribeButton-BOc8npgR.js (new) 12.5 kB 🔴 +12.5 kB 🔴 +3 kB 🔴 +2.69 kB
assets/ComfyQueueButton-BP5JLz9P.js (new) 9.52 kB 🔴 +9.52 kB 🔴 +2.69 kB 🔴 +2.42 kB
assets/ComfyQueueButton-CSJ-Kz-7.js (removed) 9.52 kB 🟢 -9.52 kB 🟢 -2.69 kB 🟢 -2.41 kB
assets/CloudBadge-CEzeqobt.js (removed) 1.85 kB 🟢 -1.85 kB 🟢 -729 B 🟢 -646 B
assets/CloudBadge-FAiqHeOS.js (new) 1.85 kB 🔴 +1.85 kB 🔴 +728 B 🔴 +647 B
assets/cloudFeedbackTopbarButton-GN2Urr8Y.js (new) 866 B 🔴 +866 B 🔴 +525 B 🔴 +444 B
assets/cloudFeedbackTopbarButton-Y8Rk-crm.js (removed) 866 B 🟢 -866 B 🟢 -524 B 🟢 -438 B
assets/ComfyQueueButton-C1cHc9p2.js (removed) 181 B 🟢 -181 B 🟢 -118 B 🟢 -120 B
assets/ComfyQueueButton-DBvgqvRy.js (new) 181 B 🔴 +181 B 🔴 +118 B 🔴 +108 B
assets/Button-BFptkwN0.js 3.75 kB 3.75 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserAvatar-CkcXZWJQ.js 1.73 kB 1.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetButton-_hGIrcI2.js 2.41 kB 2.41 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 5 added / 5 removed

Data & Services — 3.04 MB (baseline 3.04 MB) • 🟢 -11 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/dialogService-CEzbYeif.js (removed) 1.87 MB 🟢 -1.87 MB 🟢 -397 kB 🟢 -304 kB
assets/dialogService-DJx3t0Wo.js (new) 1.87 MB 🔴 +1.87 MB 🔴 +397 kB 🔴 +304 kB
assets/api--8uhkDQN.js (removed) 1.15 MB 🟢 -1.15 MB 🟢 -239 kB 🟢 -185 kB
assets/api-CNl_jxlm.js (new) 1.15 MB 🔴 +1.15 MB 🔴 +239 kB 🔴 +186 kB
assets/releaseStore-C4CCc4ZD.js (new) 8.91 kB 🔴 +8.91 kB 🔴 +2.41 kB 🔴 +2.13 kB
assets/releaseStore-CfkrRjTp.js (removed) 8.91 kB 🟢 -8.91 kB 🟢 -2.41 kB 🟢 -2.13 kB
assets/keybindingService-CfcSeuv9.js (removed) 6.78 kB 🟢 -6.78 kB 🟢 -1.74 kB 🟢 -1.51 kB
assets/keybindingService-DCkzkfjk.js (new) 6.78 kB 🔴 +6.78 kB 🔴 +1.74 kB 🔴 +1.52 kB
assets/userStore-BCEuz1Sx.js (removed) 2.16 kB 🟢 -2.16 kB 🟢 -814 B 🟢 -724 B
assets/userStore-DpvOvXzD.js (new) 2.16 kB 🔴 +2.16 kB 🔴 +810 B 🔴 +724 B
assets/audioService-CcbWb1Nq.js (removed) 2.03 kB 🟢 -2.03 kB 🟢 -932 B 🟢 -821 B
assets/audioService-D1xwp1J7.js (new) 2.03 kB 🔴 +2.03 kB 🔴 +931 B 🔴 +822 B
assets/releaseStore-0VIpEt2w.js (removed) 140 B 🟢 -140 B 🟢 -106 B 🟢 -106 B
assets/releaseStore-CQZup_Xv.js (new) 140 B 🔴 +140 B 🔴 +106 B 🔴 +105 B
assets/serverConfigStore-CDOQj4Ec.js 2.64 kB 2.64 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 7 added / 7 removed

Utilities & Hooks — 18.7 kB (baseline 18.7 kB) • ⚪ 0 B

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/useErrorHandling-CiN0jmUW.js (removed) 5 kB 🟢 -5 kB 🟢 -1.47 kB 🟢 -1.28 kB
assets/useErrorHandling-DTYqIxZm.js (new) 5 kB 🔴 +5 kB 🔴 +1.47 kB 🔴 +1.28 kB
assets/subscriptionCheckoutUtil-CJEE5QYg.js (removed) 1.98 kB 🟢 -1.98 kB 🟢 -862 B 🟢 -749 B
assets/subscriptionCheckoutUtil-CkoGHk0i.js (new) 1.98 kB 🔴 +1.98 kB 🔴 +859 B 🔴 +754 B
assets/audioUtils-DoVWGR7B.js (new) 1.24 kB 🔴 +1.24 kB 🔴 +619 B 🔴 +519 B
assets/audioUtils-T5kpRwN5.js (removed) 1.24 kB 🟢 -1.24 kB 🟢 -620 B 🟢 -524 B
assets/useCurrentUser-BtscdR1n.js (removed) 145 B 🟢 -145 B 🟢 -114 B 🟢 -102 B
assets/useCurrentUser-CoDRji3d.js (new) 145 B 🔴 +145 B 🔴 +114 B 🔴 +103 B
assets/_plugin-vue_export-helper-xVPqUhAl.js 467 B 467 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/colorUtil-De0C_hc6.js 7.2 kB 7.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/markdownRendererUtil-0PqWmn-8.js 1.78 kB 1.78 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeFilterUtil-BUCOyXf2.js 421 B 421 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/tailwindUtil-Chuu3TbR.js 487 B 487 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 4 added / 4 removed

Vendor & Third-Party — 10.4 MB (baseline 10.4 MB) • ⚪ 0 B

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-chart-Dr8GmMlH.js 408 kB 408 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-other-DqqTGPL6.js 3.92 MB 3.92 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-EBXVECvF.js 3.04 MB 3.04 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-reka-ui-ViWrLgbb.js 172 kB 172 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-Dqb1VEds.js 1.83 MB 1.83 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-BxNhpyUI.js 650 kB 650 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-VHAq3Lid.js 13.6 kB 13.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-CArXWFIl.js 398 kB 398 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Other — 6.25 MB (baseline 6.25 MB) • ⚪ 0 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/core-Bh1nbYYe.js (new) 177 kB 🔴 +177 kB 🔴 +42.8 kB 🔴 +35.8 kB
assets/core-CaDoB35F.js (removed) 177 kB 🟢 -177 kB 🟢 -42.8 kB 🟢 -35.7 kB
assets/Load3D-B1ZvF9eA.js (new) 55.7 kB 🔴 +55.7 kB 🔴 +9.18 kB 🔴 +7.92 kB
assets/Load3D-BewWt72v.js (removed) 55.7 kB 🟢 -55.7 kB 🟢 -9.18 kB 🟢 -7.91 kB
assets/WidgetSelect-C7IQksyJ.js (removed) 50.5 kB 🟢 -50.5 kB 🟢 -11.1 kB 🟢 -9.68 kB
assets/WidgetSelect-DA7H75W7.js (new) 50.5 kB 🔴 +50.5 kB 🔴 +11.1 kB 🔴 +9.69 kB
assets/SubscriptionRequiredDialogContent-ByJ5_2iK.js (new) 28.7 kB 🔴 +28.7 kB 🔴 +6.78 kB 🔴 +5.9 kB
assets/SubscriptionRequiredDialogContent-C4pA6WLW.js (removed) 28.7 kB 🟢 -28.7 kB 🟢 -6.78 kB 🟢 -5.91 kB
assets/WidgetRecordAudio-DnSflblL.js (new) 18.2 kB 🔴 +18.2 kB 🔴 +4.96 kB 🔴 +4.42 kB
assets/WidgetRecordAudio-HG3vnHSQ.js (removed) 18.2 kB 🟢 -18.2 kB 🟢 -4.97 kB 🟢 -4.43 kB
assets/WidgetInputNumber-BKOm6HFk.js (new) 18.2 kB 🔴 +18.2 kB 🔴 +4.49 kB 🔴 +4.01 kB
assets/WidgetInputNumber-DCS6z9Vp.js (removed) 18.2 kB 🟢 -18.2 kB 🟢 -4.49 kB 🟢 -4.01 kB
assets/WidgetImageCrop-BbFJdhwm.js (removed) 17.1 kB 🟢 -17.1 kB 🟢 -4.14 kB 🟢 -3.62 kB
assets/WidgetImageCrop-Cis-Cufc.js (new) 17.1 kB 🔴 +17.1 kB 🔴 +4.14 kB 🔴 +3.62 kB
assets/PanelTemplate-Ddl2aMhi.js (new) 16.2 kB 🔴 +16.2 kB 🔴 +5.45 kB 🔴 +4.8 kB
assets/PanelTemplate-l9SMS8Gm.js (removed) 16.2 kB 🟢 -16.2 kB 🟢 -5.45 kB 🟢 -4.8 kB
assets/AudioPreviewPlayer-4AgM2qQn.js (removed) 12.7 kB 🟢 -12.7 kB 🟢 -3.48 kB 🟢 -3.12 kB
assets/AudioPreviewPlayer-CFEFuyYt.js (new) 12.7 kB 🔴 +12.7 kB 🔴 +3.48 kB 🔴 +3.12 kB
assets/WidgetWithControl-C-ZBFKUz.js (new) 8.02 kB 🔴 +8.02 kB 🔴 +2.65 kB 🔴 +2.38 kB
assets/WidgetWithControl-XUVzqlyC.js (removed) 8.02 kB 🟢 -8.02 kB 🟢 -2.65 kB 🟢 -2.38 kB
assets/ValueControlPopover-qTYr-xo3.js (new) 4.86 kB 🔴 +4.86 kB 🔴 +1.55 kB 🔴 +1.38 kB
assets/ValueControlPopover-rO-dcvUv.js (removed) 4.86 kB 🟢 -4.86 kB 🟢 -1.55 kB 🟢 -1.37 kB
assets/WidgetAudioUI-0Xf5eyhs.js (new) 3.22 kB 🔴 +3.22 kB 🔴 +1.19 kB 🔴 +1.1 kB
assets/WidgetAudioUI-1qLq9hs6.js (removed) 3.22 kB 🟢 -3.22 kB 🟢 -1.19 kB 🟢 -1.09 kB
assets/GlobalToast-DFuNh7cd.js (removed) 3.05 kB 🟢 -3.05 kB 🟢 -1.1 kB 🟢 -940 B
assets/GlobalToast-G6-iMIQr.js (new) 3.05 kB 🔴 +3.05 kB 🔴 +1.1 kB 🔴 +937 B
assets/SubscribeToRun-BvNxQvLi.js (new) 2.96 kB 🔴 +2.96 kB 🔴 +1.15 kB 🔴 +1.01 kB
assets/SubscribeToRun-CBC6dpBH.js (removed) 2.96 kB 🟢 -2.96 kB 🟢 -1.15 kB 🟢 -1.02 kB
assets/cloudSessionCookie-B20qF5MG.js (removed) 2.9 kB 🟢 -2.9 kB 🟢 -920 B 🟢 -794 B
assets/cloudSessionCookie-BIO6ic7y.js (new) 2.9 kB 🔴 +2.9 kB 🔴 +917 B 🔴 +795 B
assets/BaseViewTemplate-DvV0Ic8F.js (removed) 2.42 kB 🟢 -2.42 kB 🟢 -1.04 kB 🟢 -946 B
assets/BaseViewTemplate-qF7YDEyj.js (new) 2.42 kB 🔴 +2.42 kB 🔴 +1.05 kB 🔴 +921 B
assets/CloudRunButtonWrapper-BJbAbwKf.js (new) 1.79 kB 🔴 +1.79 kB 🔴 +645 B 🔴 +568 B
assets/CloudRunButtonWrapper-BMr61qQT.js (removed) 1.79 kB 🟢 -1.79 kB 🟢 -643 B 🟢 -595 B
assets/cloudBadges-32T__F85.js (removed) 1.08 kB 🟢 -1.08 kB 🟢 -537 B 🟢 -478 B
assets/cloudBadges-D5ppIJcR.js (new) 1.08 kB 🔴 +1.08 kB 🔴 +534 B 🔴 +481 B
assets/graphHasMissingNodes-BMTG4hJm.js (new) 1.06 kB 🔴 +1.06 kB 🔴 +460 B 🔴 +422 B
assets/graphHasMissingNodes-CNm0DyBF.js (removed) 1.06 kB 🟢 -1.06 kB 🟢 -460 B 🟢 -425 B
assets/cloudSubscription-BdDGamDq.js (new) 976 B 🔴 +976 B 🔴 +458 B 🔴 +399 B
assets/cloudSubscription-DsXtNEwu.js (removed) 976 B 🟢 -976 B 🟢 -455 B 🟢 -393 B
assets/AudioPreviewPlayer-D-uYIT-x.js (new) 191 B 🔴 +191 B 🔴 +120 B 🔴 +109 B
assets/AudioPreviewPlayer-FjjNMkYg.js (removed) 191 B 🟢 -191 B 🟢 -120 B 🟢 -109 B
assets/WidgetInputNumber-B-X4ZEKH.js (new) 186 B 🔴 +186 B 🔴 +119 B 🔴 +112 B
assets/WidgetInputNumber-BeePlr-Q.js (removed) 186 B 🟢 -186 B 🟢 -119 B 🟢 -123 B
assets/WidgetLegacy-CtLX1i1n.js (removed) 164 B 🟢 -164 B 🟢 -125 B 🟢 -110 B
assets/WidgetLegacy-zGipCnQp.js (new) 164 B 🔴 +164 B 🔴 +125 B 🔴 +104 B
assets/WidgetSelect-B_BIH3B6.js (removed) 161 B 🟢 -161 B 🟢 -113 B 🟢 -106 B
assets/WidgetSelect-BSf0rOtP.js (new) 161 B 🔴 +161 B 🔴 +113 B 🔴 +109 B
assets/Load3D-Bl5ZAnnE.js (new) 131 B 🔴 +131 B 🔴 +107 B 🔴 +105 B
assets/Load3D-BoY7EWO7.js (removed) 131 B 🟢 -131 B 🟢 -107 B 🟢 -118 B
assets/auto-Bv9cmrEd.js 1.73 kB 1.73 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-6dIwsSNi.js 17.2 kB 17.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BahwM9ZP.js 19.3 kB 19.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BoJZgy7S.js 17 kB 17 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BQtdp20P.js 20.6 kB 20.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CEMgeOuO.js 18.5 kB 18.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CnxND6sZ.js 18 kB 18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-coXkrooi.js 18 kB 18 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CZcHDaAg.js 18.8 kB 18.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DDPGTXy9.js 17.9 kB 17.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DsGC6118.js 17.8 kB 17.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-yZ2AjT4s.js 19.3 kB 19.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/LazyImage-B2qJgYQV.js 14.1 kB 14.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BH76kbq7.js 104 kB 104 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-C-gNarDo.js 105 kB 105 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CA0dzqpC.js 124 kB 124 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CbaIObx3.js 121 kB 121 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CKH_pYcz.js 161 kB 161 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CotnVZA-.js 134 kB 134 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-D-IO_jVl.js 119 kB 119 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DLii8dI6.js 117 kB 117 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-i8aQGyai.js 145 kB 145 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Uwzs8jut.js 141 kB 141 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-vWcCEZeZ.js 117 kB 117 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Media3DTop-Bj6UL3Mt.js 2.38 kB 2.38 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaAudioTop-D8pQnmES.js 2 kB 2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaImageTop-D0aiBzXG.js 2.34 kB 2.34 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaVideoTop-BCNtw1s2.js 2.84 kB 2.84 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/mixpanel.module-FcNs04XW.js 143 B 143 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-6qSb98D5.js 329 kB 329 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-B4G_Dl5E.js 361 kB 361 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BhmSU7DZ.js 371 kB 371 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Bxky0ZDY.js 332 kB 332 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CCSKuw9P.js 400 kB 400 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Cd4f2ERd.js 358 kB 358 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CLdE8MPH.js 355 kB 355 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CqDWLi76.js 399 kB 399 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CqyprhWq.js 433 kB 433 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-D4Fo85EU.js 358 kB 358 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DF-ErmAt.js 351 kB 351 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/OBJLoader2WorkerModule-DTMpvldF.js 109 kB 109 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/preservedQueryNamespaces-BsMrb3S_.js 3.23 kB 3.23 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/previousFullPath-DZ1Jt5wB.js 838 B 838 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/rolldown-runtime-CqTjxoQm.js 1.53 kB 1.53 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/Slider-BIIoltvA.js 4.21 kB 4.21 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widget-Dneex3J5.js 518 B 518 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-CUDq_bgN.js 4.71 kB 4.71 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetBoundingBox-T8Ljl7oe.js 186 B 186 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetChart-1bZGfe6O.js 2.79 kB 2.79 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetColorPicker-CE6qc5iJ.js 3.71 kB 3.71 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetGalleria-Bjqrk0m2.js 4.57 kB 4.57 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetImageCompare-CrN6SGuP.js 3.79 kB 3.79 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetInputText-CtnWVTX2.js 2.58 kB 2.58 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetLayoutField-zNq5xTi-.js 2.61 kB 2.61 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetMarkdown-D4Dx6Rvq.js 3.22 kB 3.22 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetPropFilter-DfR_ZXyS.js 1.31 kB 1.31 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetTextarea-CDG12iu3.js 3.52 kB 3.52 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetToggleSwitch-VNa5cXfN.js 3.08 kB 3.08 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 25 added / 25 removed

@DrJKL DrJKL requested a review from comfydesigner January 19, 2026 07:54
@DrJKL
Copy link
Contributor

DrJKL commented Jan 19, 2026

Hey @light-and-ray,

I like the goal here, as a dark mode user myself.
Could you see if just adding a prefers-color-scheme: dark check in index.html without changing any of the design tokens also works?
Also, probably a :where(body) to avoid specificity conflicts with the main stylesheet when it loads in.

@light-and-ray
Copy link
Contributor Author

light-and-ray commented Jan 19, 2026

Could you see if just adding a prefers-color-scheme: dark check in index.html without changing any of the design tokens also works?

No, i have debugged, the main reason is that .dark-mode class is not added to the body, but the styles have been loaded

Also, probably a :where(body) to avoid specificity conflicts with the main stylesheet when it loads in.

I don't understand what you mean

The patch isn't perfect because the absence of .dark-mode implies a light theme, and it's bot possible to distinguish light theme from not initialized dark in css currently. I think the proper solution is to add .light-theme class for a light theme, and treat the absence of both classes as not yet initialized theme. But my patch still works with all combinations of system themes and comfyui themes with no glitches (according to my testing)

Another solution can be to add a new class "theme-initialazed" to the body after applying or not applying .dark-mode class

@light-and-ray
Copy link
Contributor Author

You can debug it yourself, pressing F5 and then F8 keys quickly, inisde debugging window, "sources" tab, to stop js execution right after ui reload

@DrJKL
Copy link
Contributor

DrJKL commented Jan 20, 2026

:where() is useful for adding 0 specificity rules that are intended to be overridden later, in this case by the body rule towards the end of style.css

@coderabbitai coderabbitai bot requested a review from DrJKL January 20, 2026 05:44
@light-and-ray
Copy link
Contributor Author

:where() is useful for adding 0 specificity rules that are intended to be overridden later, in this case by the body rule towards the end of style.css

Done

@DrJKL
Copy link
Contributor

DrJKL commented Jan 24, 2026

Hey @light-and-ray, tried my hand at a more minimal solution. Does it solve the problem for you?

@light-and-ray
Copy link
Contributor Author

@DrJKL why did you merge without me testing?

You have removed pwa manifest background color - it's now white. It should be replaced to gray, not removed. Also background image now doesn't appear

@dosubot dosubot bot added size:XS This PR changes 0-9 lines, ignoring generated files. size:S This PR changes 10-29 lines, ignoring generated files. and removed size:S This PR changes 10-29 lines, ignoring generated files. size:XS This PR changes 0-9 lines, ignoring generated files. labels Jan 24, 2026
@light-and-ray
Copy link
Contributor Author

Here I've added your idea, but pwa background color and background image are working

@light-and-ray
Copy link
Contributor Author

No, now it doesn't work

@light-and-ray light-and-ray force-pushed the fix_screen_flash_on_load branch from 09fa4a8 to 74a94e4 Compare January 24, 2026 07:04
@light-and-ray
Copy link
Contributor Author

So your variant doesn't work, and if I just add background: var(--bg-img) the flashing appears again

@DrJKL
Copy link
Contributor

DrJKL commented Jan 24, 2026

So your variant doesn't work, and if I just add background: var(--bg-img) the flashing appears again

#8292

@DrJKL
Copy link
Contributor

DrJKL commented Jan 24, 2026

I never use it as a PWA, so this is a good exercise for me 😁

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:S This PR changes 10-29 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants