946-Implement-the-new-settings-page-design #1003

Merged
a22erigr merged 10 commits from 946-Implement-the-new-settings-page-design into team_2_week_6 2026-05-19 13:23:32 +00:00
Collaborator

This PR is for issue #946, and includes the new Settings design, based on Figma design examples provided in issue #863.

What has been done

  • frontend/src/app/theme.css
    • Added light/dark mode fields that don't change with current style (only black/white)
    • Implemented themes to button primary and hover
    • Removed theme primary button colour
  • frontend/src/components/LanguageSelect/LanguageSelect.js
    • Removed header, it messed up design in settings page
  • frontend/src/components/Stylings/StyleSelect.module.css
    • Items now align centeraly
    • Buttons are a bit bigger
  • frontend/src/locales/en.json and frontend/src/locales/sv.json
    • Added sub-header and date localization strings
  • frontend/src/pages/settings/
    • Created new folder for settings page
  • frontend/src/pages/settings/Settings.js
    • Redesigned page according to design in issue #863
    • A whole lot changed, but most important is that background and most text now only changes with dark/light mode, only small details change with style
    • Added material design icons
  • frontend/src/pages/settings/Settings.module.css
    • Removed animation when hovering sections
    • Increased width
    • Added a lot of styling to specific tags
  • frontend/src/pages/settings/materialDesign/index.js
    • Exports all material design icons as react components, allowing us to change icon colour
  • frontend/src/pages/settings/materialDesign/
    • All new svg's
    • I have changed .xml "fill" attribute to currentColor in all svg's

Thoughts

  • I have not changed the base style button colours, these still look very bad.
  • I have not changed any theme colours. Most of the style colours provided by HiS look pretty bad and we should look into changing them.
  • We should probably look into updating the theme.css file, as we no longer want to change background colour/text, only details, when we change styles
  • The different options are not final, purely based on the options that were included in the design example
  • The icons chosen could probably be improved at some point, not all settings had clear-cut icons avaliable
This PR is for issue #946, and includes the new Settings design, based on Figma design examples provided in issue #863. ## What has been done + frontend/src/app/theme.css + Added light/dark mode fields that don't change with current style (only black/white) + Implemented themes to button primary and hover + Removed theme primary button colour + frontend/src/components/LanguageSelect/LanguageSelect.js + Removed header, it messed up design in settings page + frontend/src/components/Stylings/StyleSelect.module.css + Items now align centeraly + Buttons are a bit bigger + frontend/src/locales/en.json and frontend/src/locales/sv.json + Added sub-header and date localization strings + frontend/src/pages/settings/ + Created new folder for settings page + frontend/src/pages/settings/Settings.js + Redesigned page according to design in issue #863 + A whole lot changed, but most important is that background and most text now only changes with dark/light mode, only small details change with style + Added material design icons + frontend/src/pages/settings/Settings.module.css + Removed animation when hovering sections + Increased width + Added a lot of styling to specific tags + frontend/src/pages/settings/materialDesign/index.js + Exports all material design icons as react components, allowing us to change icon colour + frontend/src/pages/settings/materialDesign/ + All new svg's + I have changed .xml "fill" attribute to currentColor in all svg's ## Thoughts + I have not changed the base style button colours, these still look very bad. + I have not changed any theme colours. Most of the style colours provided by HiS look pretty bad and we should look into changing them. + We should probably look into updating the theme.css file, as we no longer want to change background colour/text, only details, when we change styles + The different options are not final, purely based on the options that were included in the design example + The icons chosen could probably be improved at some point, not all settings had clear-cut icons avaliable
a22erigr 2026-05-19 09:59:17 +00:00
Collaborator

Review on #946

Whats done

Reviewed and tested the new settings page design implementation.

Tested on Windows using Chrome

  • App starts

    • The app compiled and started with warnings.
    • Tested the Settings page on desktop view.
    • Tested dark mode and light mode.
    • Tested language switching between English and Swedish.
    • Tested responsive/mobile view using Chrome DevTools.
    • Checked that icons, buttons, sections and layout render correctly.
    • No major layout issues were found.

Inspected following files

  • frontend/src/app/theme.css

    • CSS standard

      • CSS variables are used properly and the new light/dark mode fields are clear.
      • Formatting and spacing mostly follow the CSS standard.
    • Naming convention

      • Naming is mostly clear and follows project style.
    • General code quality

      • The green primary button color feels quite strong in dark mode, which aligns with the author's own notes regarding future theme/color improvements.
  • frontend/src/components/LanguageSelect/LanguageSelect.js

    • Naming convention

      • File and component naming follow the React convention.
    • General code quality

      • There is an ESLint warning because translate is assigned but never used.
  • frontend/src/components/Stylings/StyleSelect.module.css

    • CSS standard

      • CSS mostly follows the project standard.
      • Formatting and spacing look okay.
      • Some rule sets are missing descriptive comments according to the CSS convention.
    • General code quality

      • Button size and alignment changes work well with the new settings design.
  • frontend/src/locales/en.json

    • Printed text uses and follows localization standards

      • New settings texts are added correctly.
  • frontend/src/locales/sv.json

    • Printed text uses and follows localization standards

      • Swedish texts are added correctly overall.
  • frontend/src/pages/settings/Settings.js

    • Indentation/code styling

      • Indentation looks okay and follows the current style.
    • Naming convention

      • Component and folder naming follow the convention.
    • Printed text uses and follows localization standards

      • Most visible text uses localization, but some hardcoded strings still exist, for example Seasonal themes and Dark mode.
    • Comments

      • Comments are short and understandable.
    • General code quality

      • LoginLogout is imported but not used, which creates an ESLint warning.
  • frontend/src/pages/settings/Settings.module.css

    • CSS standard

      • CSS mostly follows the project standard with kebab-case class names and bracket notation usage in JSX.
      • Formatting and spacing look mostly okay.
      • Some rule sets are missing descriptive comments according to the CSS convention.
    • General code quality

      • Mobile layout works well overall.
  • frontend/src/pages/settings/materialDesign/index.js

    • Naming convention

      • Exports are clear and use PascalCase for React components.
    • General code quality

      • Icon exports are simple and easy to understand.
  • package.json

    • Dependencies

      • No new unapproved dependencies were noticed during the review.

What needs to be done

  • frontend/src/components/LanguageSelect/LanguageSelect.js

    • Remove the unused translate variable to fix the ESLint warning.
  • frontend/src/pages/settings/Settings.js

    • Remove the unused LoginLogout import.
    • Move hardcoded visible text such as Seasonal themes and Dark mode to localization files.
  • Footer/UI text

    • Some footer/placeholders are still shown in English when Swedish is selected and should be localized if they are part of this scope.

Conclusion

  • The implementation works well overall and the Settings page is stable on desktop, mobile view, light mode, dark mode and language switching.
  • The PR is close to ready and overall follows the project's coding and CSS conventions well. Small cleanup is recommended before merge because of unused imports, hardcoded text and minor localization inconsistencies.
# Review on #946 ## Whats done Reviewed and tested the new settings page design implementation. ### Tested on Windows using Chrome * App starts * The app compiled and started with warnings. * Tested the Settings page on desktop view. * Tested dark mode and light mode. * Tested language switching between English and Swedish. * Tested responsive/mobile view using Chrome DevTools. * Checked that icons, buttons, sections and layout render correctly. * No major layout issues were found. ### Inspected following files * frontend/src/app/theme.css * CSS standard * CSS variables are used properly and the new light/dark mode fields are clear. * Formatting and spacing mostly follow the CSS standard. * Naming convention * Naming is mostly clear and follows project style. * General code quality * The green primary button color feels quite strong in dark mode, which aligns with the author's own notes regarding future theme/color improvements. * frontend/src/components/LanguageSelect/LanguageSelect.js * Naming convention * File and component naming follow the React convention. * General code quality * There is an ESLint warning because `translate` is assigned but never used. * frontend/src/components/Stylings/StyleSelect.module.css * CSS standard * CSS mostly follows the project standard. * Formatting and spacing look okay. * Some rule sets are missing descriptive comments according to the CSS convention. * General code quality * Button size and alignment changes work well with the new settings design. * frontend/src/locales/en.json * Printed text uses and follows localization standards * New settings texts are added correctly. * frontend/src/locales/sv.json * Printed text uses and follows localization standards * Swedish texts are added correctly overall. * frontend/src/pages/settings/Settings.js * Indentation/code styling * Indentation looks okay and follows the current style. * Naming convention * Component and folder naming follow the convention. * Printed text uses and follows localization standards * Most visible text uses localization, but some hardcoded strings still exist, for example `Seasonal themes` and `Dark mode`. * Comments * Comments are short and understandable. * General code quality * `LoginLogout` is imported but not used, which creates an ESLint warning. * frontend/src/pages/settings/Settings.module.css * CSS standard * CSS mostly follows the project standard with kebab-case class names and bracket notation usage in JSX. * Formatting and spacing look mostly okay. * Some rule sets are missing descriptive comments according to the CSS convention. * General code quality * Mobile layout works well overall. * frontend/src/pages/settings/materialDesign/index.js * Naming convention * Exports are clear and use PascalCase for React components. * General code quality * Icon exports are simple and easy to understand. * package.json * Dependencies * No new unapproved dependencies were noticed during the review. ## What needs to be done * frontend/src/components/LanguageSelect/LanguageSelect.js * Remove the unused `translate` variable to fix the ESLint warning. * frontend/src/pages/settings/Settings.js * Remove the unused `LoginLogout` import. * Move hardcoded visible text such as `Seasonal themes` and `Dark mode` to localization files. * Footer/UI text * Some footer/placeholders are still shown in English when Swedish is selected and should be localized if they are part of this scope. ## Conclusion * The implementation works well overall and the Settings page is stable on desktop, mobile view, light mode, dark mode and language switching. * The PR is close to ready and overall follows the project's coding and CSS conventions well. Small cleanup is recommended before merge because of unused imports, hardcoded text and minor localization inconsistencies.
Collaborator

The localization that is missing is implemented in team 1's branch, so as long as we haven't added any new rows it will be fixed at merge.
Good job!

The localization that is missing is implemented in team 1's branch, so as long as we haven't added any new rows it will be fixed at merge. Good job!
Author
Collaborator

Fixed ESLint error in LanguageSelect, removed unused import in Settings.js! The rest are out of scope and fixed in other branch!

Fixed ESLint error in LanguageSelect, removed unused import in Settings.js! The rest are out of scope and fixed in other branch!
Collaborator

Looks good. Ready to merge.

Looks good. Ready to merge.
a22erigr merged commit 3ee4d55ed2 into team_2_week_6 2026-05-19 13:23:32 +00:00
a22erigr deleted branch 946-Implement-the-new-settings-page-design 2026-05-21 12:39:30 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Andras/BoundlessFlowCampus2K!1003
No description provided.