Re: [css-houdini-drafts] [css-typed-om] Does the is2D design allow for inconsistent interpretation of CSSTransformComponents?

We need it, or something equivalent to it, to reflect CSS's (somewhat unfortunate) distinction between "2d transforms" and "3d transforms that happen to be planar".

Another equivalent design, which I didn't like and rejected early, was capturing the distinction in separate classes entirely - `CSSTranslate2D` vs `CSSTranslate3D` class split.  There are two major problems with this: 1, either `CSSTranslate2D` doesn't have a `.z` attribute at all (in which case code trying to do even fairly trivial things with transforms always has to distinguish between the two types of translates/etc, or else get `undefined`/errors percolating thru their code), or it does, and it's permanently set to `0px`/etc, and we have the same need for a `CSSUnitValueReadOnly` variant (but at least it doesn't need to be switchable back to being readwrite); 2, `CSSMatrixComponent2D` still doesn't work, for the exact reason already outlined in this thread.

One thing we definitely *can't* do, I think, is remove is2D and just *infer* the 2d-ness from the attributes. `transform: translateZ(0)` is used today specifically because it's a no-op 3d transform that triggers the 3d-transform side-effects, and we need to be able to reflect that accurately in the TypedOM.

-- 
GitHub Notification of comment by tabatkins
Please view or discuss this issue at https://github.com/w3c/css-houdini-drafts/issues/610#issuecomment-366356885 using your GitHub account

Received on Friday, 16 February 2018 21:01:07 UTC