mirror of
https://github.com/go-gitea/gitea.git
synced 2026-03-09 12:46:42 -05:00
Automatic theme switching based on 'prefers-color-scheme' media query #5172
Closed
opened 2025-11-02 06:16:48 -06:00 by GiteaMirror
·
14 comments
No Branch/Tag Specified
main
release/v1.25
release/v1.24
release/v1.23
release/v1.22
release/v1.21
release/v1.20
release/v1.19
release/v1.18
release/v1.17
release/v1.16
release/v1.15
release/v1.14
release/v1.13
release/v1.12
release/v1.11
release/v1.10
release/v1.9
release/v1.8
v1.25.3
v1.25.2
v1.25.1
v1.25.0
v1.24.7
v1.25.0-rc0
v1.26.0-dev
v1.24.6
v1.24.5
v1.24.4
v1.24.3
v1.24.2
v1.24.1
v1.24.0
v1.23.8
v1.24.0-rc0
v1.25.0-dev
v1.23.7
v1.23.6
v1.23.5
v1.23.4
v1.23.3
v1.23.2
v1.23.1
v1.23.0
v1.23.0-rc0
v1.24.0-dev
v1.22.6
v1.22.5
v1.22.4
v1.22.3
v1.22.2
v1.22.1
v1.22.0
v1.23.0-dev
v1.22.0-rc1
v1.21.11
v1.22.0-rc0
v1.21.10
v1.21.9
v1.21.8
v1.21.7
v1.21.6
v1.21.5
v1.21.4
v1.21.3
v1.21.2
v1.20.6
v1.21.1
v1.21.0
v1.21.0-rc2
v1.21.0-rc1
v1.20.5
v1.22.0-dev
v1.21.0-rc0
v1.20.4
v1.20.3
v1.20.2
v1.20.1
v1.20.0
v1.19.4
v1.21.0-dev
v1.20.0-rc2
v1.20.0-rc1
v1.20.0-rc0
v1.19.3
v1.19.2
v1.19.1
v1.19.0
v1.19.0-rc1
v1.20.0-dev
v1.19.0-rc0
v1.18.5
v1.18.4
v1.18.3
v1.18.2
v1.18.1
v1.18.0
v1.17.4
v1.18.0-rc1
v1.19.0-dev
v1.18.0-rc0
v1.17.3
v1.17.2
v1.17.1
v1.17.0
v1.17.0-rc2
v1.16.9
v1.17.0-rc1
v1.18.0-dev
v1.16.8
v1.16.7
v1.16.6
v1.16.5
v1.16.4
v1.16.3
v1.16.2
v1.16.1
v1.16.0
v1.15.11
v1.17.0-dev
v1.16.0-rc1
v1.15.10
v1.15.9
v1.15.8
v1.15.7
v1.15.6
v1.15.5
v1.15.4
v1.15.3
v1.15.2
v1.15.1
v1.14.7
v1.15.0
v1.15.0-rc3
v1.14.6
v1.15.0-rc2
v1.14.5
v1.16.0-dev
v1.15.0-rc1
v1.14.4
v1.14.3
v1.14.2
v1.14.1
v1.14.0
v1.13.7
v1.14.0-rc2
v1.13.6
v1.13.5
v1.14.0-rc1
v1.15.0-dev
v1.13.4
v1.13.3
v1.13.2
v1.13.1
v1.13.0
v1.12.6
v1.13.0-rc2
v1.14.0-dev
v1.13.0-rc1
v1.12.5
v1.12.4
v1.12.3
v1.12.2
v1.12.1
v1.11.8
v1.12.0
v1.11.7
v1.12.0-rc2
v1.11.6
v1.12.0-rc1
v1.13.0-dev
v1.11.5
v1.11.4
v1.11.3
v1.10.6
v1.12.0-dev
v1.11.2
v1.10.5
v1.11.1
v1.10.4
v1.11.0
v1.11.0-rc2
v1.10.3
v1.11.0-rc1
v1.10.2
v1.10.1
v1.10.0
v1.9.6
v1.9.5
v1.10.0-rc2
v1.11.0-dev
v1.10.0-rc1
v1.9.4
v1.9.3
v1.9.2
v1.9.1
v1.9.0
v1.9.0-rc2
v1.10.0-dev
v1.9.0-rc1
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.8.0-rc3
v1.7.6
v1.8.0-rc2
v1.7.5
v1.8.0-rc1
v1.9.0-dev
v1.7.4
v1.7.3
v1.7.2
v1.7.1
v1.7.0
v1.7.0-rc3
v1.6.4
v1.7.0-rc2
v1.6.3
v1.7.0-rc1
v1.7.0-dev
v1.6.2
v1.6.1
v1.6.0
v1.6.0-rc2
v1.5.3
v1.6.0-rc1
v1.6.0-dev
v1.5.2
v1.5.1
v1.5.0
v1.5.0-rc2
v1.5.0-rc1
v1.5.0-dev
v1.4.3
v1.4.2
v1.4.1
v1.4.0
v1.4.0-rc3
v1.4.0-rc2
v1.3.3
v1.4.0-rc1
v1.3.2
v1.3.1
v1.3.0
v1.3.0-rc2
v1.3.0-rc1
v1.2.3
v1.2.2
v1.2.1
v1.2.0
v1.2.0-rc3
v1.2.0-rc2
v1.1.4
v1.2.0-rc1
v1.1.3
v1.1.2
v1.1.1
v1.1.0
v1.0.2
v1.0.1
v1.0.0
v0.9.99
Labels
Clear labels
$20
$250
$50
$500
backport/done
💎 Bounty
docs-update-needed
good first issue
hacktoberfest
issue/bounty
issue/confirmed
issue/critical
issue/duplicate
issue/needs-feedback
issue/not-a-bug
issue/regression
issue/stale
issue/workaround
lgtm/need 2
modifies/api
modifies/translation
outdated/backport/v1.18
outdated/theme/markdown
outdated/theme/timetracker
performance/bigrepo
performance/cpu
performance/memory
performance/speed
pr/breaking
proposal/accepted
proposal/rejected
pr/wip
pull-request
reviewed/wontfix
💰 Rewarded
skip-changelog
status/blocked
topic/accessibility
topic/api
topic/authentication
topic/build
topic/code-linting
topic/commit-signing
topic/content-rendering
topic/deployment
topic/distribution
topic/federation
topic/gitea-actions
topic/issues
topic/lfs
topic/mobile
topic/moderation
topic/packages
topic/pr
topic/projects
topic/repo
topic/repo-migration
topic/security
topic/theme
topic/ui
topic/ui-interaction
topic/ux
topic/webhooks
topic/wiki
type/bug
type/deprecation
type/docs
type/enhancement
type/feature
type/miscellaneous
type/proposal
type/question
type/refactoring
type/summary
type/testing
type/upstream
Mirrored from GitHub Pull Request
No Label
issue/duplicate
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/gitea#5172
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @septatrix on GitHub (Apr 2, 2020).
Description
Gitea currently includes a dark and a light theme, however there is no way to automatically switch between these themes based on the
(prefers-color-scheme: dark)media query.I would like to propose the addition of an additional automatic theme which would switch between these two themes based on said media query similar to what StackOverflow implemented this week and maybe event set this automatic theme as the default mode.
@silverwind commented on GitHub (Apr 2, 2020):
It can be done, but first we need to rework theming which currently is a whitelist-based config option that only allows configured themes to be selected. I want to change it to a blacklist or remove the config option completely. Then we can introduce new themes like this "auto" knowing that users will actually be able to select them.
Also, I'm not sure
arc-greenis a worthy default theme, it has quality issues. I plan to work on that as well.@septatrix commented on GitHub (Apr 2, 2020):
Is there already an issue tracking the theming overhaul?
Maybe we could group them into dark and light and let users choose a default for each group. Then "auto" could switch between these like VS Code does on Windows and MacOS (I think)
@silverwind commented on GitHub (Apr 3, 2020):
No issue I think, but my plan is at least 3 themes:
The steps are:
THEMESconfig option (the whitelist)@guillep2k commented on GitHub (Apr 4, 2020):
@silverwind I'm not well versed in modern web UI tools, so forgive me if I speak nonsense, but is it possible to structure our
.lessfiles so that font and color rules can be automatically extracted to a.cssfile the users can override without requiring node/webpack? Of course I say color but I actually mean things that are not structural, likely to customize in a theme (fonts, etc.). The rest of the rules (general sizes and behaviors) would remain in a "first-level" CSS.I think it would be cool to have some
make theme-templatecommand as part of our builds, and distribute thecssfor users to edit as they please. The most common theme customization is just the color palette, that's why my first thought went there.@silverwind commented on GitHub (Apr 10, 2020):
@guillep2k possible, yes, but hard.
I think the best option for user-based customization will be CSS Variables which users then could override in their own CSS file without the need that we introduce any additional build steps. Supporting this means dropping IE11 and requires a big refactor and some discipline on our side to not use bare color/font values, but I imagine linting may be able to help there.
@silverwind commented on GitHub (Apr 10, 2020):
Still there's the issue with third-party CSS (fomantic) not using said variables, so it's not a complete solution. It may be possible to extract certain rules by using a CSS parser and parsing all files in
public.@guillep2k commented on GitHub (Apr 10, 2020):
@silverwind I really like the CSS variables alternative. That would be a good enough reason to leave IE11 behind, I think; we didn't remove support from it until now because it didn't impose an actual limitation I believe, but if users will get a sizeable benefit from moving on, I would back the move.
Does fomantic force many colors in its rules? Can they be overriden without resorting to
!important? (i.e. a rule with the same weight should just override the previous one).We could do that with the color theme first. And later on we could include fonts and relative sizes.
@silverwind commented on GitHub (Apr 10, 2020):
I think Fomantic uses Less variables but those are dropped during the Less -> CSS conversion. Maybe there is a Less compiler out there that can produce CSS variables from Less variables, that would be the only option I see besides a custom theme generator script.
Manually overriding any sizable CSS is a no-go. I think to properly override fomantic alone would require something like 200kB of CSS which will change with every update.
@guillep2k commented on GitHub (Apr 11, 2020):
I think I follow. Maybe this answer from SO is relevant?
@silverwind commented on GitHub (Apr 11, 2020):
That's the manual way, I want it happen automatically during Less compilation. I found this, maybe worth trying but we'd probably need to hack up fomantic's build process to integrate that. Also, that plugin seems to have issues with media queries, so will likely not work.
@pat-s commented on GitHub (Apr 19, 2021):
Given that GitHub has automatic theme switching now and I really like it, I am curious what the plans / status is on this one? 🙂
@silverwind
@pat-s commented on GitHub (Apr 19, 2021):
Possible duplicate: https://github.com/go-gitea/gitea/issues/8183
@techknowlogick commented on GitHub (Apr 19, 2021):
Yup, closing as dupe per above.
@septatrix commented on GitHub (Apr 20, 2021):
Alas I would have preferred closing the other one as there is a lot more discussion under this one already