@@ -2156,6 +2156,21 @@ The <dfn for=CSSTransformValue>indexed getter</dfn> retrieves the transform comp
21562156 attribute CSSNumericValue ay;
21572157 };
21582158
2159+ [Exposed=(Window, Worker, PaintWorklet, LayoutWorklet),
2160+ Constructor(CSSNumericValue ax)]
2161+ interface CSSSkewX : CSSTransformComponent {
2162+ attribute CSSNumericValue ax;
2163+ };
2164+
2165+ [Exposed=(Window, Worker, PaintWorklet, LayoutWorklet),
2166+ Constructor(CSSNumericValue ay)]
2167+ interface CSSSkewY : CSSTransformComponent {
2168+ attribute CSSNumericValue ay;
2169+ };
2170+
2171+ /* Note that skew(x,y) is *not* the same as skewX(x) skewY(y),
2172+ thus the separate interfaces for all three. */
2173+
21592174 [Exposed=(Window, Worker, PaintWorklet, LayoutWorklet),
21602175 Constructor(CSSNumericValue length)]
21612176 interface CSSPerspective : CSSTransformComponent {
@@ -2359,12 +2374,41 @@ The <dfn for=CSSTransformValue>indexed getter</dfn> retrieves the transform comp
23592374 and its {{CSSTransformComponent/is2D}} internal slot set to `true`.
23602375</div>
23612376
2377+ <div algorithm="CSSSkewX()">
2378+ The <dfn constructor for=CSSSkewX>CSSSkewX(|ax|)</dfn> constructor must,
2379+ when invoked,
2380+ perform the following steps:
2381+
2382+ 1. If |ax| does not match <<angle>> ,
2383+ [=throw=] a {{TypeError}} .
2384+
2385+ 2. Return a new {{CSSSkewX}} object
2386+ with its {{CSSSkewX/ax}} internal slot
2387+ set to |ax|,
2388+ and its {{CSSTransformComponent/is2D}} internal slot set to `true`.
2389+ </div>
2390+
2391+ <div algorithm="CSSSkewY()">
2392+ The <dfn constructor for=CSSSkewY>CSSSkewY(|ay|)</dfn> constructor must,
2393+ when invoked,
2394+ perform the following steps:
2395+
2396+ 1. If |ay| does not match <<angle>> ,
2397+ [=throw=] a {{TypeError}} .
2398+
2399+ 2. Return a new {{CSSSkewY}} object
2400+ with its {{CSSSkewY/ay}} internal slot
2401+ set to |ay|,
2402+ and its {{CSSTransformComponent/is2D}} internal slot set to `true`.
2403+ </div>
2404+
23622405<div algorithm="CSSSkew.is2D">
2363- The <dfn attribute for=CSSSkew>is2D</dfn> attribute of a {{CSSSkew}} object must,
2406+ The <dfn attribute for="CSSSkew, CSSSkewX, CSSSkewY">is2D</dfn> attribute
2407+ of a {{CSSSkew}} , {{CSSSkewX}} , or {{CSSSkewY}} object must,
23642408 on setting,
23652409 do nothing.
23662410
2367- Note: ''skew()'' functions always represent 2D transforms.
2411+ Note: ''skew()'' , ''skewX()'' , and ''skewY()'' functions always represent 2D transforms.
23682412</div>
23692413
23702414<div algorithm="CSSPerspective()">
@@ -2931,8 +2975,6 @@ while CSS <<transform-function>> values become {{CSSTransformComponent}}s.
29312975 and `false` otherwise.
29322976
29332977 : ''skew()''
2934- : ''skewX()''
2935- : ''skewY()''
29362978 ::
29372979 1. Return a new {{CSSSkew}} object,
29382980 whose {{CSSSkew/ax}} and {{CSSSkew/ay}} internal slots
@@ -2941,6 +2983,24 @@ while CSS <<transform-function>> values become {{CSSTransformComponent}}s.
29412983 and whose {{CSSTransformComponent/is2D}} internal slot
29422984 is `true`.
29432985
2986+ : ''skewX()''
2987+ ::
2988+ 1. Return a new {{CSSSkewX}} object,
2989+ whose {{CSSSkewX/ax}} internal slot
2990+ is set to the [=normalize a numeric value|normalization=] of the specified x angle,
2991+ or the [=normalize a numeric value|normalization=] of ''0deg'' if not specified in |func|,
2992+ and whose {{CSSTransformComponent/is2D}} internal slot
2993+ is `true`.
2994+
2995+ : ''skewY()''
2996+ ::
2997+ 1. Return a new {{CSSSkewY}} object,
2998+ whose {{CSSSkewY/ay}} internal slot
2999+ is set to the [=normalize a numeric value|normalization=] of the specified y angle,
3000+ or the [=normalize a numeric value|normalization=] of ''0deg'' if not specified in |func|,
3001+ and whose {{CSSTransformComponent/is2D}} internal slot
3002+ is `true`.
3003+
29443004 : ''perspective()''
29453005 ::
29463006 1. Return a new {{CSSPerspective}} object,
0 commit comments