-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Notes from spec review #168
Comments
Other than finished, which is a public attribute, all others are mentioned as internal slots. Does that not imply these are private?
Do you have a pointer to a similar spec text for this?
I don't think the fact that transitions are an enhancement is relevant since this is when the developer makes an error in using the API. There should be a feature check (for unsupported browsers) even before the prepare call is made.
Would it suffice to say multiple elements or pseudo-elements in the same "Document". Since the idea is to check elements in the same DOM which can participate in this transition. Not sure what's the significance of saying "rendered" elements.
Can you think of a spec which needs to refer to the same concept? We can update the check for duplicate page-transition-tags with the same text.
That's an excellent question. It doesn't look like it does if you try the following example:
For fixed position elements, the presence of contain:layout changes whether a fixed position element uses the initial containing block as its containing block or the root element. At the same I'm not sure if we need this for the root element. One reason to require it is so the element creates a stacking context but since we use the stacking context created for root + top layer for the root image, that's not an issue here. The other was to ensure all positioned descendants move with the root during the animation (as they would've in the actual DOM). Again since we're including everything painted in the viewport for the root image, I don't think that matters here. @vmpstr for his thoughts too.
You mean pretend that the element wasn't tagged? That's fine too. In fact that's what we end up doing if a style change on incoming elements causes this to happen midway in the transition.
We generate the pseudo elements with outgoing snapshots in the last rendering update presented to the user before the updates are suppressed. The paint timing will also include the time to paint these pseudo elements. So I wanted to ensure that this step is before the mark paint timing step. More comments incoming... |
Its a struct with the fields that we reference as being set in the algorithm. I can add a definition outside to basically declare the struct before its used in the algorithm?
Sorry I didn't follow. Create transition pseudo elements is an algorithm which uses fields from SameDocumentTransition. We do a similar pattern for a lot of other algorithms like: update transition DOM and animate a page transition.
Agreed. I've added an issue to follow up on this. Also how to deal with input during this phase.
Sorry, didn't follow what "these" means here. |
The text on https://tabatkins.github.io/specs/css-shared-element-transitions/#api says "Additionally the following structures exist". From the prose it isn't really clear what they exist on, or that they're private slots.
Web locks seems to do it right https://w3c.github.io/web-locks/#dom-lockmanager-request
I think this needs more thinking #169
I think we need to considered 'rendered' too #170
Hmm, it feels like CSS animations have the same concept when it comes to creating animations, but I couldn't find any handle spec text there. I think we can just talk about elements connected to the document which are rendered.
Feels like we need some exception for root in the spec then?
I guess this depends on #170 too.
Ohh, so the rendering that we use to capture the pseudos is different to step 16?
It looks mostly ok now, although there are some reference to "outgoing data" which doesn't seem to exist https://tabatkins.github.io/specs/css-shared-element-transitions/#create-transition-pseudo-elements
Ignore me. It seems folks disagree on whether this pattern is ok, so let's just go with it. I've filed whatwg/webidl#1175 to get some clarity on it.
After this line:
Is it the intention to proceed to the next line in the spec, even if the transition is abandoned? There's no explicit return/abort, so it will proceed to the next line. |
This has been addressed |
https://tabatkins.github.io/specs/css-shared-element-transitions/
Is that true in cases where there isn't an outgoing element? As in, the element only exists in the 'after' state?
"transitioon" -> "transition"
Also, does this define any kind of order vs other things in the top layer?
Should this be
Promise<undefined>
?Would it be better to make "outgoing image" a definition for the parent object, so it can be referenced in a more strict way?
Should it be clearer that these are private slots on SameDocumentTransition?
I think we need to be clearer on how the document is chosen, as it matters when one iframe calls another iframe's implementation of SameDocumentTransition.
The path is usually via the relevant settings object of
this
.I don't think this is the behaviour we want. I think we either want to abort any currently running transition in favour of this one, or immediately abort this transition when it's prepared.
The current behaviour in the spec skips calling the callback, which prevents the DOM change from happening, which seems wrong given that transitions are an enhancement.
Same goes for the other early throws.
Need a stronger definition of "on the page". IMO it should refer to rendered elements or pseudo elements connected to the document. Although, I don't know if that definition includes things like
::backdrop
on modals.This line is duplicated.
I think we need to be stricter about what this means. As in, limit it to document-connected elements that are rendered.
Feels like "layout containment" and "fragmentation" should link to the definitions.
Does the root automatically meet these conditions?
It feels like these elements should be filtered out rather than cause errors. For instance, it feels like I should be able to create a transition from:
To
Shouldn't it be after step 16 when the rendering is actually updated? Maybe put the content of the step in a note, in case steps are added/removed from the HTML spec.
Is there a stricter way to refer to the computed value here? I'm thinking of cases where the value is
var(--foo)
.Maybe need to use a more formal type here. Eg, is it a style object, is it a struct? etc etc
Nit: This is like a callback, so I don't think "this" can be referenced. Probably just needs to be set to a variable during the synchronous steps.
Feels like we need a more formal definition for "Suppress rendering opportunities".
I think this step & similar steps intend to abort these steps too?
The text was updated successfully, but these errors were encountered: