-
-
Notifications
You must be signed in to change notification settings - Fork 45
feat(UI): create night mode #942
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
base: main
Are you sure you want to change the base?
Conversation
Thanks for working on this @a2937! I am requesting @huyenltnguyen to review this. Please note that it could be a while because there is a lot happening this week. |
Hey I just remember this pull request also resolves this at least partially. #877 |
396401f
to
fa7fccb
Compare
Thanks for the PR. I have fixed the merge conflicts. I checked the CSS is off (both before & after fixing the conflicts) – could be dues changes we may have introduced - IDK. In any case please check. That said I think this PR is doing way too much than it should be? I do not think we should move to TypeScript yet. This is an old project (CJS) and relies on Node 18 but it a stable one. Moving to TS will need a lot of work on QA. I think you should consider simpler, smaller PRs. Pending what @ahmaxed wants to confirm:
|
Yeah I did get a little excited. I really need to remember my limits. I think it's more likely I managed to get a few things wrong when making the CSS. As for the three things. There is a menu. I needed a place for my button as it broke the look of the navbar. I then added a few other elements I could. While making the PR, I couldn't remember how we checked to see if the user is in Nightmode on the main site. The Typescript was added to make writing the Cypress tests a lot easier. I need the intellisense to make sure I was doing things right. I had not converted the main site files and had no plans to this PR. |
I apologize for over-complicating this PR and going outside of the scope. I will try my best to focus on one thing at a time in the future. |
I have removed Typescript from this PR. |
Hey no apologies needed. If anything we are incredibly grateful for your contributions :) We will review this soon. Thanks |
Thanks for the hard work and looking forward to seeing this live. This feature is coming along really well. Here is some feedback to incorporate into your solution:
|
@a2937, the theme switcher needs to save the user preferences in localStorage so it can be applied between pages. Also for the color to background paring, the highest contrast should be secondary font on secondary background similar to learn. Let us know if you need clarification with the specifications or need help with the implementation. |
Ahmad - I think this will cause a lot of unwanted confusion and support requests. We should just defer the night mode until we can tackle it from learn, and implement everything else in #942 (comment) - in other PRs if needed. |
What key do you recommend I use to store the value? |
The key could be called |
Thanks for the hard work here, @a2937. |
I have one in the works. freeCodeCamp/freeCodeCamp#56243 However, I am not sure if I used the Redux actions correctly. That was something in the curriculum I more or less struggled with the first time and it's been a while since I messed with it. |
This comment was marked as spam.
This comment was marked as spam.
I think I need to rebase it as there's a good bit of things that changed. |
Okay merge conflicts gone. I will check first thing in the morning to see if the issue has been resolved. |
I recommend you squash all the commits on the PR to make your life easier. |
ea4eac2
to
e4ef418
Compare
I decided it was in my best interest to rebase and to try to make this PR as minimal as possible. |
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
Hey @a2937 are you still working on this? I see these remaining issues: Also I do not like the night mode button to be so prominent taking up space on the nav. |
@a2937, thanks for the hard work here. The pr looks almost done. We do need a dropdown menu to include the forum link, curriculum link, and a theme toggle. Please make sure it looks similar to the /learn implementation. The donation button stays outside of the menu button for now. I would need to AB test it to make sure it is not affecting the conversions. All of the colors used in the UI (other than the top nav) should be flipped for the dark theme. There are some discrepancy still on the article page, author page, etc. Let me know if you need help or clarification. Also the cypress-localstorage-commands seems unnecessary. It could be replaced with something similar to the following: cy.window().then((win) => { |
Oh okay. Add in a drop down menu. Clean up the margins. I'll do my best to remove the cypress localstorage commands package. I was having trouble using normal methods. |
I might need a little more insight on what colors need changed. |
That should do it. |
Checklist:
Update index.md
)Closes #828
I am very very close to being finished. I just need to add a couple Cypress tests and to fix the spacing on the menu; provided the elements I added into the menu were acceptable.