Skip to content

[lexical-playground] Bug Fix: Floating toolbar position for end-aligned text#7405

Merged
etrepum merged 1 commit intofacebook:mainfrom
bgwebagency:fix/floating-toolbar-end-align-position
Apr 1, 2025
Merged

[lexical-playground] Bug Fix: Floating toolbar position for end-aligned text#7405
etrepum merged 1 commit intofacebook:mainfrom
bgwebagency:fix/floating-toolbar-end-align-position

Conversation

@kirandash
Copy link
Copy Markdown
Contributor

Description

Current behavior:

When text is end-aligned, the floating text format toolbar appears correctly above the first two lines but shifts to the leftmost position when selecting text on the third line and beyond. This inconsistent positioning creates a poor user experience and makes it difficult to format end-aligned text.

Changes in this PR:

  • Added detection of text alignment using computed styles to determine text positioning
  • Modified the floating toolbar position calculation to be relative to text end for right/end-aligned content
  • Added boundary checks to ensure the toolbar stays within editor bounds
  • Improved horizontal positioning logic to maintain consistent toolbar placement regardless of text alignment

Closes #7114

Test plan

Before

The floating toolbar jumps to the leftmost position when selecting text on the third line of end-aligned content.

image

After

  1. Add 3-4 lines of text in the editor
  2. Set text alignment to "end" or "right"
  3. Select text on different lines
  4. Verify toolbar appears consistently above selected text
  5. Verify toolbar stays within editor boundaries
  6. Test with different text alignments (left, center, right)

image

The floating toolbar now correctly positions itself above end-aligned text by:
- Detecting text alignment using computed styles
- Adjusting horizontal position relative to text end for right-aligned content
- Adding boundary checks to keep toolbar within editor bounds

Fixes facebook#7114
@vercel
Copy link
Copy Markdown

vercel bot commented Mar 30, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
lexical ✅ Ready (Inspect) Visit Preview 💬 Add feedback Mar 30, 2025 11:16am
lexical-playground ✅ Ready (Inspect) Visit Preview 💬 Add feedback Mar 30, 2025 11:16am

@facebook-github-bot facebook-github-bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Mar 30, 2025
Copy link
Copy Markdown
Collaborator

@etrepum etrepum left a comment

Choose a reason for hiding this comment

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

LGTM!

@etrepum etrepum added the extended-tests Run extended e2e tests on a PR label Mar 30, 2025
@etrepum etrepum added this pull request to the merge queue Apr 1, 2025
Merged via the queue into facebook:main with commit 46f8113 Apr 1, 2025
69 checks passed
@etrepum etrepum mentioned this pull request Apr 7, 2025
GermanJablo added a commit to payloadcms/payload that referenced this pull request Sep 3, 2025
Fixes #13386

Below I write a clarification to copy and paste into the release note,
based on our latest upgrade of Lexical [in
v3.29.0](https://github.com/payloadcms/payload/releases/tag/v3.29.0).

## Important
This release upgrades the lexical dependency from 0.28.0 to 0.34.0.

If you installed lexical manually, update it to 0.34.0. Installing
lexical manually is not recommended, as it may break between updates,
and our re-exported versions should be used. See the [yellow banner
box](https://payloadcms.com/docs/rich-text/custom-features) for details.

If you still encounter richtext-lexical errors, do the following, in
this order:

- Delete node_modules
- Delete your lockfile (e.g. pnpm-lock.json)
- Reinstall your dependencies (e.g. pnpm install)

### Lexical Breaking Changes

The following Lexical releases describe breaking changes. We recommend
reading them if you're using Lexical APIs directly
(`@payloadcms/richtext-lexical/lexical/*`).

- [v.0.33.0](https://github.com/facebook/lexical/releases/tag/v0.33.0)
- [v.0.30.0](https://github.com/facebook/lexical/releases/tag/v0.30.0)
- [v.0.29.0](https://github.com/facebook/lexical/releases/tag/v0.29.0)

___

TODO:
- [x] facebook/lexical#7719
- [x] facebook/lexical#7362
- [x] facebook/lexical#7707
- [x] facebook/lexical#7388
- [x] facebook/lexical#7357
- [x] facebook/lexical#7352
- [x] facebook/lexical#7472
- [x] facebook/lexical#7556
- [x] facebook/lexical#7417
- [x] facebook/lexical#1036
- [x] facebook/lexical#7509
- [x] facebook/lexical#7693
- [x] facebook/lexical#7408
- [x] facebook/lexical#7450
- [x] facebook/lexical#7415
- [x] facebook/lexical#7368
- [x] facebook/lexical#7372
- [x] facebook/lexical#7572
- [x] facebook/lexical#7558
- [x] facebook/lexical#7613
- [x] facebook/lexical#7405
- [x] facebook/lexical#7420
- [x] facebook/lexical#7662

---
- To see the specific tasks where the Asana app for GitHub is being
used, see below:
  - https://app.asana.com/0/0/1211202581885926
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. extended-tests Run extended e2e tests on a PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: FloatingTextFormatToolbarPlugin position change issue

3 participants