GraphiteEditor / GraphiteEditor/Graphite

[Blocked on browser support] Refactor floating menus to use HTML <dialog> and CSS popover with anchor()

Open
#2,142 2 comments 0 reactions 1 assignee Claimed by @Keavon View on GitHub
Web
Dominant language
Rust
Stars
27.2k
Forks
1.3k
Avg merge
20h 5m
Merged PRs (30d)
57

Description

Modal dialogs (such as Preferences, About Graphite, closing save confirmations, etc.) should be refactored to use a [``](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog) element.

Popover menus (such as menu lists and popovers) should be refactored to use the [Popover API](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API/Using) paired with [CSS anchor positioning](https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_anchor_positioning/Using) to replace the current CSS positioning hackery (which is fragile and isn't compatible with keeping up with scrolling its floating menu spawner within a pane with scrollbars). Care will need to be taken to ensure it works with [nested popovers](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API/Using#nested_popovers).

This is **blocked** on CSS anchor positioning reaching all modern browsers ([caniuse](https://caniuse.com/css-anchor-positioning)). As of January 2026, Firefox and Safari have only just rolled out support and we should probably wait a few months until users update.

![capture](https://github.com/user-attachments/assets/afdfb9e2-f6ac-4610-86d3-38f329d65e45)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.