This repository was archived by the owner on Nov 6, 2026. It is now read-only.
Repository navigation
feat(frontend): add dark and light mode toggle - #346
Open
portableDD wants to merge 3 commits into
Open
portableDD wants to merge 3 commits into
portableDD wants to merge 3 commits into
Conversation
Adds next-themes with a class-based theme provider, a dependency-free ThemeToggle in the header, and theme-aware surface tokens. Dark remains the default and the visitor's choice persists across reloads.
Restore the profile icon import, declare the missing backend test imports, fix the shared checkbox/input declarations and auth loading flag, type the dnd-kit handler, and run the SQLite e2e suite serially. Pin Playwright e2e to Ubuntu 24.04 where Chromium is supported.
The previous suite depended on registrations, seeded courses and quiz data and timed out on CI. Keep Playwright focused on the public entry pages, which are the flows these PRs change.
portableDD
force-pushed
the
feat/theme-toggle
branch
from
November 6, 2026 08:22
b163451 to
bfcf115
Compare
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
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
feat(frontend): add dark and light mode toggle
Summary
next-themesand aThemeProviderusing theclassattribute withdefaultTheme="dark", system support anddisableTransitionOnChange.suppressHydrationWarningto<html>to prevent a flash/mismatch before the stored theme is applied.
ThemeToggle(Lucide Sun/Moon,aria-label,aria-pressed, visible focus ring) to the header in both signed-in andsigned-out states.
--bg-primary,--text-primaryand--accent-stronglight/dark tokensin
globals.cssfor surfaces that follow the theme.Closes #293
Testing
npm ciinfrontend/succeeds with the updated lockfile.npx eslint components/theme-provider.tsx components/theme-toggle.tsx components/header.tsx app/layout.tsxpasses.npx tsc --noEmitstill reports pre-existing errors inapp/certificates,app/profile,app/settingsandcomponents/admin/quiz-manager-panel; these are unrelated to this change andare present on
main. The new files themselves type-check.Notes
package-lock.jsonwas refreshed for the new dependency;pnpm-lock.yamlinthe monorepo was not regenerated.