Menu ▾ ▴

#346 Fix login page scrolling, dark theme, and language spacing

closed
nobody
None
2026-11-06
2026-11-05
Anonymous
No

Originally created by: kristofferR

Facebook's login page could show nested scrollbars and unreadable text in dark mode. The language selector also sat far below the form because it was pinned to the window bottom.

Reset the login wrapper heights and overflow so the document owns scrolling. Apply a login-specific semantic dark palette at Facebook's nested theme scopes, driven by Carrier's forced or system theme. Keep the language selector in normal flow below the form and retain a scoped fallback for legacy white header bands.

Validation:

  • cargo fmt, cargo clippy --all-targets -- -D warnings, and cargo test --lib: 340 tests passed.
  • bun run check: 748 tests passed, two existing skips; injection bundles regenerated.
  • Checked the live logged-out page at desktop and narrow sizes, including theme changes, page scrolling, language spacing, and the password visibility toggle.
  • Extended the existing browser fixture for nested palettes, legacy backgrounds, scroll reachability, language spacing, and cleanup on saved-account and PIN/E2EE screens. Live PIN restore requires an account and was not exercised.

Ref [#335]

Summary by CodeRabbit

  • Bug Fixes
  • Improved dark-mode styling on the login page, including backgrounds, text, and the Meta wordmark. Theme changes now update the login appearance without disrupting saved-account or PIN/E2EE screens.
  • Improved login-page scrolling and spacing, and moved the language selector below the form so it remains in the page flow.

Related

Tickets: #335

Discussion

  • Anonymous

    Anonymous - 2026-11-05

    Originally posted by: coderabbitai[bot]

    Action performed

    Review finished. > Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.
     
  • Anonymous

    Anonymous - 2026-11-05

    Originally posted by: chatgpt-codex-connector[bot]

    Codex Review Summary

    This comment shows the latest Codex review activity on this pull request.

    Review Status Commit Review trigger
    📝 Code Review ✅ Completed <relative-time datetime="2026-11-05T23:47:39.769888Z">2026-11-05T23:47:39.769888Z</relative-time> b29a372 Manual request
    ℹ️ About Codex in GitHub
    [Your team has set up Codex to review pull requests in this repo](https://chatgpt.com/codex/cloud/settings/general). Reviews are triggered when you - Open a pull request for review - Mark a draft as ready - Comment "@codex review" or "@codex security review". Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.
     
  • Anonymous

    Anonymous - 2026-11-05

    Originally posted by: chatgpt-codex-connector[bot]

    Codex Review: Didn't find any major issues. Already looking forward to the next diff.

    Reviewed commit: 3423ef221d

    ℹ️ About Codex in GitHub
    [Your team has set up Codex to review pull requests in this repo](https://chatgpt.com/codex/cloud/settings/general). Reviews are triggered when you - Open a pull request for review - Mark a draft as ready - Comment "@codex review". If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
     
  • Anonymous

    Anonymous - 2026-11-05

    Originally posted by: coderabbitai[bot]

    <picture>Explain Change →</picture>

    [!WARNING]

    Review limit reached

    You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

    Next included review available in 54 minutes.

    Check out review usage here.


    View limit details



    Limit details: You’ve used the included review currently available.

    Learn how review limits work.

    Review configuration:


    <picture></picture> Run configuration






    <picture></picture> Commits



    Reviewing files that changed from the base of the PR and between [3423ef] and f5ba6b0d6d5c2c8f1b516b3d91e7afb11cbb9e7b.




    <picture></picture> Files selected for processing: 3



    • inject/src/messenger/features/login-tidy.ts
    • inject/src/messenger/lib/login-layout.browser.test.ts
    • src-tauri/inject/messenger.js





    Walkthrough

    Login dark styling now uses a scoped attribute instead of changing Facebook’s root theme class. Login layout styles also change scrolling and language-switcher placement. Browser tests cover theme behavior, required controls, and post-login navigation. **Changes: Messenger login page** |Layer / File(s)|Summary| |:---|:---| |**Scoped login theme**
    `inject/src/messenger/features/login-tidy.ts`, `src-tauri/inject/messenger.js`, `src-tauri/inject/messenger.css`, `inject/src/messenger/lib/login-layout.browser.test.ts`|Login theme handling toggles `data-carrier-login-dark` based on `wantDark()` and marks light-background elements inside the login column. CSS applies dark theme tokens and colors. Browser tests cover dark, light, and system themes, plus saved-account and PIN/E2EE layouts.| |**Login scrolling and language switcher**
    `src-tauri/inject/messenger.css`, `inject/src/messenger/lib/login-layout.browser.test.ts`|Login wrappers clip horizontal overflow while the document retains vertical scrolling. The language switcher moves into normal flow below the login form. Browser checks cover scrolling and switcher spacing.| **Estimated code review effort:** 3 (Moderate) | ~20 minutes **Change:** Bug fix
    Merge Risk: <picture></picture> Minimal · previous review 3423e

    The reviewed login-theme and layout changes have no identified merge-blocking issue; merge after normal checks.
    Pre-merge checks: <picture>Passed</picture> 4 · <picture>Failed</picture> 1

    <picture>Failed</picture> Failed checks: 1 warning | Check name | Status | Explanation | Resolution | | :---------------- | :----------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------- | | Docstring Coverage | ![Warning](https://storage.googleapis.com/coderabbit_public_assets/pre-merge-checks-warning.svg) | Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat… | Write docstrings for the functions missing them to satisfy the coverage threshold. |
    <picture>Passed</picture> Passed checks: 4 passed

    | Check name | Status | Explanation | | :------------------------ | :--------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Title check | ![Passed](https://storage.googleapis.com/coderabbit_public_assets/pre-merge-checks-passed.svg) | The title identifies the main login page changes. | | Description check | ![Passed](https://storage.googleapis.com/coderabbit_public_assets/pre-merge-checks-passed.svg) | The description covers the problem, changes, and validation. It lacks the AI models section, which is required for non-owner contributors. If applicable, add the model names and versions or state None… | | Linked Issues check | ![Passed](https://storage.googleapis.com/coderabbit_public_assets/pre-merge-checks-passed.svg) | Check skipped because no linked issues were found for this pull request. | | Out of Scope Changes check | ![Passed](https://storage.googleapis.com/coderabbit_public_assets/pre-merge-checks-passed.svg) | Check skipped because no linked issues were found for this pull request. |
    Full details: Description check

    **Explanation** The description covers the problem, changes, and validation. It lacks the AI models section, which is required for non-owner contributors. If applicable, add the model names and versions or state None. Reasoning levels are optional.
    Full details: Docstring Coverage

    **Explanation** Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 5 functions across 3 files. (1 skipped: 1 unsupported.) **Resolution** Write docstrings for the functions missing them to satisfy the coverage threshold.
    Finishing Touches

    Generate docstrings

    - [ ] Commit to this branch - [ ] Create a new PR
    Generate unit tests (beta)

    - [ ] Commit to this branch - [ ] Create a new PR
    • [ ] Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

    Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

    Share

    - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)
     

    Related

    Commit: [3423ef]

  • Anonymous

    Anonymous - 2026-11-05

    Originally posted by: coderabbitai[bot]

    Action not completed

    Review rate limited. > Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.
     
  • Anonymous

    Anonymous - 2026-11-05

    Originally posted by: chatgpt-codex-connector[bot]

    Codex Review: Didn't find any major issues. 👍

    Reviewed commit: f5ba6b0d6d

    ℹ️ About Codex in GitHub
    [Your team has set up Codex to review pull requests in this repo](https://chatgpt.com/codex/cloud/settings/general). Reviews are triggered when you - Open a pull request for review - Mark a draft as ready - Comment "@codex review". If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
     
  • Anonymous

    Anonymous - 2026-11-05

    Originally posted by: chatgpt-codex-connector[bot]

    Codex Review: Didn't find any major issues. Breezy!

    Reviewed commit: b29a372d46

    ℹ️ About Codex in GitHub
    [Your team has set up Codex to review pull requests in this repo](https://chatgpt.com/codex/cloud/settings/general). Reviews are triggered when you - Open a pull request for review - Mark a draft as ready - Comment "@codex review". If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
     
  • Anonymous

    Anonymous - 2026-11-06

    Ticket changed by: kristofferR

    • status: open --> closed
     

Log in to post a comment.