-
Notifications
You must be signed in to change notification settings - Fork 391
no flashing when reloading in light or dark mode #12173
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
aff3fec to
7e06952
Compare
Contributor
Author
|
I could not find any solution for NoJS except reversing the order of stylesheets, so I'm going with that solution. It may cause style bleed if the light stylesheet does not replace everything, but only for NoJS folks. Seems like the least bad compromise.
To be merged after #12277 to share tests. |
7e06952 to
05ee72c
Compare
05ee72c to
3c31fb5
Compare
a filter to detect e.g. renderings: [light, dark] retain any cell content before the first cell-output-display then any div.cell-output-display are given the rendering names formats choose what to do with these in the filter currently HTML uses light and dark and classes them .light-content and .dark-content and the other formats just use light rendering applies body.quarto-light or body.quarto-dark based on default theme for a decent NoJS experience
fixes #1325 introduces a new script before the body which runs immediately, enabling or disabling dark mode both stylesheets are loaded, one is disabled in JS the default stylesheet is loaded second, in case JS is disabled
3c31fb5 to
05c243d
Compare
This was referenced Apr 17, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
fixes #1325
Introduces a new script before the body which runs immediately, enabling or disabling dark mode.
Also, both light and dark stylesheets are loaded at once, and then one immediately disabled, instead of dark starting as
rel="prefetch", which was one of the causes of flashing.Submitting as a draft for three reasons:
Footnotes
Worst case, it does work to load the light stylesheet after the dark stylesheet, with a few fixes to the JS that currently depend on stylesheet order. ↩