Re: [csswg-drafts] [css-env-1] values for screen edge avoidance in fullscreen

The Working Group just discussed `Full-screen insets`.

<details><summary>The full IRC log of that discussion</summary>
&lt;fantasai> Topic: Full-screen insets<br>
&lt;dbaron> https://drafts.csswg.org/css-env-1/#safe-area-insets<br>
&lt;fantasai> github: https://github.com/w3c/csswg-drafts/issues/2871<br>
&lt;dbaron> (that URL was for the previous topic)<br>
&lt;fantasai> dino draws a fullscreen video player<br>
&lt;fantasai> There's a title in the top left corner<br>
&lt;fantasai> there's controls along the bottom<br>
&lt;fantasai> dino: Works fine on a desktop machien because everyone knows you can get out with escape or whatever<br>
&lt;fantasai> dbaron: But touch interface doens't have escape key<br>
&lt;fantasai> dino: So we need to provide some UI for escaping<br>
&lt;fantasai> dino: e.g. an X in the top left corner<br>
&lt;fantasai> dino: Fades away if you haven't touched the screen much lately<br>
&lt;fantasai> dino: Trying to come up with avriables to take the page where it can draw content when the browser UI is available<br>
&lt;fantasai> florian: We kindof alked about that when we were doing round display, with different approach<br>
&lt;fantasai> florian: MQ with coordinate, if I put something there, will it be visible?<br>
&lt;fantasai> florian: Rather than browser trying to prove geometry, can just ask "can I put the box there"?<br>
&lt;fantasai> myles: Why would you want to binary search for an available space? seems awful<br>
&lt;fantasai> dino writes an example<br>
&lt;fantasai> title { pos: abs; top: env(fs-inset-top);<br>
&lt;fantasai> dino: Can even say title { transition: top 1s; }<br>
&lt;fantasai> dino: then the title shifts as the browser UI desappears and appears<br>
&lt;fantasai> dino: While we specify top/left/bottom/right<br>
&lt;fantasai> dino: top effectively reserves the entire top<br>
&lt;fantasai> dino: We might do {various things } in this area<br>
&lt;fantasai> dino: In safe mode, would also have put the left side offset, but we decided to just do the top<br>
&lt;fantasai> ...<br>
&lt;fantasai> astearns: ...<br>
&lt;fantasai> dino: The issue is that we did that for awhile, and it looks weird if the title is not at the top. Looks lik they've got a weird design<br>
&lt;astearns> s/.../so the space taken up by the browser UI is only known when the UI is showing/<br>
&lt;fantasai> dino: Other issue I link to, because we fade out the X, it's a good example where YouTube fades out their UI as well<br>
&lt;fantasai> dino: Might want to expose timers on our fading so they can synchronize<br>
&lt;fantasai> heycam: Maybe use events rather than time?<br>
&lt;fantasai> dino: Events makes more sense, usually we're responding to those in JS anyway<br>
&lt;fantasai> heycam: ...<br>
&lt;fantasai> dino: We'd also have to publish and make sure everyone's listening to the same events<br>
&lt;fantasai> dino: That's basically the two proposals. Happy for any suggestions or comments<br>
&lt;fantasai> florian: What we started with seemed nice and simple<br>
&lt;heycam> s/.../also you don't know when exactly to start counting those seconds/<br>
&lt;fantasai> florian: but semes like maye they're overly simplified, and as you get into more complicated situations we keep having to add mroe and more tricks<br>
&lt;dbaron> s/dbaron:/?:/<br>
&lt;fantasai> dino: It's veyr specific to our design, but we want to have something that works for others as well.<br>
&lt;fantasai> florian draws a dashboard display and asks about how far are we going to go<br>
&lt;fantasai> dino: safe-area-* is about hardward shapes. fs-inset is about on-screen displays<br>
&lt;fantasai> florian: ...<br>
&lt;fantasai> myles: System with arbitrary shapes would be so difficult to use that no developer would do it<br>
&lt;astearns> s/hardward/hardware/<br>
&lt;fantasai> Rossen: Similar to this, we had a value called device-fixed<br>
&lt;fantasai> Rossen: Worked exactly you describe,<br>
&lt;fantasai> Rossen: When onscreen keyboard came in, didn't want to resize the entire window<br>
&lt;fantasai> Rossen: But i fyou wanted to attach UI on top of the keyboard, e.g.<br>
&lt;fantasai> Rossen: Insteadd of positoin: fixed<br>
&lt;fantasai> Rossen: You'd do position: device-fixed<br>
&lt;fantasai> Rossen: And it would adjust<br>
&lt;fantasai> Rossen: You won't have to resynch or compute any numeric values like top/bottom etc.<br>
&lt;astearns> s/?:/dino:/<br>
&lt;fantasai> dino: You wouldn't be able to animate<br>
&lt;fantasai> Rossen: That would be done for you<br>
&lt;fantasai> Rossen: Basically saying that the device now is going up<br>
&lt;fantasai> Rossen: on-screen keyboard is cming up<br>
&lt;fantasai> Rossen: If this UI was important for YouTupe, they'd simply position this as device-fixed<br>
&lt;fantasai> Rossen: And then this simply becomes bottom: 0;<br>
&lt;fantasai> Rossen: And they don't need to do anything else<br>
&lt;fantasai> Rossen: They don't even know, it's still the same thing<br>
&lt;fantasai> florian: If you are sizing things, would that affect viewort units?<br>
&lt;fantasai> Rossen: This is ovekill<br>
&lt;fantasai> Rossen: Another example put forward was if you have, suppose some vertical sidebar<br>
&lt;fantasai> Rossen: Same thing, a bit more work for us, but if you have positioned top and obttom it would respond<br>
&lt;fantasai> Rossen: From what I know, it was very successful because very simple<br>
&lt;fantasai> Rossen: position: fixed vs position: device-fixed<br>
&lt;heycam> fantasai: why isn't position:fixed have the behavior of device-fied?<br>
&lt;fantasai> Rossen: We weren't actually resizing the viewport, it was an overlay UI<br>
&lt;fantasai> Rossen: e.g. keyboard uses semitranslucent colors<br>
&lt;heycam> fantasai: but what if you want to clearly see the content at the bottom of the page?<br>
&lt;heycam> Rossen: just dismiss the keyboard<br>
&lt;fantasai> fantasai: What if you need to type into a form field at the bottom of the page?<br>
&lt;fantasai> frremy: Then you can dock your keyboard.<br>
&lt;fantasai> dino: Do you still support device-fixed?<br>
&lt;fantasai> Rossen: yes<br>
&lt;fantasai> Rossen: We were doing this for action center, which is something that swipes from the right<br>
&lt;fantasai> Rossen: If you have some UI that's really important to your app<br>
&lt;fantasai> Rossen: you can attach it<br>
&lt;fantasai> myles: Does it work if the window is not full screen?<br>
&lt;fantasai> Rossen: No, this is only for full-screen<br>
&lt;fantasai> iank_: What is the box?<br>
&lt;fantasai> dino: In our case the device-fixed box would be what remains after the inset here.<br>
&lt;fantasai> iank_: But it wouldn't solve this use case?<br>
&lt;fantasai> dino: It would, but ti wouldn't solve use case of wanting ot fade all controls at once<br>
&lt;fantasai> iank_: What aobut tile shifting to the right?<br>
&lt;fantasai> dino: We'r ereserving the right ot put more things up there<br>
&lt;fantasai> dino: Would be up to browser to animate the the device-fixed box.<br>
&lt;fantasai> myles: Animation is different<br>
&lt;fantasai> myles: we want the animation to fade out<br>
&lt;fantasai> myles: whereas you want it to slide out<br>
&lt;fantasai> Rossen: You can fade out the keyboard or slide it?<br>
&lt;fantasai> myles: How does the page know to fade out or side out things?<br>
&lt;fantasai> dino: Say youtube uses a 3s fade, and we use a 4s fade.<br>
&lt;fantasai> dino: Wnat to tell youtube to use 4s if it wants to be in sync<br>
&lt;fantasai> fantasai: In Apple's case, could just use the transition time value in the 'transition' property<br>
&lt;fantasai> Rossen: Reason we wanted it done in browser was because syncing timers was not working<br>
&lt;fantasai> astearns: weirdly shaped things will need to use a lot of environment variables<br>
&lt;fantasai> dino: OK, we'll take back this feedback<br>
&lt;fantasai> fantasai: Also, you might want to consider s/fullscreen/overlay in the names... it's not really about the fullscreening<br>
&lt;fantasai> Rossen: If we are looking to solve the tying of author-defined controls with UA controls animation<br>
&lt;fantasai> Rossen: You can have a start and an end event<br>
&lt;fantasai> Rossen: Just also need to know how long between the two<br>
&lt;fantasai> myles: Could be part of the start event<br>
&lt;fantasai> astearns: Maybe you only need one set of environment variables<br>
</details>


-- 
GitHub Notification of comment by css-meeting-bot
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/2871#issuecomment-402362512 using your GitHub account

Received on Wednesday, 4 July 2018 04:53:41 UTC