- From: Mayank via GitHub <sysbot+gh@w3.org>
- Date: Wed, 19 Jun 2024 19:11:26 +0000
- To: public-css-archive@w3.org
This issue is worth revisiting now that the [`popover` API](https://developer.mozilla.org/en-US/docs/Web/API/Popover_API) has shipped in all browsers.
Today, you can put pretty much anything in the top layer using code similar to below:
```html
<div id="p" popover="manual">
<script>
p.showPopover();
</script>
```
This requires HTML and worse, it requires JavaScript.
Note: I'm talking about `popover="manual"` because it doesn't require any user interaction and doesn't have special behaviors (like closing on <kbd>Esc</kbd> keypress).
---
Why shouldn't it be possible to arbitrarily put things in top-layer declaratively using CSS (There was some discussion about this in #6965)
It would be immensely useful, and CSS feels like the correct place to do this. When migrating some of my old code over to `popover`, I found myself replacing a lot of CSS (`z-index: 9999`) with JavaScript, which is never a good thing.
There is even a UA-restricted [`overlay`](https://developer.mozilla.org/en-US/docs/Web/CSS/overlay) property that could be re-used for this purpose.
```css
#p {
overlay: manual;
}
```
One of the issues I can foresee is loops. There will be a selector that only matches elements that are in the top-layer (#7319), and authors could use that selector to unset the declaration that placed the element in the top-layer in the first place.
```css
#p {
overlay: manual;
&:top-layer {
overlay: unset;
}
}
```
--
GitHub Notification of comment by mayank99
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/5699#issuecomment-2179335955 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Wednesday, 19 June 2024 19:11:27 UTC