-
Notifications
You must be signed in to change notification settings - Fork 80
/
Copy pathmotion.json
303 lines (303 loc) · 14.1 KB
/
motion.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
{
"spec": {
"title": "Motion Path Module Level 1",
"url": "https://drafts.fxtf.org/motion-1/"
},
"properties": [
{
"name": "offset-path",
"href": "https://drafts.fxtf.org/motion-1/#propdef-offset-path",
"value": "none | <offset-path> || <coord-box>",
"initial": "none",
"appliesTo": "transformable elements",
"inherited": "no",
"percentages": "n/a",
"computedValue": "as specified",
"canonicalOrder": "per grammar",
"animationType": "by computed value",
"media": "visual",
"values": [
{
"name": "none",
"prose": "The element does not have an offset transform.",
"href": "https://drafts.fxtf.org/motion-1/#valdef-offset-path-none",
"type": "value",
"value": "none"
},
{
"name": "<offset-path> || <coord-box>",
"prose": "The element has an offset transform, defined by some offset path. See § 2.7 Calculating The Offset Transform for details on how to calculate the offset transform. All the usual effects of having a transform apply (such as creating a stacking context, etc.) See CSS Transforms 1 § 3 The Transform Rendering Model for details. If <offset-path> is omitted, it defaults to inset(0 round X), where X is the value of border-radius on the element that establishes the containing block for this element. If <coord-box> is omitted, it defaults to border-box. See the specific values (below) for the interpretation of each component.",
"href": "https://drafts.fxtf.org/motion-1/#valdef-offset-path-offset-path--coord-box",
"type": "value",
"value": "<offset-path> || <coord-box>"
},
{
"name": "<ray()>",
"prose": "The offset path is a line extending from the origin at some angle. See § 2.1.1 The ray() Function for details. The <coord-box> provides the reference box for the ray.",
"href": "https://drafts.fxtf.org/motion-1/#valdef-offset-path-ray",
"type": "value",
"value": "<ray()>"
},
{
"name": "<url>",
"prose": "A URL reference to an SVG shape element. The offset path is the referenced element’s equivalent path. [SVG2] If the URL does not reference a shape element (because it references a different element, or resolves to a non-SVG document, or doesn’t resolve at all, etc) this behaves as path(\"m 0 0\") (a <basic-shape>) instead. The <coord-box> defines the viewport and user coordinate system for the shape element, with the origin (the 0,0 point) at the top left corner, and units being 1px in size.",
"href": "https://drafts.fxtf.org/motion-1/#valdef-offset-path-url",
"type": "value",
"value": "<url>"
},
{
"name": "<basic-shape>",
"prose": "The offset path is the equivalent path of the <basic-shape> function. For all <basic-shape>s, if they accept an at <position> argument but that argument is omitted, and the element defines an offset starting position via offset-position, it uses the specified offset starting position for that argument. Otherwise it defaults as specified for each function. The <coord-box> provides the [=/reference box=] for the <basic-shape>.",
"href": "https://drafts.fxtf.org/motion-1/#valdef-offset-path-basic-shape",
"type": "value",
"value": "<basic-shape>"
},
{
"name": "<coord-box>",
"prose": "Defines the box that the <offset-path> sizes into. In CSS contexts, the boxes being referenced are from the element that establishes the containing block for this element. In SVG contexts, all values behave as view-box.",
"href": "https://drafts.fxtf.org/motion-1/#valdef-offset-path-coord-box",
"type": "value",
"value": "<coord-box>"
}
],
"styleDeclaration": [
"offset-path",
"offsetPath"
]
},
{
"name": "offset-distance",
"href": "https://drafts.fxtf.org/motion-1/#propdef-offset-distance",
"value": "<length-percentage>",
"initial": "0",
"appliesTo": "transformable elements",
"inherited": "no",
"percentages": "relative to the offset path length",
"computedValue": "a computed <length-percentage> value",
"canonicalOrder": "per grammar",
"animationType": "by computed value",
"media": "visual",
"styleDeclaration": [
"offset-distance",
"offsetDistance"
]
},
{
"name": "offset-position",
"href": "https://drafts.fxtf.org/motion-1/#propdef-offset-position",
"value": "normal | auto | <position>",
"initial": "normal",
"appliesTo": "transformable elements",
"inherited": "no",
"percentages": "Refer to the size of containing block",
"computedValue": "The normal or auto keywords, or a computed <position>",
"canonicalOrder": "per grammar",
"animationType": "by computed value",
"media": "visual",
"values": [
{
"name": "normal",
"prose": "The element does not have an offset starting position.",
"href": "https://drafts.fxtf.org/motion-1/#valdef-offset-position-normal",
"type": "value",
"value": "normal"
},
{
"name": "auto",
"prose": "The offset starting position is the top-left corner of the box.",
"href": "https://drafts.fxtf.org/motion-1/#valdef-offset-position-auto",
"type": "value",
"value": "auto"
},
{
"name": "<position>",
"prose": "The offset starting position is the result of using the <position> to position a 0x0 object area within the box’s containing block.",
"href": "https://drafts.fxtf.org/motion-1/#valdef-offset-position-position",
"type": "value",
"value": "<position>"
}
],
"styleDeclaration": [
"offset-position",
"offsetPosition"
]
},
{
"name": "offset-anchor",
"href": "https://drafts.fxtf.org/motion-1/#propdef-offset-anchor",
"value": "auto | <position>",
"initial": "auto",
"appliesTo": "transformable elements",
"inherited": "no",
"percentages": "relative to the width and the height of the element’s reference box",
"computedValue": "the auto keyword or a computed <position>",
"canonicalOrder": "per grammar",
"animationType": "by computed value",
"media": "visual",
"values": [
{
"name": "auto",
"prose": "The anchor point is the same as the point indicated by transform-origin. Specifically, the computed value of transform-origin is resolved as a <position> against the element’s reference box.",
"href": "https://drafts.fxtf.org/motion-1/#valdef-offset-anchor-auto",
"type": "value",
"value": "auto"
},
{
"name": "<position>",
"prose": "The anchor point is the result of resolving the <position> against the element’s reference box.",
"href": "https://drafts.fxtf.org/motion-1/#valdef-offset-anchor-position",
"type": "value",
"value": "<position>"
}
],
"styleDeclaration": [
"offset-anchor",
"offsetAnchor"
]
},
{
"name": "offset-rotate",
"href": "https://drafts.fxtf.org/motion-1/#propdef-offset-rotate",
"value": "[ auto | reverse ] || <angle>",
"initial": "auto",
"appliesTo": "transformable elements",
"inherited": "no",
"percentages": "n/a",
"computedValue": "computed <angle> value, optionally preceded by auto",
"canonicalOrder": "per grammar",
"animationType": "by computed value",
"media": "visual",
"values": [
{
"name": "auto",
"prose": "The offset transform will have a rotation component equal to the difference between the offset path’s direction at the offset position and the direction of the positive X axis (that is, a line going toward the right). See SVG’s direction of a path for details on how to calculate this. If specified with an <angle>, the angle is added to the rotation component.",
"href": "https://drafts.fxtf.org/motion-1/#valdef-offset-rotate-auto",
"type": "value",
"value": "auto"
},
{
"name": "reverse",
"prose": "Identical to auto, but adds an additional 180deg to the rotation.",
"href": "https://drafts.fxtf.org/motion-1/#valdef-offset-rotate-reverse",
"type": "value",
"value": "reverse"
},
{
"name": "<angle>",
"prose": "When specified on its own, adds a rotation component to the offset transform of the specified angle. (That is, offset-rotate: 45deg; is similar to transform: rotate(45deg); it’s just ordered to be part of the offset transform.)",
"href": "https://drafts.fxtf.org/motion-1/#valdef-offset-rotate-angle",
"type": "value",
"value": "<angle>"
}
],
"styleDeclaration": [
"offset-rotate",
"offsetRotate"
]
},
{
"name": "offset",
"href": "https://drafts.fxtf.org/motion-1/#propdef-offset",
"value": "[ <'offset-position'>? [ <'offset-path'> [ <'offset-distance'> || <'offset-rotate'> ]? ]? ]! [ / <'offset-anchor'> ]?",
"initial": "see individual properties",
"appliesTo": "transformable elements",
"inherited": "see individual properties",
"percentages": "see individual properties",
"computedValue": "see individual properties",
"animationType": "see individual properties",
"canonicalOrder": "per grammar",
"styleDeclaration": [
"offset"
]
}
],
"atrules": [],
"selectors": [],
"values": [
{
"name": "<offset-path>",
"href": "https://drafts.fxtf.org/motion-1/#typedef-offset-path",
"type": "type",
"value": "<ray()> | <url> | <basic-shape>"
},
{
"name": "ray()",
"href": "https://drafts.fxtf.org/motion-1/#funcdef-ray",
"type": "function",
"value": "ray( <angle> && <ray-size>? && contain? && [at <position>]? )",
"values": [
{
"name": "<angle>",
"prose": "The offset path is a single line segment that starts from the offset starting position and proceeds in the direction defined by the specified <angle>. (Its length is determined by the other arguments.) As with gradient functions, <angle> values are interpreted as bearing angles, with 0deg pointing up and positive angles representing clockwise rotation.",
"href": "https://drafts.fxtf.org/motion-1/#valdef-ray-angle",
"type": "value",
"value": "<angle>"
},
{
"name": "<ray-size>",
"prose": "Specifies the length of the offset path (the distance between the offset-distance: 0% and offset-distance: 100% points) relative to the containing box. If no <ray-size> is specified it defaults to closest-side. Individual keywords are:",
"href": "https://drafts.fxtf.org/motion-1/#valdef-ray-ray-size",
"type": "value",
"value": "<ray-size>"
},
{
"name": "contain",
"prose": "The length of the offset path is reduced so that the element stays within the containing block even at offset-distance: 100%. Specifically, the path’s length is reduced by half the width or half the height of the element’s border box, whichever is larger, and floored at zero.",
"href": "https://drafts.fxtf.org/motion-1/#valdef-ray-contain",
"type": "value",
"value": "contain"
},
{
"name": "at <position>",
"prose": "Specifies the origin of the ray, where the ray’s line begins (the 0% position). It’s resolved by using the <position> to position a 0x0 object area within the box’s containing block. If omitted, it uses the offset starting position of the element, given by offset-position. If the element doesn’t have an offset starting position either, it behaves as at center.",
"href": "https://drafts.fxtf.org/motion-1/#valdef-ray-at-position",
"type": "value",
"value": "at <position>"
}
]
},
{
"name": "<ray-size>",
"href": "https://drafts.fxtf.org/motion-1/#typedef-ray-size",
"type": "type",
"value": "closest-side | closest-corner | farthest-side | farthest-corner | sides",
"values": [
{
"name": "closest-side",
"prose": "The distance from the ray’s starting point to whichever side of the containing block is closest.",
"href": "https://drafts.fxtf.org/motion-1/#size-closest-side",
"type": "value",
"value": "closest-side"
},
{
"name": "closest-corner",
"prose": "The distance from the ray’s starting point to whichever corner of the containing block is closest.",
"href": "https://drafts.fxtf.org/motion-1/#size-closest-corner",
"type": "value",
"value": "closest-corner"
},
{
"name": "farthest-side",
"prose": "The distance from the ray’s starting point to whichever side of the containing block is farthest.",
"href": "https://drafts.fxtf.org/motion-1/#size-farthest-side",
"type": "value",
"value": "farthest-side"
},
{
"name": "farthest-corner",
"prose": "The distance from the ray’s starting point to whichever corner of the containing block is farthest.",
"href": "https://drafts.fxtf.org/motion-1/#size-farthest-corner",
"type": "value",
"value": "farthest-corner"
},
{
"name": "sides",
"prose": "The distance from the ray’s starting point to the point where the offset path intersects the containing block’s boundary. If the ray’s starting point is on the containing block’s boundary, or outside its bounds entirely, the distance is zero.",
"href": "https://drafts.fxtf.org/motion-1/#size-sides",
"type": "value",
"value": "sides"
}
]
}
]
}