Skip to content

Landing page polish: sign-in error modal, theme toggle visibility, copy & accessibility pass - #223

Merged
ayoub3bidi merged 5 commits into
developfrom
hot-fix/landing-page-fixes
Aug 5, 2026
Merged

Landing page polish: sign-in error modal, theme toggle visibility, copy & accessibility pass#223
ayoub3bidi merged 5 commits into
developfrom
hot-fix/landing-page-fixes

Conversation

@ayoub3bidi

@ayoub3bidi ayoub3bidi commented Aug 5, 2026

Copy link
Copy Markdown
Owner

Contribution workflow

  • Base branch is develop: This PR targets develop, not main.
  • Guidelines and docs: I have read CONTRIBUTING.md and the docs relevant to my change (DEVELOPMENT.md, ARCHITECTURE.md as needed).
  • This template: I kept the PR template structure and filled in the sections below that apply to this change.

Description

Polish pass on the landing page and header/sign-in UX: failed Google sign-ins now surface in a proper accessible dialog instead of inline text, the theme toggle is available on more pages, and a sweep of copy revisions improve clarity and accessibility across locales (em dashes replaced with periods/pipes, more natural sentence flow). Also fixes the ControlPanel seek thumb overflow, hero demo layout on small screens, and a low-contrast hint in profile settings.

Type of Change

  • ✨ New feature (non-breaking change which adds functionality)
  • 🐛 Bug fix (non-breaking change which fixes an issue)
  • 🎨 Style/UI improvement
  • 🧪 Test addition or improvement

Related Issues

Fixes #

Changes Made

  • Add SignInErrorModal (focus management, Escape/backdrop close, reduced-motion aware) and wire it into UserMenu for both navbar and landing variants, replacing the inline error text
  • Add accessBan.signInUnavailableTitle i18n key in en/fr/ar and compact navbar proportions for the sign-in button (data-navbar-signin + CSS)
  • Fix ControlPanel seek thumb so it stays inside the track (RTL-aware)
  • Show ThemeToggle on /app, /settings, /roadmap, and /pro (was app-only)
  • Landing hero: full-width container with mobile horizontal padding and max-w-full stage so bars don't overflow; demo array reduced 6 → 5
  • Profile settings avatar hint: remove translucent/low-contrast styling
  • Copy revision pass: periods/pipes instead of em dashes in EN/FR translations, MCP server-card/mcp.json descriptions, .impeccable/design.json, and algorithm insight + step descriptions for clearer, more accessible phrasing
  • Update stale test assertions (AlgorithmTypes, AlgorithmNotesTab) to match the revised copy; add SignInErrorModal unit tests (7) and extend UserMenu tests

Algorithm Details (if applicable)

N/A — no algorithms added or changed.

Testing

  • All existing tests pass (pnpm test:run)
  • New tests added for new functionality
  • Manual testing completed
  • Cross-browser testing (if UI changes)

Test Results

Test Files  173 passed (173)
     Tests  2010 passed (2010)

Screenshots/GIFs

Before After
Inline sign-in error text in the header SignInErrorModal dialog shown on sign-in failure

Code Quality

  • Code follows the project's coding standards
  • ESLint passes (pnpm lint)
  • Prettier formatting applied (pnpm format)
  • No console errors or warnings
  • Code is properly documented with JSDoc (if applicable)

Performance Impact

  • No performance impact

Accessibility

  • Keyboard navigation works correctly (Escape closes the modal; focus returns to trigger)
  • Screen reader compatibility maintained (role="dialog", aria-modal, labelled heading)
  • Color contrast meets WCAG guidelines (profile hint contrast fix)
  • Focus indicators are visible

Breaking Changes

  • None

Checklist

  • I have completed the Contribution workflow checklist at the top of this template
  • My code follows the project's style guidelines
  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published

Additional Notes

Local gate run before push: pnpm lint (0 errors), pnpm format:check (clean), pnpm test:coverage (2010 passed), pnpm build (success).

Summary by CodeRabbit

  • New Features

    • Added a dedicated sign-in error modal with accessible dismiss behavior and translated messaging.
    • Expanded theme toggle availability across more pages.
    • Added new localized text for sign-in-unavailable states and updated several app messages for clarity.
  • Bug Fixes

    • Improved mobile header and hero layouts for better small-screen spacing and width handling.
    • Refined timeline progress positioning for smoother interaction.
    • Updated avatar notice styling for more consistent readability.

@github-actions github-actions Bot added style Improve styling, design, and animation tests labels Aug 5, 2026
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@ayoub3bidi, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 51 minutes

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

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 8741f0b2-d92c-4185-87c2-f88cf4bb4e58

📥 Commits

Reviewing files that changed from the base of the PR and between 339031e and 4589d81.

📒 Files selected for processing (2)
  • src/components/SignInErrorModal.jsx
  • src/components/SignInErrorModal.test.jsx
📝 Walkthrough

Walkthrough

The pull request adds an accessible sign-in error modal, expands theme-toggle visibility, adjusts timeline and landing-page layouts, reduces the hero demo size, and revises localization, metadata, and interface copy.

Changes

UI, Authentication, and Content

Layer / File(s) Summary
Sign-in error modal flow
src/components/SignInErrorModal.jsx, src/components/UserMenu.jsx, src/i18n/locales/*, src/index.css, src/components/*test.jsx
Google sign-in failures now open an accessible translated modal. Tests cover dismissal, focus-related behavior, keyboard handling, and dialog queries.
Shared navigation and control layout
src/components/Header.jsx, src/components/ControlPanel.jsx, src/pages/ProfileSettingsPage.jsx, src/components/AlgorithmNotesTab.test.jsx
The theme toggle appears on more routes. The timeline gains a shared positioning container. Profile notice styling and a save-error assertion are updated.
Landing-page demo sizing and layout
src/components/landing/*, src/i18n/locales/en/translation.json
The hero layout is constrained for responsive widths. The demo size changes from six values to five, with matching tests and copy.
Copy and metadata revisions
.impeccable/design.json, public/.well-known/*, src/i18n/locales/en/translation.json, src/i18n/locales/fr/translation.json
Descriptions, localization strings, algorithm messages, FAQ text, and punctuation are revised.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant UserMenu
  participant SignInErrorModal
  participant TranslationCatalog
  User->>UserMenu: starts Google sign-in
  UserMenu->>UserMenu: records sign-in failure
  UserMenu->>SignInErrorModal: renders unavailable state
  SignInErrorModal->>TranslationCatalog: loads translated title and message
  User->>SignInErrorModal: closes with button, backdrop, or Escape
  SignInErrorModal->>UserMenu: invokes onClose
Loading

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 42.86% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main changes: the sign-in error modal, expanded theme-toggle visibility, and copy and accessibility updates.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch hot-fix/landing-page-fixes

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

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Aug 5, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

Preview for Bayan Flow Staging ready!

Name Link
🔨 Latest commit 4589d81
🔍 Latest deploy log https://github.com/ayoub3bidi/bayan-flow/actions/runs/31009995476
😎 Deploy Preview https://pr-223-bayan-flow-staging.ayoub3bidi.workers.dev
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

Preview alias pr-223 on the staging worker. Updates automatically with new commits.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/components/SignInErrorModal.jsx`:
- Around line 57-61: Update the modal keyboard handling around the dialog
element in SignInErrorModal so Tab and Shift+Tab cannot move focus outside the
open modal; since it has one control, retain focus on the close button, and add
a test covering both Tab directions while preserving Escape-to-close behavior.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: a12a004b-c8ab-428f-815a-85e2cf9ea7c7

📥 Commits

Reviewing files that changed from the base of the PR and between 139d2ee and 339031e.

📒 Files selected for processing (20)
  • .impeccable/design.json
  • public/.well-known/mcp.json
  • public/.well-known/mcp/server-card.json
  • src/components/AlgorithmNotesTab.test.jsx
  • src/components/ControlPanel.jsx
  • src/components/Header.jsx
  • src/components/SignInErrorModal.jsx
  • src/components/SignInErrorModal.test.jsx
  • src/components/UserMenu.jsx
  • src/components/UserMenu.test.jsx
  • src/components/landing/AlgorithmTypes.test.jsx
  • src/components/landing/Hero.jsx
  • src/components/landing/HeroVisualizerDemo.jsx
  • src/components/landing/HeroVisualizerDemo.test.jsx
  • src/components/landing/heroVisualizerDemoConfig.js
  • src/i18n/locales/ar/translation.json
  • src/i18n/locales/en/translation.json
  • src/i18n/locales/fr/translation.json
  • src/index.css
  • src/pages/ProfileSettingsPage.jsx

Comment thread src/components/SignInErrorModal.jsx Outdated
@ayoub3bidi
ayoub3bidi merged commit 7b8affa into develop Aug 5, 2026
15 checks passed
@ayoub3bidi
ayoub3bidi deleted the hot-fix/landing-page-fixes branch August 5, 2026 13:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

style Improve styling, design, and animation tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant