Light theme (3/3): add a light theme and a theme toggle
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 56/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- javascript, react, tailwindcss, vite
Research direction
Read the preceding “Light theme (2/3)” issue and inspect client/src/index.css, client/src/components/Layout/Sidebar.jsx, and client/index.html. Start by checking how the existing theme tokens are applied across pages, then test the toggle, saved preference, system setting, and initial page load. Done means every page, including Login and Signup, switches themes accessibly and loads with the selected theme without a flash.
Written by the indexing model from the issue text.
Description
Context
Last step: with every colour going through theme tokens, a light theme is now mostly a second set of values. Builds on "Light theme (2/3): use the theme tokens on the remaining pages".
Please start this after "Light theme (2/3)" is merged.
Files likely involved
client/src/index.css(light values for the tokens)client/src/components/Layout/Sidebar.jsx(the toggle)client/index.html(to avoid a flash of the wrong theme on load)
Acceptance criteria
- A light theme: the same tokens with light values, set when
<html data-theme="light">. Text keeps good contrast (WCAG AA, 4.5:1 for normal text). - A theme toggle in the sidebar (with an
aria-label, and working when the sidebar is collapsed) switches between dark and light. - The choice is saved in
localStorage. On a first visit, the theme follows the system setting (prefers-color-scheme). - No flash of the wrong theme when the page loads: a tiny inline script in
index.htmlsetsdata-themebefore React starts. - The Login and Signup pages follow the theme too.
How to test
- Toggle the theme: every page switches, including dialogs, toasts and the loading skeletons.
- Reload: the chosen theme stays, with no flash.
- Clear
localStorageand set your system to light mode: the app starts in light mode. - Check contrast with DevTools (select some text → Accessibility → Contrast).
New here? 👋 Comment below to ask to work on this issue, and wait to be assigned. Then follow CONTRIBUTING.md for setup and how to open a pull request. Questions are welcome in the comments or in Discussions.
- Dominant language
- JavaScript
- Stars
- 3
- Forks
- 2
- Avg merge
- 6h 50m
- Merged PRs (30d)
- 37
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from KEX-03/taskflow
-
Due dates (3/3): highlight overdue tasksPossibly taken @maansi1004 claimed this 1 day ago. Opendifficulty: medium enhancement frontend hacktoberfest help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
KEX-03/taskflow#70 · 3 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Keep keyboard focus inside open dialogsPossibly taken @100rabheimer claimed this 4 days ago. Opendifficulty: easy enhancement frontend good first issue hacktoberfest
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
KEX-03/taskflow#62 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Announce the character counters to screen readersPossibly taken @Anushka157-cha claimed this 1 day ago. Opendifficulty: easy enhancement frontend good first issue hacktoberfest
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
KEX-03/taskflow#61 · 4 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Show a "Page not found" page for unknown URLsPossibly taken @Salypse claimed this 4 days ago. Opendifficulty: easy enhancement frontend good first issue hacktoberfest
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
KEX-03/taskflow#59 · 8 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Limit task title and description length in the task formPossibly taken @anthony95macias claimed this 5 days ago. Opendifficulty: easy enhancement frontend good first issue hacktoberfest
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
KEX-03/taskflow#41 · 4 comments · 1 assignee ·
Maintainers usually reply within 1 day
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
type/bug
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
flarum/framework#5301 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
AOSSIE-Org/BabyNest#284 ·
Maintainers usually reply within 1 day
-
status:untriaged
Difficulty 1/5 Under an hour Newbie friendliness 86/100
midnightntwrk/servicedesk#275 ·
Maintainers usually reply within 1 day