Skip to content

Commit 949e692

Browse files
committed
Whoops, skew() is *not* equivalent to skewX() or skewY(). Added interfaces for both of the latter.
1 parent 36ae407 commit 949e692

File tree

1 file changed

+64
-4
lines changed

1 file changed

+64
-4
lines changed

css-typed-om/Overview.bs

Lines changed: 64 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)