blitz-pdf 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +355 -2
  3. package/THIRD_PARTY_NOTICES.md +25 -0
  4. package/assets/icon.svg +4 -0
  5. package/dist/api.d.ts +7 -0
  6. package/dist/api.d.ts.map +1 -0
  7. package/dist/api.js +46 -0
  8. package/dist/api.js.map +1 -0
  9. package/dist/assets.d.ts +7 -0
  10. package/dist/assets.d.ts.map +1 -0
  11. package/dist/assets.js +52 -0
  12. package/dist/assets.js.map +1 -0
  13. package/dist/browser.d.ts +3 -0
  14. package/dist/browser.d.ts.map +1 -0
  15. package/dist/browser.js +3 -0
  16. package/dist/browser.js.map +1 -0
  17. package/dist/node.d.ts +3 -0
  18. package/dist/node.d.ts.map +1 -0
  19. package/dist/node.js +10 -0
  20. package/dist/node.js.map +1 -0
  21. package/dist/options.d.ts +24 -0
  22. package/dist/options.d.ts.map +1 -0
  23. package/dist/options.js +135 -0
  24. package/dist/options.js.map +1 -0
  25. package/dist/types.d.ts +51 -0
  26. package/dist/types.d.ts.map +1 -0
  27. package/dist/types.js +2 -0
  28. package/dist/types.js.map +1 -0
  29. package/examples/bun.ts +8 -0
  30. package/examples/german-invoice/README.md +70 -0
  31. package/examples/german-invoice/data.mjs +83 -0
  32. package/examples/german-invoice/invoice.css +59 -0
  33. package/examples/german-invoice/template.mjs +49 -0
  34. package/examples/german-invoice.mjs +20 -0
  35. package/examples/invoice.html +29 -0
  36. package/examples/node.mjs +8 -0
  37. package/examples/pagination.html +40 -0
  38. package/examples/pagination.mjs +8 -0
  39. package/licenses/DejaVu.txt +187 -0
  40. package/licenses/RUST_DEPENDENCIES.txt +11577 -0
  41. package/package.json +89 -4
  42. package/src/api.ts +44 -0
  43. package/src/assets.ts +43 -0
  44. package/src/browser.ts +6 -0
  45. package/src/node.ts +12 -0
  46. package/src/options.ts +101 -0
  47. package/src/types.ts +49 -0
  48. package/vendor/README.md +17 -0
  49. package/vendor/stylo/.cargo-ok +1 -0
  50. package/vendor/stylo/.cargo_vcs_info.json +6 -0
  51. package/vendor/stylo/Cargo.lock +1485 -0
  52. package/vendor/stylo/Cargo.toml +274 -0
  53. package/vendor/stylo/LICENSE +373 -0
  54. package/vendor/stylo/README.md +6 -0
  55. package/vendor/stylo/applicable_declarations.rs +328 -0
  56. package/vendor/stylo/author_styles.rs +79 -0
  57. package/vendor/stylo/bezier.rs +176 -0
  58. package/vendor/stylo/bloom.rs +414 -0
  59. package/vendor/stylo/build.rs +91 -0
  60. package/vendor/stylo/build_gecko.rs +393 -0
  61. package/vendor/stylo/color/color_function.rs +601 -0
  62. package/vendor/stylo/color/component.rs +207 -0
  63. package/vendor/stylo/color/convert.rs +935 -0
  64. package/vendor/stylo/color/gamut/raytrace.rs +265 -0
  65. package/vendor/stylo/color/gamut.rs +227 -0
  66. package/vendor/stylo/color/mix.rs +645 -0
  67. package/vendor/stylo/color/mod.rs +750 -0
  68. package/vendor/stylo/color/parsing.rs +770 -0
  69. package/vendor/stylo/color/to_css.rs +297 -0
  70. package/vendor/stylo/context.rs +716 -0
  71. package/vendor/stylo/counter_style/mod.rs +754 -0
  72. package/vendor/stylo/counter_style/predefined.rs +61 -0
  73. package/vendor/stylo/counter_style/update_predefined.py +35 -0
  74. package/vendor/stylo/custom_properties.rs +2023 -0
  75. package/vendor/stylo/custom_properties_map.rs +220 -0
  76. package/vendor/stylo/data.rs +693 -0
  77. package/vendor/stylo/device/gecko.rs +486 -0
  78. package/vendor/stylo/device/mod.rs +304 -0
  79. package/vendor/stylo/device/servo.rs +507 -0
  80. package/vendor/stylo/dom.rs +1164 -0
  81. package/vendor/stylo/dom_apis.rs +937 -0
  82. package/vendor/stylo/driver.rs +172 -0
  83. package/vendor/stylo/error_reporting.rs +484 -0
  84. package/vendor/stylo/font_face.rs +558 -0
  85. package/vendor/stylo/font_metrics.rs +124 -0
  86. package/vendor/stylo/gecko/anon_boxes.toml +113 -0
  87. package/vendor/stylo/gecko/arc_types.rs +211 -0
  88. package/vendor/stylo/gecko/conversions.rs +59 -0
  89. package/vendor/stylo/gecko/data.rs +222 -0
  90. package/vendor/stylo/gecko/media_features.rs +971 -0
  91. package/vendor/stylo/gecko/mod.rs +20 -0
  92. package/vendor/stylo/gecko/non_ts_pseudo_class_list.rs +119 -0
  93. package/vendor/stylo/gecko/pseudo_element.rs +640 -0
  94. package/vendor/stylo/gecko/pseudo_element_definition.mako.rs +298 -0
  95. package/vendor/stylo/gecko/pseudo_elements.py +137 -0
  96. package/vendor/stylo/gecko/pseudo_elements.toml +197 -0
  97. package/vendor/stylo/gecko/regen_pseudo_elements.py +33 -0
  98. package/vendor/stylo/gecko/restyle_damage.rs +127 -0
  99. package/vendor/stylo/gecko/selector_parser.rs +627 -0
  100. package/vendor/stylo/gecko/snapshot.rs +202 -0
  101. package/vendor/stylo/gecko/snapshot_helpers.rs +334 -0
  102. package/vendor/stylo/gecko/traversal.rs +52 -0
  103. package/vendor/stylo/gecko/wrapper.rs +2258 -0
  104. package/vendor/stylo/gecko_bindings/mod.rs +34 -0
  105. package/vendor/stylo/gecko_bindings/sugar/mod.rs +12 -0
  106. package/vendor/stylo/gecko_bindings/sugar/ns_com_ptr.rs +15 -0
  107. package/vendor/stylo/gecko_bindings/sugar/ns_compatibility.rs +19 -0
  108. package/vendor/stylo/gecko_bindings/sugar/ns_style_auto_array.rs +111 -0
  109. package/vendor/stylo/gecko_bindings/sugar/origin_flags.rs +31 -0
  110. package/vendor/stylo/gecko_bindings/sugar/ownership.rs +70 -0
  111. package/vendor/stylo/gecko_bindings/sugar/refptr.rs +299 -0
  112. package/vendor/stylo/gecko_string_cache/mod.rs +543 -0
  113. package/vendor/stylo/gecko_string_cache/namespace.rs +106 -0
  114. package/vendor/stylo/global_style_data.rs +224 -0
  115. package/vendor/stylo/invalidation/element/document_state.rs +156 -0
  116. package/vendor/stylo/invalidation/element/element_wrapper.rs +432 -0
  117. package/vendor/stylo/invalidation/element/invalidation_map.rs +1631 -0
  118. package/vendor/stylo/invalidation/element/invalidator.rs +1470 -0
  119. package/vendor/stylo/invalidation/element/mod.rs +13 -0
  120. package/vendor/stylo/invalidation/element/relative_selector.rs +1399 -0
  121. package/vendor/stylo/invalidation/element/restyle_hints.rs +226 -0
  122. package/vendor/stylo/invalidation/element/state_and_attributes.rs +756 -0
  123. package/vendor/stylo/invalidation/media_queries.rs +144 -0
  124. package/vendor/stylo/invalidation/mod.rs +10 -0
  125. package/vendor/stylo/invalidation/stylesheets.rs +745 -0
  126. package/vendor/stylo/invalidation/viewport_units.rs +71 -0
  127. package/vendor/stylo/lib.rs +336 -0
  128. package/vendor/stylo/logical_geometry.rs +1684 -0
  129. package/vendor/stylo/macros.rs +70 -0
  130. package/vendor/stylo/matching.rs +1226 -0
  131. package/vendor/stylo/media_queries/media_list.rs +168 -0
  132. package/vendor/stylo/media_queries/media_query.rs +190 -0
  133. package/vendor/stylo/media_queries/mod.rs +13 -0
  134. package/vendor/stylo/parallel.rs +205 -0
  135. package/vendor/stylo/parser.rs +276 -0
  136. package/vendor/stylo/piecewise_linear.rs +282 -0
  137. package/vendor/stylo/prefs.rs +33 -0
  138. package/vendor/stylo/properties/build.py +119 -0
  139. package/vendor/stylo/properties/cascade.rs +2704 -0
  140. package/vendor/stylo/properties/computed_value_flags.rs +206 -0
  141. package/vendor/stylo/properties/counted_unknown_properties.py +104 -0
  142. package/vendor/stylo/properties/counter_style_descriptors.toml +45 -0
  143. package/vendor/stylo/properties/data.py +1375 -0
  144. package/vendor/stylo/properties/declaration_block.rs +1788 -0
  145. package/vendor/stylo/properties/font_face_descriptors.toml +50 -0
  146. package/vendor/stylo/properties/gecko.mako.rs +1555 -0
  147. package/vendor/stylo/properties/helpers/animated_properties.mako.rs +800 -0
  148. package/vendor/stylo/properties/helpers.mako.rs +812 -0
  149. package/vendor/stylo/properties/longhands.toml +4305 -0
  150. package/vendor/stylo/properties/mod.rs +1857 -0
  151. package/vendor/stylo/properties/properties.html.mako +31 -0
  152. package/vendor/stylo/properties/properties.mako.rs +3103 -0
  153. package/vendor/stylo/properties/property_descriptors.toml +18 -0
  154. package/vendor/stylo/properties/shorthands.rs +4241 -0
  155. package/vendor/stylo/properties/shorthands.toml +575 -0
  156. package/vendor/stylo/properties/vendored_python/mako-1.3.10-py3-none-any.whl +0 -0
  157. package/vendor/stylo/properties/vendored_python/markupsafe/LICENSE.txt +28 -0
  158. package/vendor/stylo/properties/vendored_python/markupsafe/__init__.py +384 -0
  159. package/vendor/stylo/properties/vendored_python/toml-0.10.2-py2.py3-none-any.whl +0 -0
  160. package/vendor/stylo/properties/view_transition_descriptors.toml +11 -0
  161. package/vendor/stylo/properties_and_values/mod.rs +12 -0
  162. package/vendor/stylo/properties_and_values/registry.rs +65 -0
  163. package/vendor/stylo/properties_and_values/rule.rs +331 -0
  164. package/vendor/stylo/properties_and_values/syntax/ascii.rs +60 -0
  165. package/vendor/stylo/properties_and_values/syntax/data_type.rs +146 -0
  166. package/vendor/stylo/properties_and_values/syntax/mod.rs +437 -0
  167. package/vendor/stylo/properties_and_values/value.rs +758 -0
  168. package/vendor/stylo/queries/condition.rs +996 -0
  169. package/vendor/stylo/queries/feature.rs +199 -0
  170. package/vendor/stylo/queries/feature_expression.rs +1170 -0
  171. package/vendor/stylo/queries/mod.rs +19 -0
  172. package/vendor/stylo/queries/values.rs +46 -0
  173. package/vendor/stylo/rule_cache.rs +267 -0
  174. package/vendor/stylo/rule_collector.rs +554 -0
  175. package/vendor/stylo/rule_tree/core.rs +787 -0
  176. package/vendor/stylo/rule_tree/level.rs +396 -0
  177. package/vendor/stylo/rule_tree/map.rs +201 -0
  178. package/vendor/stylo/rule_tree/mod.rs +427 -0
  179. package/vendor/stylo/rule_tree/source.rs +80 -0
  180. package/vendor/stylo/rule_tree/unsafe_box.rs +78 -0
  181. package/vendor/stylo/scoped_tls.rs +80 -0
  182. package/vendor/stylo/selector_map.rs +1050 -0
  183. package/vendor/stylo/selector_parser.rs +305 -0
  184. package/vendor/stylo/servo/animation.rs +1922 -0
  185. package/vendor/stylo/servo/attr.rs +714 -0
  186. package/vendor/stylo/servo/encoding_support.rs +81 -0
  187. package/vendor/stylo/servo/media_features.rs +254 -0
  188. package/vendor/stylo/servo/mod.rs +16 -0
  189. package/vendor/stylo/servo/restyle_damage.rs +215 -0
  190. package/vendor/stylo/servo/selector_parser.rs +1036 -0
  191. package/vendor/stylo/servo/shadow_parts.rs +207 -0
  192. package/vendor/stylo/shared_lock.rs +271 -0
  193. package/vendor/stylo/sharing/checks.rs +281 -0
  194. package/vendor/stylo/sharing/mod.rs +1000 -0
  195. package/vendor/stylo/simple_buckets_map.rs +52 -0
  196. package/vendor/stylo/str.rs +168 -0
  197. package/vendor/stylo/style_adjuster.rs +1086 -0
  198. package/vendor/stylo/style_resolver.rs +658 -0
  199. package/vendor/stylo/stylesheet_set.rs +658 -0
  200. package/vendor/stylo/stylesheets/appearance_base_rule.rs +51 -0
  201. package/vendor/stylo/stylesheets/container_rule.rs +769 -0
  202. package/vendor/stylo/stylesheets/counter_style_rule.rs +7 -0
  203. package/vendor/stylo/stylesheets/document_rule.rs +272 -0
  204. package/vendor/stylo/stylesheets/font_face_rule.rs +7 -0
  205. package/vendor/stylo/stylesheets/font_feature_values_rule.rs +481 -0
  206. package/vendor/stylo/stylesheets/font_palette_values_rule.rs +304 -0
  207. package/vendor/stylo/stylesheets/import_rule.rs +259 -0
  208. package/vendor/stylo/stylesheets/keyframes_rule.rs +733 -0
  209. package/vendor/stylo/stylesheets/layer_rule.rs +221 -0
  210. package/vendor/stylo/stylesheets/loader.rs +29 -0
  211. package/vendor/stylo/stylesheets/margin_rule.rs +190 -0
  212. package/vendor/stylo/stylesheets/media_rule.rs +191 -0
  213. package/vendor/stylo/stylesheets/mod.rs +918 -0
  214. package/vendor/stylo/stylesheets/namespace_rule.rs +43 -0
  215. package/vendor/stylo/stylesheets/nested_declarations_rule.rs +51 -0
  216. package/vendor/stylo/stylesheets/origin.rs +249 -0
  217. package/vendor/stylo/stylesheets/page_rule.rs +354 -0
  218. package/vendor/stylo/stylesheets/position_try_rule.rs +68 -0
  219. package/vendor/stylo/stylesheets/property_rule.rs +5 -0
  220. package/vendor/stylo/stylesheets/rule_list.rs +167 -0
  221. package/vendor/stylo/stylesheets/rule_parser.rs +1189 -0
  222. package/vendor/stylo/stylesheets/rules_iterator.rs +397 -0
  223. package/vendor/stylo/stylesheets/scope_rule.rs +511 -0
  224. package/vendor/stylo/stylesheets/starting_style_rule.rs +54 -0
  225. package/vendor/stylo/stylesheets/style_rule.rs +80 -0
  226. package/vendor/stylo/stylesheets/stylesheet.rs +570 -0
  227. package/vendor/stylo/stylesheets/supports_rule.rs +486 -0
  228. package/vendor/stylo/stylesheets/view_transition_rule.rs +81 -0
  229. package/vendor/stylo/stylist.rs +5076 -0
  230. package/vendor/stylo/thread_state.rs +87 -0
  231. package/vendor/stylo/traversal.rs +765 -0
  232. package/vendor/stylo/traversal_flags.rs +68 -0
  233. package/vendor/stylo/typed_om/mod.rs +981 -0
  234. package/vendor/stylo/typed_om/numeric.rs +128 -0
  235. package/vendor/stylo/typed_om/numeric_declaration.rs +93 -0
  236. package/vendor/stylo/typed_om/numeric_type.rs +640 -0
  237. package/vendor/stylo/typed_om/sum_value.rs +426 -0
  238. package/vendor/stylo/url/gecko.rs +367 -0
  239. package/vendor/stylo/url/mod.rs +71 -0
  240. package/vendor/stylo/url/servo.rs +239 -0
  241. package/vendor/stylo/use_counters/mod.rs +137 -0
  242. package/vendor/stylo/values/animated/color.rs +103 -0
  243. package/vendor/stylo/values/animated/effects.rs +26 -0
  244. package/vendor/stylo/values/animated/font.rs +37 -0
  245. package/vendor/stylo/values/animated/grid.rs +161 -0
  246. package/vendor/stylo/values/animated/lists.rs +141 -0
  247. package/vendor/stylo/values/animated/mod.rs +550 -0
  248. package/vendor/stylo/values/animated/svg.rs +46 -0
  249. package/vendor/stylo/values/animated/text.rs +58 -0
  250. package/vendor/stylo/values/animated/transform.rs +1592 -0
  251. package/vendor/stylo/values/computed/align.rs +90 -0
  252. package/vendor/stylo/values/computed/angle.rs +130 -0
  253. package/vendor/stylo/values/computed/animation.rs +124 -0
  254. package/vendor/stylo/values/computed/background.rs +13 -0
  255. package/vendor/stylo/values/computed/basic_shape.rs +267 -0
  256. package/vendor/stylo/values/computed/border.rs +163 -0
  257. package/vendor/stylo/values/computed/box.rs +267 -0
  258. package/vendor/stylo/values/computed/calc.rs +334 -0
  259. package/vendor/stylo/values/computed/color.rs +161 -0
  260. package/vendor/stylo/values/computed/column.rs +11 -0
  261. package/vendor/stylo/values/computed/corner_shape.rs +155 -0
  262. package/vendor/stylo/values/computed/counters.rs +26 -0
  263. package/vendor/stylo/values/computed/easing.rs +109 -0
  264. package/vendor/stylo/values/computed/effects.rs +30 -0
  265. package/vendor/stylo/values/computed/flex.rs +19 -0
  266. package/vendor/stylo/values/computed/font.rs +1517 -0
  267. package/vendor/stylo/values/computed/image.rs +273 -0
  268. package/vendor/stylo/values/computed/length.rs +576 -0
  269. package/vendor/stylo/values/computed/length_percentage.rs +1055 -0
  270. package/vendor/stylo/values/computed/list.rs +16 -0
  271. package/vendor/stylo/values/computed/mod.rs +1141 -0
  272. package/vendor/stylo/values/computed/motion.rs +73 -0
  273. package/vendor/stylo/values/computed/outline.rs +7 -0
  274. package/vendor/stylo/values/computed/page.rs +77 -0
  275. package/vendor/stylo/values/computed/param.rs +9 -0
  276. package/vendor/stylo/values/computed/percentage.rs +143 -0
  277. package/vendor/stylo/values/computed/position.rs +273 -0
  278. package/vendor/stylo/values/computed/ratio.rs +88 -0
  279. package/vendor/stylo/values/computed/rect.rs +19 -0
  280. package/vendor/stylo/values/computed/resolution.rs +76 -0
  281. package/vendor/stylo/values/computed/svg.rs +66 -0
  282. package/vendor/stylo/values/computed/table.rs +7 -0
  283. package/vendor/stylo/values/computed/text.rs +199 -0
  284. package/vendor/stylo/values/computed/time.rs +83 -0
  285. package/vendor/stylo/values/computed/transform.rs +559 -0
  286. package/vendor/stylo/values/computed/tree_counting.rs +30 -0
  287. package/vendor/stylo/values/computed/ui.rs +23 -0
  288. package/vendor/stylo/values/computed/url.rs +12 -0
  289. package/vendor/stylo/values/distance.rs +139 -0
  290. package/vendor/stylo/values/generics/animation.rs +363 -0
  291. package/vendor/stylo/values/generics/background.rs +65 -0
  292. package/vendor/stylo/values/generics/basic_shape.rs +1389 -0
  293. package/vendor/stylo/values/generics/border.rs +303 -0
  294. package/vendor/stylo/values/generics/box.rs +552 -0
  295. package/vendor/stylo/values/generics/calc.rs +2986 -0
  296. package/vendor/stylo/values/generics/color.rs +318 -0
  297. package/vendor/stylo/values/generics/column.rs +44 -0
  298. package/vendor/stylo/values/generics/counters.rs +320 -0
  299. package/vendor/stylo/values/generics/easing.rs +132 -0
  300. package/vendor/stylo/values/generics/effects.rs +131 -0
  301. package/vendor/stylo/values/generics/flex.rs +34 -0
  302. package/vendor/stylo/values/generics/font.rs +376 -0
  303. package/vendor/stylo/values/generics/grid.rs +962 -0
  304. package/vendor/stylo/values/generics/image.rs +653 -0
  305. package/vendor/stylo/values/generics/length.rs +656 -0
  306. package/vendor/stylo/values/generics/mod.rs +303 -0
  307. package/vendor/stylo/values/generics/motion.rs +274 -0
  308. package/vendor/stylo/values/generics/page.rs +167 -0
  309. package/vendor/stylo/values/generics/position.rs +669 -0
  310. package/vendor/stylo/values/generics/ratio.rs +88 -0
  311. package/vendor/stylo/values/generics/rect.rs +147 -0
  312. package/vendor/stylo/values/generics/size.rs +102 -0
  313. package/vendor/stylo/values/generics/svg.rs +226 -0
  314. package/vendor/stylo/values/generics/text.rs +268 -0
  315. package/vendor/stylo/values/generics/transform.rs +1157 -0
  316. package/vendor/stylo/values/generics/ui.rs +147 -0
  317. package/vendor/stylo/values/generics/url.rs +51 -0
  318. package/vendor/stylo/values/mod.rs +820 -0
  319. package/vendor/stylo/values/resolved/animation.rs +33 -0
  320. package/vendor/stylo/values/resolved/color.rs +53 -0
  321. package/vendor/stylo/values/resolved/counters.rs +45 -0
  322. package/vendor/stylo/values/resolved/mod.rs +316 -0
  323. package/vendor/stylo/values/specified/align.rs +711 -0
  324. package/vendor/stylo/values/specified/angle.rs +407 -0
  325. package/vendor/stylo/values/specified/animation.rs +921 -0
  326. package/vendor/stylo/values/specified/background.rs +270 -0
  327. package/vendor/stylo/values/specified/basic_shape.rs +986 -0
  328. package/vendor/stylo/values/specified/border.rs +430 -0
  329. package/vendor/stylo/values/specified/box.rs +2231 -0
  330. package/vendor/stylo/values/specified/calc.rs +1657 -0
  331. package/vendor/stylo/values/specified/color.rs +1210 -0
  332. package/vendor/stylo/values/specified/column.rs +11 -0
  333. package/vendor/stylo/values/specified/corner_shape.rs +152 -0
  334. package/vendor/stylo/values/specified/counters.rs +242 -0
  335. package/vendor/stylo/values/specified/easing.rs +225 -0
  336. package/vendor/stylo/values/specified/effects.rs +421 -0
  337. package/vendor/stylo/values/specified/flex.rs +42 -0
  338. package/vendor/stylo/values/specified/font.rs +2103 -0
  339. package/vendor/stylo/values/specified/frequency.rs +39 -0
  340. package/vendor/stylo/values/specified/grid.rs +407 -0
  341. package/vendor/stylo/values/specified/image.rs +1385 -0
  342. package/vendor/stylo/values/specified/intersection_observer.rs +80 -0
  343. package/vendor/stylo/values/specified/length.rs +2024 -0
  344. package/vendor/stylo/values/specified/list.rs +190 -0
  345. package/vendor/stylo/values/specified/mod.rs +531 -0
  346. package/vendor/stylo/values/specified/motion.rs +316 -0
  347. package/vendor/stylo/values/specified/number.rs +603 -0
  348. package/vendor/stylo/values/specified/outline.rs +69 -0
  349. package/vendor/stylo/values/specified/page.rs +94 -0
  350. package/vendor/stylo/values/specified/param.rs +121 -0
  351. package/vendor/stylo/values/specified/percentage.rs +364 -0
  352. package/vendor/stylo/values/specified/position.rs +2247 -0
  353. package/vendor/stylo/values/specified/ratio.rs +29 -0
  354. package/vendor/stylo/values/specified/rect.rs +28 -0
  355. package/vendor/stylo/values/specified/resolution.rs +237 -0
  356. package/vendor/stylo/values/specified/source_size_list.rs +135 -0
  357. package/vendor/stylo/values/specified/svg.rs +427 -0
  358. package/vendor/stylo/values/specified/svg_path.rs +1115 -0
  359. package/vendor/stylo/values/specified/table.rs +38 -0
  360. package/vendor/stylo/values/specified/text.rs +1561 -0
  361. package/vendor/stylo/values/specified/time.rs +313 -0
  362. package/vendor/stylo/values/specified/transform.rs +599 -0
  363. package/vendor/stylo/values/specified/tree_counting.rs +32 -0
  364. package/vendor/stylo/values/specified/ui.rs +344 -0
  365. package/vendor/stylo/values/specified/url.rs +12 -0
  366. package/vendor/stylo/values/tagged_numeric.rs +253 -0
  367. package/wasm/blitz_pdf.d.ts +67 -0
  368. package/wasm/blitz_pdf.js +699 -0
  369. package/wasm/blitz_pdf_bg.wasm +0 -0
  370. package/wasm/blitz_pdf_bg.wasm.d.ts +20 -0
@@ -0,0 +1,4305 @@
1
+ # This Source Code Form is subject to the terms of the Mozilla Public
2
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
3
+ # file, You can obtain one at http://mozilla.org/MPL/2.0/.
4
+
5
+ # CSS Longhand Properties defined via predefined_type
6
+ #
7
+ # This file contains property definitions that are processed by the build system
8
+ # to generate the property module code.
9
+ #
10
+ # Each section `[property-name]` defines a longhand property with the following fields:
11
+ #
12
+ # Required fields:
13
+ # type - The Rust type name (e.g., "Display", "Color")
14
+ # struct - Which style struct this belongs to ("box", "font", "position", etc.)
15
+ # engine - If this property is specific to one engine, the engine that it applies to
16
+ # spec - URL to the specification
17
+ # affects - What does this property affect? ("layout", "overflow", "paint", "")
18
+ #
19
+ # Optional fields:
20
+ # initial - The computed initial value expression
21
+ # keyword - Description of the keyword.
22
+ # initial_specified_value - Initial specified value (if different from initial)
23
+ # animation_type - "none", "normal", or "discrete" (default: "normal")
24
+ # parse_method - Parse method name (default: "parse")
25
+ # allow_quirks - true/false (default: false)
26
+ # boxed - true/false - whether to box the value
27
+ # vector - A dictionary with:
28
+ # animation_type - repeatable_list / with_zero / none
29
+ # simple_bindings - true/false
30
+ # need_index - true/false
31
+ # separator - "Comma" or "Space" (for vector properties, default comma)
32
+ # keyword - A dictionary with:
33
+ # values - Space separated list of valid values
34
+ # extra_gecko_values
35
+ # gecko_enum_prefix
36
+ # gecko_constant_prefix
37
+ # custom_consts - map with name -> enum mapping
38
+ # gecko_inexhaustive - Whether the gecko enum doesn't cover all keywords
39
+ # gecko_pref - Gecko preference name
40
+ # servo_pref - Servo preference name
41
+ # gecko_ffi_name - Gecko FFI name (defaults to "m" + CamelCase)
42
+ # enabled_in - "content", "chrome", "ua", or ""
43
+ # logical - true/false - whether this is a logical property
44
+ # logical_group - Logical property group name
45
+ # flags - Space-separated flags (e.g., "CAN_ANIMATE_ON_COMPOSITOR")
46
+ # aliases - Property aliases
47
+ # extra_gecko_aliases - Additional property aliases for Gecko, not for Servo.
48
+ # extra_prefixes - Vendor prefixes
49
+ # ignored_when_colors_disabled - true/false
50
+ # has_effect_on_gecko_scrollbars - true/false
51
+ # rule_types_allowed - Which rule types allow this property
52
+ # servo_restyle_damage - Valid values are "repaint", "rebuild_stacking_context", "recalculate_overflow", "rebuild_box".
53
+
54
+ [-moz-box-flex]
55
+ type = "NonNegativeNumber"
56
+ initial = "From::from(0.)"
57
+ struct = "xul"
58
+ engine = "gecko"
59
+ gecko_ffi_name = "mBoxFlex"
60
+ aliases = ["-webkit-box-flex"]
61
+ spec = "Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/box-flex)"
62
+ affects = "layout"
63
+
64
+ # NOTE(heycam): Odd that the initial value is 1 yet 0 is a valid value.
65
+ [-moz-box-ordinal-group]
66
+ type = "Integer"
67
+ initial = "1"
68
+ struct = "xul"
69
+ engine = "gecko"
70
+ parse_method = "parse_non_negative"
71
+ aliases = ["-webkit-box-ordinal-group"]
72
+ gecko_ffi_name = "mBoxOrdinal"
73
+ animation_type = "discrete"
74
+ spec = "Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-box-ordinal-group)"
75
+ affects = "layout"
76
+
77
+ [-moz-default-appearance]
78
+ type = "Appearance"
79
+ initial = "computed::Appearance::None"
80
+ struct = "box"
81
+ servo_pref = "layout.unimplemented"
82
+ animation_type = "none"
83
+ spec = "Internal (not web-exposed)"
84
+ enabled_in = "chrome"
85
+ gecko_ffi_name = "mDefaultAppearance"
86
+ affects = "paint"
87
+
88
+ [-moz-min-font-size-ratio]
89
+ type = "Percentage"
90
+ initial = "computed::Percentage::hundred()"
91
+ struct = "font"
92
+ servo_pref = "layout.unimplemented"
93
+ animation_type = "none"
94
+ gecko_ffi_name = "mMinFontSizeRatio"
95
+ enabled_in = "ua"
96
+ spec = "Nonstandard (Internal-only)"
97
+ affects = "layout"
98
+
99
+ [line-clamp]
100
+ type = "LineClamp"
101
+ initial = "computed::LineClamp::none()"
102
+ struct = "box"
103
+ boxed = true
104
+ engine = "gecko"
105
+ gecko_pref = "layout.css.line-clamp.enabled"
106
+ gecko_ffi_name = "mWebkitLineClamp"
107
+ spec = "https://drafts.csswg.org/css-overflow-4/#propdef-line-clamp"
108
+ affects = "layout"
109
+
110
+ [-x-lang]
111
+ type = "XLang"
112
+ initial = "computed::XLang::get_initial_value()"
113
+ struct = "font"
114
+ animation_type = "none"
115
+ enabled_in = ""
116
+ has_effect_on_gecko_scrollbars = false
117
+ spec = "Internal (not web-exposed)"
118
+ affects = "layout"
119
+
120
+ [-x-text-scale]
121
+ type = "XTextScale"
122
+ initial = "computed::XTextScale::All"
123
+ struct = "font"
124
+ servo_pref = "layout.unimplemented"
125
+ animation_type = "none"
126
+ enabled_in = ""
127
+ has_effect_on_gecko_scrollbars = false
128
+ spec = "Internal (not web-exposed)"
129
+ affects = "layout"
130
+
131
+ [accent-color]
132
+ type = "ColorOrAuto"
133
+ initial = "generics::color::ColorOrAuto::Auto"
134
+ struct = "inherited_ui"
135
+ engine = "gecko"
136
+ spec = "https://drafts.csswg.org/css-ui-4/#widget-accent"
137
+ ignored_when_colors_disabled = true
138
+ affects = "paint"
139
+
140
+ [align-content]
141
+ type = "ContentDistribution"
142
+ initial = "specified::ContentDistribution::normal()"
143
+ struct = "position"
144
+ parse_method = "parse_block"
145
+ spec = "https://drafts.csswg.org/css-align/#propdef-align-content"
146
+ extra_prefixes = ["webkit"]
147
+ animation_type = "discrete"
148
+ servo_restyle_damage = "rebuild_box"
149
+ affects = "layout"
150
+
151
+ [align-items]
152
+ type = "ItemPlacement"
153
+ initial = "specified::ItemPlacement::normal()"
154
+ struct = "position"
155
+ parse_method = "parse_block"
156
+ spec = "https://drafts.csswg.org/css-align/#propdef-align-items"
157
+ extra_prefixes = ["webkit"]
158
+ animation_type = "discrete"
159
+ servo_restyle_damage = "rebuild_box"
160
+ affects = "layout"
161
+
162
+ [align-self]
163
+ type = "SelfAlignment"
164
+ initial = "specified::SelfAlignment::auto()"
165
+ struct = "position"
166
+ parse_method = "parse_block"
167
+ spec = "https://drafts.csswg.org/css-align/#align-self-property"
168
+ extra_prefixes = ["webkit"]
169
+ animation_type = "discrete"
170
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
171
+ affects = "layout"
172
+
173
+ [alignment-baseline]
174
+ type = "AlignmentBaseline"
175
+ initial = "computed::AlignmentBaseline::Baseline"
176
+ struct = "box"
177
+ animation_type = "discrete"
178
+ spec = "https://drafts.csswg.org/css-inline-3/#alignment-baseline"
179
+ servo_restyle_damage = "rebuild_box"
180
+ affects = "layout"
181
+
182
+ [anchor-name]
183
+ type = "AnchorName"
184
+ initial = "computed::AnchorName::none()"
185
+ struct = "box"
186
+ engine = "gecko"
187
+ animation_type = "discrete"
188
+ spec = "https://drafts.csswg.org/css-anchor-position-1/#propdef-anchor-name"
189
+ affects = ""
190
+
191
+ [anchor-scope]
192
+ type = "ScopedName"
193
+ initial = "computed::ScopedName::none()"
194
+ struct = "box"
195
+ engine = "gecko"
196
+ animation_type = "discrete"
197
+ spec = "https://drafts.csswg.org/css-anchor-position-1/#propdef-scope"
198
+ affects = ""
199
+
200
+ [animation-delay]
201
+ type = "Time"
202
+ initial = "computed::Time::zero()"
203
+ struct = "ui"
204
+ vector = { need_index = true }
205
+ animation_type = "none"
206
+ extra_prefixes = ["moz:layout.css.prefixes.animations", "webkit"]
207
+ spec = "https://drafts.csswg.org/css-animations/#propdef-animation-delay"
208
+ rule_types_allowed = ["style", "scope"]
209
+ affects = ""
210
+
211
+ [animation-direction]
212
+ type = "AnimationDirection"
213
+ initial = "computed::AnimationDirection::Normal"
214
+ struct = "ui"
215
+ vector = { need_index = true }
216
+ animation_type = "none"
217
+ extra_prefixes = ["moz:layout.css.prefixes.animations", "webkit"]
218
+ spec = "https://drafts.csswg.org/css-animations/#propdef-animation-direction"
219
+ rule_types_allowed = ["style", "scope"]
220
+ affects = ""
221
+
222
+ [animation-duration]
223
+ type = "AnimationDuration"
224
+ initial = "computed::AnimationDuration::auto()"
225
+ struct = "ui"
226
+ vector = { need_index = true }
227
+ animation_type = "none"
228
+ extra_prefixes = ["moz:layout.css.prefixes.animations", "webkit"]
229
+ spec = "https://drafts.csswg.org/css-animations-2/#animation-duration"
230
+ affects = ""
231
+
232
+ [animation-fill-mode]
233
+ type = "AnimationFillMode"
234
+ initial = "computed::AnimationFillMode::None"
235
+ struct = "ui"
236
+ vector = { need_index = true }
237
+ animation_type = "none"
238
+ extra_prefixes = ["moz:layout.css.prefixes.animations", "webkit"]
239
+ spec = "https://drafts.csswg.org/css-animations/#propdef-animation-fill-mode"
240
+ rule_types_allowed = ["style", "scope"]
241
+ affects = ""
242
+
243
+ [animation-iteration-count]
244
+ type = "AnimationIterationCount"
245
+ initial = "computed::AnimationIterationCount::one()"
246
+ struct = "ui"
247
+ vector = { need_index = true }
248
+ animation_type = "none"
249
+ extra_prefixes = ["moz:layout.css.prefixes.animations", "webkit"]
250
+ rule_types_allowed = ["style", "scope"]
251
+ spec = "https://drafts.csswg.org/css-animations/#propdef-animation-iteration-count"
252
+ affects = ""
253
+
254
+ [animation-name]
255
+ type = "AnimationName"
256
+ initial = "computed::AnimationName::none()"
257
+ struct = "ui"
258
+ vector = { need_index = true }
259
+ animation_type = "none"
260
+ extra_prefixes = ["moz:layout.css.prefixes.animations", "webkit"]
261
+ rule_types_allowed = ["style", "scope"]
262
+ spec = "https://drafts.csswg.org/css-animations/#propdef-animation-name"
263
+ affects = ""
264
+
265
+ [animation-play-state]
266
+ type = "AnimationPlayState"
267
+ initial = "computed::AnimationPlayState::Running"
268
+ struct = "ui"
269
+ vector = { need_index = true }
270
+ animation_type = "none"
271
+ extra_prefixes = ["moz:layout.css.prefixes.animations", "webkit"]
272
+ spec = "https://drafts.csswg.org/css-animations/#propdef-animation-play-state"
273
+ rule_types_allowed = ["style", "scope"]
274
+ affects = ""
275
+
276
+ [animation-range-end]
277
+ type = "AnimationRangeEnd"
278
+ initial = "computed::AnimationRangeEnd::normal()"
279
+ struct = "ui"
280
+ servo_pref = "layout.unimplemented"
281
+ vector = { need_index = true }
282
+ animation_type = "none"
283
+ gecko_pref = "layout.css.scroll-driven-animations.enabled"
284
+ spec = "https://drafts.csswg.org/scroll-animations-1/#animation-range-end"
285
+ rule_types_allowed = ["style", "scope"]
286
+ affects = ""
287
+
288
+ [animation-range-start]
289
+ type = "AnimationRangeStart"
290
+ initial = "computed::AnimationRangeStart::normal()"
291
+ struct = "ui"
292
+ servo_pref = "layout.unimplemented"
293
+ vector = { need_index = true }
294
+ animation_type = "none"
295
+ gecko_pref = "layout.css.scroll-driven-animations.enabled"
296
+ spec = "https://drafts.csswg.org/scroll-animations-1/#animation-range-start"
297
+ rule_types_allowed = ["style", "scope"]
298
+ affects = ""
299
+
300
+ [animation-timeline]
301
+ type = "AnimationTimeline"
302
+ initial = "computed::AnimationTimeline::auto()"
303
+ struct = "ui"
304
+ servo_pref = "layout.unimplemented"
305
+ vector = { need_index = true }
306
+ animation_type = "none"
307
+ gecko_pref = "layout.css.scroll-driven-animations.enabled"
308
+ spec = "https://drafts.csswg.org/css-animations-2/#propdef-animation-timeline"
309
+ rule_types_allowed = ["style", "scope"]
310
+ affects = ""
311
+
312
+ [animation-timing-function]
313
+ type = "TimingFunction"
314
+ initial = "computed::TimingFunction::ease()"
315
+ struct = "ui"
316
+ vector = { need_index = true }
317
+ animation_type = "none"
318
+ extra_prefixes = ["moz:layout.css.prefixes.animations", "webkit"]
319
+ spec = "https://drafts.csswg.org/css-transitions/#propdef-animation-timing-function"
320
+ affects = ""
321
+
322
+ [appearance]
323
+ type = "Appearance"
324
+ initial = "computed::Appearance::None"
325
+ struct = "box"
326
+ servo_pref = "layout.unimplemented"
327
+ extra_prefixes = ["webkit"]
328
+ spec = "https://drafts.csswg.org/css-ui-4/#propdef-appearance"
329
+ animation_type = "discrete"
330
+ gecko_ffi_name = "mAppearance"
331
+ affects = "paint"
332
+
333
+ [aspect-ratio]
334
+ type = "AspectRatio"
335
+ boxed = true
336
+ initial = "computed::AspectRatio::auto()"
337
+ struct = "position"
338
+ spec = "https://drafts.csswg.org/css-sizing-4/#aspect-ratio"
339
+ servo_restyle_damage = "rebuild_box"
340
+ affects = "layout"
341
+
342
+ [backdrop-filter]
343
+ type = "Filter"
344
+ struct = "effects"
345
+ vector = { simple_bindings = true, separator = "Space", animation_type = "with_zero" }
346
+ gecko_ffi_name = "mBackdropFilters"
347
+ gecko_pref = "layout.css.backdrop-filter.enabled"
348
+ servo_pref = "layout.unimplemented"
349
+ spec = "https://drafts.fxtf.org/filter-effects-2/#propdef-backdrop-filter"
350
+ affects = "overflow"
351
+
352
+ [background-color]
353
+ type = "Color"
354
+ initial = "computed::Color::TRANSPARENT_BLACK"
355
+ struct = "background"
356
+ spec = "https://drafts.csswg.org/css-backgrounds/#background-color"
357
+ ignored_when_colors_disabled = true
358
+ allow_quirks = true
359
+ flags = "CAN_ANIMATE_ON_COMPOSITOR"
360
+ servo_restyle_damage = "repaint"
361
+ affects = "paint"
362
+
363
+ [background-image]
364
+ type = "Image"
365
+ initial = "computed::Image::None"
366
+ struct = "background"
367
+ spec = "https://drafts.csswg.org/css-backgrounds/#the-background-image"
368
+ vector = {}
369
+ animation_type = "discrete"
370
+ ignored_when_colors_disabled = true
371
+ servo_restyle_damage = "repaint"
372
+ affects = "paint"
373
+
374
+ [background-position-x]
375
+ type = "position::HorizontalPosition"
376
+ initial = "computed::LengthPercentage::zero_percent()"
377
+ struct = "background"
378
+ initial_specified_value = "SpecifiedValue::initial_specified_value()"
379
+ flags = "SCROLL_LINKED_EFFECTIVE"
380
+ spec = "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-position-x"
381
+ vector = { animation_type = "repeatable_list" }
382
+ servo_restyle_damage = "repaint"
383
+ affects = "paint"
384
+
385
+ [background-position-y]
386
+ type = "position::VerticalPosition"
387
+ initial = "computed::LengthPercentage::zero_percent()"
388
+ struct = "background"
389
+ initial_specified_value = "SpecifiedValue::initial_specified_value()"
390
+ flags = "SCROLL_LINKED_EFFECTIVE"
391
+ spec = "https://drafts.csswg.org/css-backgrounds-4/#propdef-background-position-y"
392
+ vector = { animation_type = "repeatable_list" }
393
+ servo_restyle_damage = "repaint"
394
+ affects = "paint"
395
+
396
+ [background-repeat]
397
+ type = "BackgroundRepeat"
398
+ initial = "computed::BackgroundRepeat::repeat()"
399
+ struct = "background"
400
+ animation_type = "discrete"
401
+ vector = {}
402
+ spec = "https://drafts.csswg.org/css-backgrounds/#the-background-repeat"
403
+ servo_restyle_damage = "repaint"
404
+ affects = "paint"
405
+
406
+ [background-size]
407
+ type = "BackgroundSize"
408
+ initial = "computed::BackgroundSize::auto()"
409
+ struct = "background"
410
+ spec = "https://drafts.csswg.org/css-backgrounds/#the-background-size"
411
+ vector = { animation_type = "repeatable_list" }
412
+ extra_prefixes = ["webkit"]
413
+ servo_restyle_damage = "repaint"
414
+ affects = "paint"
415
+
416
+ [baseline-shift]
417
+ type = "BaselineShift"
418
+ initial = "computed::BaselineShift::zero()"
419
+ struct = "box"
420
+ spec = "https://drafts.csswg.org/css-inline-3/#baseline-shift"
421
+ servo_restyle_damage = "rebuild_box"
422
+ affects = "layout"
423
+
424
+ [baseline-source]
425
+ type = "BaselineSource"
426
+ initial = "computed::BaselineSource::Auto"
427
+ struct = "box"
428
+ animation_type = "discrete"
429
+ spec = "https://drafts.csswg.org/css-inline-3/#baseline-source"
430
+ servo_restyle_damage = "rebuild_box"
431
+ affects = "layout"
432
+
433
+ [block-size]
434
+ type = "Size"
435
+ initial = "computed::Size::auto()"
436
+ struct = "position"
437
+ logical = true
438
+ logical_group = "size"
439
+ parse_method = "parse_size_for_width_or_height"
440
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-block-size"
441
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
442
+ servo_restyle_damage = "rebuild_box"
443
+ affects = "layout"
444
+
445
+ [border-spacing]
446
+ type = "BorderSpacing"
447
+ initial = "computed::BorderSpacing::zero()"
448
+ struct = "inherited_table"
449
+ spec = "https://drafts.csswg.org/css-tables/#propdef-border-spacing"
450
+ servo_restyle_damage = "rebuild_box"
451
+ affects = "layout"
452
+
453
+ [bottom]
454
+ type = "Inset"
455
+ initial = "computed::Inset::auto()"
456
+ struct = "position"
457
+ flags = "SCROLL_LINKED_EFFECTIVE"
458
+ spec = "https://www.w3.org/TR/CSS2/visuren.html#propdef-bottom"
459
+ allow_quirks = true
460
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
461
+ gecko_ffi_name = "mOffset.2"
462
+ servo_restyle_damage = "rebuild_box"
463
+ logical_group = "inset"
464
+ affects = "layout"
465
+
466
+ [box-shadow]
467
+ type = "BoxShadow"
468
+ struct = "effects"
469
+ vector = { simple_bindings = true, animation_type = "with_zero" }
470
+ extra_prefixes = ["webkit"]
471
+ ignored_when_colors_disabled = true
472
+ spec = "https://drafts.csswg.org/css-backgrounds/#box-shadow"
473
+ affects = "overflow"
474
+
475
+ [break-after]
476
+ type = "BreakBetween"
477
+ initial = "computed::BreakBetween::Auto"
478
+ struct = "box"
479
+ spec = "https://drafts.csswg.org/css-break/#propdef-break-after"
480
+ animation_type = "discrete"
481
+ affects = "layout"
482
+
483
+ # blitz-pdf: fragmentation controls for the Servo paged-media consumer.
484
+ [orphans]
485
+ type = "Integer"
486
+ initial = "2"
487
+ struct = "inherited_box"
488
+ engine = "servo"
489
+ parse_method = "parse_positive"
490
+ animation_type = "discrete"
491
+ spec = "https://drafts.csswg.org/css-break/#widows-orphans"
492
+ affects = "layout"
493
+
494
+ [widows]
495
+ type = "Integer"
496
+ initial = "2"
497
+ struct = "inherited_box"
498
+ engine = "servo"
499
+ parse_method = "parse_positive"
500
+ animation_type = "discrete"
501
+ spec = "https://drafts.csswg.org/css-break/#widows-orphans"
502
+ affects = "layout"
503
+
504
+ [break-before]
505
+ type = "BreakBetween"
506
+ initial = "computed::BreakBetween::Auto"
507
+ struct = "box"
508
+ spec = "https://drafts.csswg.org/css-break/#propdef-break-before"
509
+ animation_type = "discrete"
510
+ affects = "layout"
511
+
512
+ [break-inside]
513
+ type = "BreakWithin"
514
+ initial = "computed::BreakWithin::Auto"
515
+ struct = "box"
516
+ spec = "https://drafts.csswg.org/css-break/#propdef-break-inside"
517
+ animation_type = "discrete"
518
+ affects = "layout"
519
+
520
+ [caption-side]
521
+ type = "table::CaptionSide"
522
+ initial = "computed::table::CaptionSide::Top"
523
+ struct = "inherited_table"
524
+ animation_type = "discrete"
525
+ spec = "https://drafts.csswg.org/css-tables/#propdef-caption-side"
526
+ servo_restyle_damage = "rebuild_box"
527
+ affects = "layout"
528
+
529
+ [caret-color]
530
+ type = "color::CaretColor"
531
+ initial = "generics::color::CaretColor::auto()"
532
+ struct = "inherited_ui"
533
+ spec = "https://drafts.csswg.org/css-ui/#caret-color"
534
+ ignored_when_colors_disabled = true
535
+ servo_restyle_damage = "repaint"
536
+ affects = "paint"
537
+
538
+ [clear]
539
+ type = "Clear"
540
+ initial = "computed::Clear::None"
541
+ struct = "box"
542
+ animation_type = "discrete"
543
+ spec = "https://drafts.csswg.org/css2/#propdef-clear"
544
+ servo_restyle_damage = "rebuild_box"
545
+ affects = "layout"
546
+
547
+ [clip]
548
+ type = "ClipRectOrAuto"
549
+ initial = "computed::ClipRectOrAuto::auto()"
550
+ struct = "effects"
551
+ boxed = true
552
+ allow_quirks = true
553
+ spec = "https://drafts.fxtf.org/css-masking/#clip-property"
554
+ affects = "overflow"
555
+
556
+ [clip-path]
557
+ type = "basic_shape::ClipPath"
558
+ initial = "generics::basic_shape::ClipPath::None"
559
+ struct = "svg"
560
+ extra_prefixes = ["webkit"]
561
+ spec = "https://drafts.fxtf.org/css-masking-1/#propdef-clip-path"
562
+ affects = "paint"
563
+ servo_restyle_damage = "rebuild_stacking_context"
564
+
565
+ [clip-rule]
566
+ type = "FillRule"
567
+ initial = "Default::default()"
568
+ struct = "inherited_svg"
569
+ engine = "gecko"
570
+ animation_type = "discrete"
571
+ spec = "https://svgwg.org/svg2-draft/masking.html#ClipRuleProperty"
572
+ affects = "paint"
573
+
574
+ [color]
575
+ type = "ColorPropertyValue"
576
+ initial = "crate::color::AbsoluteColor::BLACK"
577
+ struct = "inherited_text"
578
+ ignored_when_colors_disabled = true
579
+ spec = "https://drafts.csswg.org/css-color/#color"
580
+ servo_restyle_damage = "repaint"
581
+ affects = "paint"
582
+
583
+ [color-scheme]
584
+ type = "ColorScheme"
585
+ initial = "specified::color::ColorScheme::normal()"
586
+ struct = "inherited_ui"
587
+ spec = "https://drafts.csswg.org/css-color-adjust/#color-scheme-prop"
588
+ animation_type = "discrete"
589
+ ignored_when_colors_disabled = true
590
+ servo_restyle_damage = "repaint"
591
+ affects = "paint"
592
+
593
+ [column-count]
594
+ type = "ColumnCount"
595
+ initial = "computed::ColumnCount::Auto"
596
+ struct = "column"
597
+ servo_pref = "layout.columns.enabled"
598
+ spec = "https://drafts.csswg.org/css-multicol/#propdef-column-count"
599
+ servo_restyle_damage = "rebuild_box"
600
+ affects = "layout"
601
+
602
+ [column-gap]
603
+ type = "length::NonNegativeLengthPercentageOrNormal"
604
+ initial = "computed::length::NonNegativeLengthPercentageOrNormal::normal()"
605
+ struct = "position"
606
+ aliases = ["grid-column-gap"]
607
+ spec = "https://drafts.csswg.org/css-align-3/#propdef-column-gap"
608
+ servo_restyle_damage = "rebuild_box"
609
+ affects = "layout"
610
+
611
+ [column-rule-color]
612
+ type = "Color"
613
+ initial = "computed_value::T::currentcolor()"
614
+ struct = "column"
615
+ engine = "gecko"
616
+ ignored_when_colors_disabled = true
617
+ spec = "https://drafts.csswg.org/css-multicol/#propdef-column-rule-color"
618
+ affects = "paint"
619
+
620
+ [column-rule-style]
621
+ type = "BorderStyle"
622
+ initial = "computed::BorderStyle::None"
623
+ struct = "column"
624
+ engine = "gecko"
625
+ animation_type = "discrete"
626
+ spec = "https://drafts.csswg.org/css-multicol/#propdef-column-rule-style"
627
+ affects = "paint"
628
+
629
+ [column-rule-width]
630
+ type = "BorderSideWidth"
631
+ initial = "computed::BorderSideWidth::medium()"
632
+ struct = "column"
633
+ engine = "gecko"
634
+ initial_specified_value = "specified::BorderSideWidth::medium()"
635
+ spec = "https://drafts.csswg.org/css-multicol/#propdef-column-rule-width"
636
+ affects = "layout"
637
+
638
+ [column-width]
639
+ type = "length::NonNegativeLengthOrAuto"
640
+ initial = "computed::length::NonNegativeLengthOrAuto::auto()"
641
+ struct = "column"
642
+ servo_pref = "layout.columns.enabled"
643
+ spec = "https://drafts.csswg.org/css-multicol/#propdef-column-width"
644
+ servo_restyle_damage = "rebuild_box"
645
+ affects = "layout"
646
+
647
+ [contain]
648
+ type = "Contain"
649
+ initial = "specified::Contain::empty()"
650
+ struct = "box"
651
+ servo_pref = "layout.unimplemented"
652
+ animation_type = "none"
653
+ spec = "https://drafts.csswg.org/css-contain/#contain-property"
654
+ affects = "layout"
655
+
656
+ [contain-intrinsic-block-size]
657
+ type = "ContainIntrinsicSize"
658
+ initial = "computed::ContainIntrinsicSize::None"
659
+ struct = "position"
660
+ engine = "gecko"
661
+ logical_group = "contain-intrinsic-size"
662
+ logical = true
663
+ spec = "https://drafts.csswg.org/css-sizing-4/#intrinsic-size-override"
664
+ affects = "layout"
665
+
666
+ [contain-intrinsic-height]
667
+ type = "ContainIntrinsicSize"
668
+ initial = "computed::ContainIntrinsicSize::None"
669
+ struct = "position"
670
+ engine = "gecko"
671
+ logical_group = "contain-intrinsic-size"
672
+ spec = "https://drafts.csswg.org/css-sizing-4/#intrinsic-size-override"
673
+ affects = "layout"
674
+
675
+ [contain-intrinsic-inline-size]
676
+ type = "ContainIntrinsicSize"
677
+ initial = "computed::ContainIntrinsicSize::None"
678
+ struct = "position"
679
+ engine = "gecko"
680
+ logical_group = "contain-intrinsic-size"
681
+ logical = true
682
+ spec = "https://drafts.csswg.org/css-sizing-4/#intrinsic-size-override"
683
+ affects = "layout"
684
+
685
+ [contain-intrinsic-width]
686
+ type = "ContainIntrinsicSize"
687
+ initial = "computed::ContainIntrinsicSize::None"
688
+ struct = "position"
689
+ engine = "gecko"
690
+ logical_group = "contain-intrinsic-size"
691
+ spec = "https://drafts.csswg.org/css-sizing-4/#intrinsic-size-override"
692
+ affects = "layout"
693
+
694
+ [container-name]
695
+ type = "ContainerName"
696
+ initial = "computed::ContainerName::none()"
697
+ struct = "box"
698
+ animation_type = "none"
699
+ servo_pref = "layout.container-queries.enabled"
700
+ spec = "https://drafts.csswg.org/css-contain-3/#container-name"
701
+ affects = ""
702
+
703
+ [container-type]
704
+ type = "ContainerType"
705
+ initial = "computed::ContainerType::NORMAL"
706
+ struct = "box"
707
+ animation_type = "none"
708
+ servo_pref = "layout.container-queries.enabled"
709
+ spec = "https://drafts.csswg.org/css-contain-3/#container-type"
710
+ affects = "layout"
711
+
712
+ [content]
713
+ type = "Content"
714
+ initial = "computed::Content::normal()"
715
+ struct = "counters"
716
+ animation_type = "discrete"
717
+ spec = "https://drafts.csswg.org/css-content/#propdef-content"
718
+ servo_restyle_damage = "rebuild_box"
719
+ affects = "layout"
720
+
721
+ [content-visibility]
722
+ type = "ContentVisibility"
723
+ initial = "computed::ContentVisibility::Visible"
724
+ struct = "box"
725
+ engine = "gecko"
726
+ spec = "https://drafts.csswg.org/css-contain/#content-visibility"
727
+ affects = "layout"
728
+
729
+ [counter-increment]
730
+ type = "CounterIncrement"
731
+ initial = "Default::default()"
732
+ struct = "counters"
733
+ servo_pref = "layout.unimplemented"
734
+ animation_type = "discrete"
735
+ spec = "https://drafts.csswg.org/css-lists/#propdef-counter-increment"
736
+ servo_restyle_damage = "rebuild_box"
737
+ affects = "layout"
738
+
739
+ [counter-reset]
740
+ type = "CounterReset"
741
+ initial = "Default::default()"
742
+ struct = "counters"
743
+ servo_pref = "layout.unimplemented"
744
+ animation_type = "discrete"
745
+ spec = "https://drafts.csswg.org/css-lists-3/#propdef-counter-reset"
746
+ servo_restyle_damage = "rebuild_box"
747
+ affects = "layout"
748
+
749
+ [counter-set]
750
+ type = "CounterSet"
751
+ initial = "Default::default()"
752
+ struct = "counters"
753
+ engine = "gecko"
754
+ animation_type = "discrete"
755
+ spec = "https://drafts.csswg.org/css-lists-3/#propdef-counter-set"
756
+ servo_restyle_damage = "rebuild_box"
757
+ affects = "layout"
758
+
759
+ [cursor]
760
+ type = "Cursor"
761
+ initial = "computed::Cursor::auto()"
762
+ struct = "inherited_ui"
763
+ animation_type = "discrete"
764
+ spec = "https://drafts.csswg.org/css-ui/#cursor"
765
+ servo_restyle_damage = "repaint"
766
+ affects = "paint"
767
+
768
+ [d]
769
+ type = "DProperty"
770
+ initial = "specified::DProperty::none()"
771
+ struct = "svg"
772
+ spec = "https://svgwg.org/svg2-draft/paths.html#TheDProperty"
773
+ affects = "layout"
774
+
775
+ [display]
776
+ type = "Display"
777
+ initial = "computed::Display::inline()"
778
+ struct = "box"
779
+ spec = "https://drafts.csswg.org/css-display/#propdef-display"
780
+ servo_restyle_damage = "rebuild_box"
781
+ affects = "layout"
782
+
783
+ [fill]
784
+ type = "SVGPaint"
785
+ initial = "crate::values::computed::SVGPaint::BLACK"
786
+ struct = "inherited_svg"
787
+ boxed = true
788
+ spec = "https://svgwg.org/svg2-draft/painting.html#SpecifyingFillPaint"
789
+ affects = "paint"
790
+
791
+ [fill-opacity]
792
+ type = "SVGOpacity"
793
+ initial = "Default::default()"
794
+ struct = "inherited_svg"
795
+ spec = "https://svgwg.org/svg2-draft/painting.html#FillOpacity"
796
+ affects = "paint"
797
+
798
+ [fill-rule]
799
+ type = "FillRule"
800
+ initial = "Default::default()"
801
+ struct = "inherited_svg"
802
+ animation_type = "discrete"
803
+ spec = "https://svgwg.org/svg2-draft/painting.html#FillRuleProperty"
804
+ affects = "paint"
805
+
806
+ [filter]
807
+ type = "Filter"
808
+ struct = "effects"
809
+ vector = { simple_bindings = true, separator = "Space", animation_type = "with_zero" }
810
+ gecko_ffi_name = "mFilters"
811
+ extra_prefixes = ["webkit"]
812
+ spec = "https://drafts.fxtf.org/filters/#propdef-filter"
813
+ affects = "overflow"
814
+ servo_restyle_damage = "repaint"
815
+
816
+ [flex-basis]
817
+ type = "FlexBasis"
818
+ initial = "computed::FlexBasis::auto()"
819
+ struct = "position"
820
+ spec = "https://drafts.csswg.org/css-flexbox/#flex-basis-property"
821
+ extra_prefixes = ["webkit"]
822
+ servo_restyle_damage = "rebuild_box"
823
+ boxed = true
824
+ affects = "layout"
825
+
826
+ [flex-line-count]
827
+ type = "Integer"
828
+ initial = "1"
829
+ struct = "position"
830
+ engine = "servo"
831
+ servo_pref = "layout.flexbox.balance"
832
+ parse_method = "parse_positive"
833
+ spec = "https://drafts.csswg.org/css-flexbox-2/#flex-line-count-property"
834
+ servo_restyle_damage = "rebuild_box"
835
+ affects = "layout"
836
+
837
+ [flex-grow]
838
+ type = "NonNegativeNumber"
839
+ initial = "From::from(0.0)"
840
+ struct = "position"
841
+ spec = "https://drafts.csswg.org/css-flexbox/#flex-grow-property"
842
+ extra_prefixes = ["webkit"]
843
+ servo_restyle_damage = "rebuild_box"
844
+ affects = "layout"
845
+
846
+ [flex-shrink]
847
+ type = "NonNegativeNumber"
848
+ initial = "From::from(1.0)"
849
+ struct = "position"
850
+ spec = "https://drafts.csswg.org/css-flexbox/#flex-shrink-property"
851
+ extra_prefixes = ["webkit"]
852
+ servo_restyle_damage = "rebuild_box"
853
+ affects = "layout"
854
+
855
+ [float]
856
+ type = "Float"
857
+ initial = "computed::Float::None"
858
+ struct = "box"
859
+ animation_type = "discrete"
860
+ spec = "https://drafts.csswg.org/css-box/#propdef-float"
861
+ servo_restyle_damage = "rebuild_box"
862
+ affects = "layout"
863
+
864
+ [flood-color]
865
+ type = "Color"
866
+ initial = "computed::Color::BLACK"
867
+ struct = "svg"
868
+ engine = "gecko"
869
+ spec = "https://drafts.fxtf.org/filter-effects-1/#FloodColorProperty"
870
+ affects = "paint"
871
+
872
+ [flood-opacity]
873
+ type = "Opacity"
874
+ initial = "1.0"
875
+ struct = "svg"
876
+ engine = "gecko"
877
+ spec = "https://drafts.fxtf.org/filter-effects-1/#FloodOpacityProperty"
878
+ affects = "paint"
879
+
880
+ [font-family]
881
+ type = "FontFamily"
882
+ initial = "computed::FontFamily::serif()"
883
+ struct = "font"
884
+ animation_type = "discrete"
885
+ spec = "https://drafts.csswg.org/css-fonts/#propdef-font-family"
886
+ gecko_ffi_name = "mFont.family"
887
+ servo_restyle_damage = "rebuild_box"
888
+ affects = "layout"
889
+
890
+ [font-feature-settings]
891
+ type = "FontFeatureSettings"
892
+ initial = "computed::FontFeatureSettings::normal()"
893
+ struct = "font"
894
+ extra_prefixes = ["moz:layout.css.prefixes.font-features", "webkit"]
895
+ animation_type = "discrete"
896
+ spec = "https://drafts.csswg.org/css-fonts/#propdef-font-feature-settings"
897
+ affects = "layout"
898
+
899
+ [font-language-override]
900
+ type = "FontLanguageOverride"
901
+ initial = "computed::FontLanguageOverride::normal()"
902
+ struct = "font"
903
+ animation_type = "discrete"
904
+ gecko_ffi_name = "mFont.languageOverride"
905
+ extra_prefixes = ["moz:layout.css.prefixes.font-features"]
906
+ spec = "https://drafts.csswg.org/css-fonts-3/#propdef-font-language-override"
907
+ affects = "layout"
908
+
909
+ [font-palette]
910
+ type = "FontPalette"
911
+ initial = "computed::FontPalette::normal()"
912
+ struct = "font"
913
+ engine = "gecko"
914
+ animation_type = "discrete"
915
+ spec = "https://drafts.csswg.org/css-fonts/#font-palette-prop"
916
+ affects = "layout"
917
+
918
+ [font-size]
919
+ type = "FontSize"
920
+ initial = "computed::FontSize::medium()"
921
+ struct = "font"
922
+ initial_specified_value = "specified::FontSize::medium()"
923
+ allow_quirks = true
924
+ spec = "https://drafts.csswg.org/css-fonts/#propdef-font-size"
925
+ servo_restyle_damage = "rebuild_box"
926
+ affects = "layout"
927
+
928
+ [font-size-adjust]
929
+ type = "FontSizeAdjust"
930
+ initial = "computed::FontSizeAdjust::None"
931
+ struct = "font"
932
+ servo_pref = "layout.unimplemented"
933
+ spec = "https://drafts.csswg.org/css-fonts/#propdef-font-size-adjust"
934
+ gecko_ffi_name = "mFont.sizeAdjust"
935
+ affects = "layout"
936
+
937
+ [font-width]
938
+ type = "FontWidth"
939
+ initial = "computed::FontWidth::hundred()"
940
+ struct = "font"
941
+ initial_specified_value = "specified::FontWidth::normal()"
942
+ gecko_ffi_name = "mFont.width"
943
+ spec = "https://drafts.csswg.org/css-fonts/#propdef-font-width"
944
+ aliases = ["font-stretch"]
945
+ servo_restyle_damage = "rebuild_box"
946
+ affects = "layout"
947
+
948
+ [font-style]
949
+ type = "FontStyle"
950
+ initial = "computed::FontStyle::normal()"
951
+ struct = "font"
952
+ spec = "https://drafts.csswg.org/css-fonts/#propdef-font-style"
953
+ gecko_ffi_name = "mFont.style"
954
+ servo_restyle_damage = "rebuild_box"
955
+ affects = "layout"
956
+
957
+ [font-synthesis-position]
958
+ type = "FontSynthesis"
959
+ initial = "computed::FontSynthesis::Auto"
960
+ struct = "font"
961
+ engine = "gecko"
962
+ gecko_ffi_name = "mFont.synthesisPosition"
963
+ animation_type = "discrete"
964
+ spec = "https://drafts.csswg.org/css-fonts-4/#font-synthesis-position"
965
+ affects = "layout"
966
+
967
+ [font-synthesis-small-caps]
968
+ type = "FontSynthesis"
969
+ initial = "computed::FontSynthesis::Auto"
970
+ struct = "font"
971
+ engine = "gecko"
972
+ gecko_ffi_name = "mFont.synthesisSmallCaps"
973
+ animation_type = "discrete"
974
+ spec = "https://drafts.csswg.org/css-fonts-4/#font-synthesis-small-caps"
975
+ affects = "layout"
976
+
977
+ [font-synthesis-style]
978
+ type = "FontSynthesisStyle"
979
+ initial = "computed::FontSynthesisStyle::Auto"
980
+ struct = "font"
981
+ engine = "gecko"
982
+ gecko_ffi_name = "mFont.synthesisStyle"
983
+ animation_type = "discrete"
984
+ spec = "https://drafts.csswg.org/css-fonts-4/#font-synthesis-style"
985
+ affects = "layout"
986
+
987
+ [font-synthesis-weight]
988
+ type = "FontSynthesis"
989
+ initial = "computed::FontSynthesis::Auto"
990
+ struct = "font"
991
+ gecko_ffi_name = "mFont.synthesisWeight"
992
+ animation_type = "discrete"
993
+ spec = "https://drafts.csswg.org/css-fonts-4/#font-synthesis-weight"
994
+ affects = "layout"
995
+
996
+ [font-variant-alternates]
997
+ type = "FontVariantAlternates"
998
+ initial = "computed::FontVariantAlternates::default()"
999
+ struct = "font"
1000
+ animation_type = "discrete"
1001
+ spec = "https://drafts.csswg.org/css-fonts/#propdef-font-variant-alternates"
1002
+ gecko_ffi_name = "mFont.variantAlternates"
1003
+ affects = "layout"
1004
+
1005
+ [font-variant-east-asian]
1006
+ type = "FontVariantEastAsian"
1007
+ initial = "computed::FontVariantEastAsian::empty()"
1008
+ struct = "font"
1009
+ animation_type = "discrete"
1010
+ gecko_ffi_name = "mFont.variantEastAsian"
1011
+ spec = "https://drafts.csswg.org/css-fonts/#propdef-font-variant-east-asian"
1012
+ affects = "layout"
1013
+
1014
+ [font-variant-ligatures]
1015
+ type = "FontVariantLigatures"
1016
+ initial = "computed::FontVariantLigatures::empty()"
1017
+ struct = "font"
1018
+ animation_type = "discrete"
1019
+ gecko_ffi_name = "mFont.variantLigatures"
1020
+ spec = "https://drafts.csswg.org/css-fonts/#propdef-font-variant-ligatures"
1021
+ affects = "layout"
1022
+
1023
+ [font-variant-numeric]
1024
+ type = "FontVariantNumeric"
1025
+ initial = "computed::FontVariantNumeric::empty()"
1026
+ struct = "font"
1027
+ animation_type = "discrete"
1028
+ gecko_ffi_name = "mFont.variantNumeric"
1029
+ spec = "https://drafts.csswg.org/css-fonts/#propdef-font-variant-numeric"
1030
+ affects = "layout"
1031
+
1032
+ [font-variation-settings]
1033
+ type = "FontVariationSettings"
1034
+ initial = "computed::FontVariationSettings::normal()"
1035
+ struct = "font"
1036
+ servo_pref = "layout.variable_fonts.enabled"
1037
+ spec = "https://drafts.csswg.org/css-fonts-4/#propdef-font-variation-settings"
1038
+ affects = "layout"
1039
+
1040
+ [font-weight]
1041
+ type = "FontWeight"
1042
+ initial = "computed::FontWeight::normal()"
1043
+ struct = "font"
1044
+ initial_specified_value = "specified::FontWeight::normal()"
1045
+ gecko_ffi_name = "mFont.weight"
1046
+ spec = "https://drafts.csswg.org/css-fonts/#propdef-font-weight"
1047
+ servo_restyle_damage = "rebuild_box"
1048
+ affects = "layout"
1049
+
1050
+ [grid-auto-columns]
1051
+ type = "ImplicitGridTracks"
1052
+ initial = "Default::default()"
1053
+ struct = "position"
1054
+ servo_pref = "layout.grid.enabled"
1055
+ animation_type = "discrete"
1056
+ spec = "https://drafts.csswg.org/css-grid/#propdef-grid-auto-columns"
1057
+ affects = "layout"
1058
+
1059
+ [grid-auto-flow]
1060
+ type = "GridAutoFlow"
1061
+ initial = "computed::GridAutoFlow::ROW"
1062
+ struct = "position"
1063
+ servo_pref = "layout.grid.enabled"
1064
+ animation_type = "discrete"
1065
+ spec = "https://drafts.csswg.org/css-grid/#propdef-grid-auto-flow"
1066
+ affects = "layout"
1067
+
1068
+ [grid-auto-rows]
1069
+ type = "ImplicitGridTracks"
1070
+ initial = "Default::default()"
1071
+ struct = "position"
1072
+ servo_pref = "layout.grid.enabled"
1073
+ animation_type = "discrete"
1074
+ spec = "https://drafts.csswg.org/css-grid/#propdef-grid-auto-rows"
1075
+ affects = "layout"
1076
+
1077
+ [grid-column-end]
1078
+ type = "GridLine"
1079
+ initial = "Default::default()"
1080
+ struct = "position"
1081
+ servo_pref = "layout.grid.enabled"
1082
+ animation_type = "discrete"
1083
+ spec = "https://drafts.csswg.org/css-grid/#propdef-grid-column-end"
1084
+ affects = "layout"
1085
+
1086
+ [grid-column-start]
1087
+ type = "GridLine"
1088
+ initial = "Default::default()"
1089
+ struct = "position"
1090
+ servo_pref = "layout.grid.enabled"
1091
+ animation_type = "discrete"
1092
+ spec = "https://drafts.csswg.org/css-grid/#propdef-grid-column-start"
1093
+ affects = "layout"
1094
+
1095
+ [grid-row-end]
1096
+ type = "GridLine"
1097
+ initial = "Default::default()"
1098
+ struct = "position"
1099
+ servo_pref = "layout.grid.enabled"
1100
+ animation_type = "discrete"
1101
+ spec = "https://drafts.csswg.org/css-grid/#propdef-grid-row-end"
1102
+ affects = "layout"
1103
+
1104
+ [grid-row-start]
1105
+ type = "GridLine"
1106
+ initial = "Default::default()"
1107
+ struct = "position"
1108
+ servo_pref = "layout.grid.enabled"
1109
+ animation_type = "discrete"
1110
+ spec = "https://drafts.csswg.org/css-grid/#propdef-grid-row-start"
1111
+ affects = "layout"
1112
+
1113
+ [grid-template-areas]
1114
+ type = "GridTemplateAreas"
1115
+ initial = "computed::GridTemplateAreas::none()"
1116
+ struct = "position"
1117
+ servo_pref = "layout.grid.enabled"
1118
+ animation_type = "discrete"
1119
+ spec = "https://drafts.csswg.org/css-grid/#propdef-grid-template-areas"
1120
+ affects = "layout"
1121
+
1122
+ [grid-template-columns]
1123
+ type = "GridTemplateComponent"
1124
+ initial = "specified::GenericGridTemplateComponent::None"
1125
+ struct = "position"
1126
+ servo_pref = "layout.grid.enabled"
1127
+ spec = "https://drafts.csswg.org/css-grid/#propdef-grid-template-columns"
1128
+ affects = "layout"
1129
+
1130
+ [grid-template-rows]
1131
+ type = "GridTemplateComponent"
1132
+ initial = "specified::GenericGridTemplateComponent::None"
1133
+ struct = "position"
1134
+ servo_pref = "layout.grid.enabled"
1135
+ spec = "https://drafts.csswg.org/css-grid/#propdef-grid-template-rows"
1136
+ affects = "layout"
1137
+
1138
+ [height]
1139
+ type = "Size"
1140
+ initial = "computed::Size::auto()"
1141
+ struct = "position"
1142
+ logical_group = "size"
1143
+ allow_quirks = true
1144
+ parse_method = "parse_size_for_width_or_height"
1145
+ flags = "SCROLL_LINKED_EFFECTIVE"
1146
+ spec = "https://drafts.csswg.org/css-box/#propdef-height"
1147
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
1148
+ servo_restyle_damage = "rebuild_box"
1149
+ affects = "layout"
1150
+
1151
+ [image-rendering]
1152
+ type = "ImageRendering"
1153
+ initial = "computed::ImageRendering::Auto"
1154
+ struct = "inherited_box"
1155
+ spec = "https://drafts.csswg.org/css-images/#propdef-image-rendering"
1156
+ animation_type = "discrete"
1157
+ affects = "paint"
1158
+
1159
+ [-moz-image-decoding]
1160
+ type = "ImageDecoding"
1161
+ initial = "specified::ImageDecoding::Auto"
1162
+ struct = "inherited_box"
1163
+ engine = "gecko"
1164
+ gecko_ffi_name = "mImageDecoding"
1165
+ animation_type = "discrete"
1166
+ enabled_in = "chrome"
1167
+ spec = "Nonstandard, intended for interventions"
1168
+ affects = "paint"
1169
+
1170
+ [inline-size]
1171
+ type = "Size"
1172
+ initial = "computed::Size::auto()"
1173
+ struct = "position"
1174
+ logical = true
1175
+ logical_group = "size"
1176
+ parse_method = "parse_size_for_width_or_height"
1177
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-inline-size"
1178
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
1179
+ servo_restyle_damage = "rebuild_box"
1180
+ affects = "layout"
1181
+
1182
+ [inset-block-end]
1183
+ type = "Inset"
1184
+ initial = "computed::Inset::auto()"
1185
+ struct = "position"
1186
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-inset-block-end"
1187
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
1188
+ logical = true
1189
+ logical_group = "inset"
1190
+ affects = "layout"
1191
+
1192
+ [inset-block-start]
1193
+ type = "Inset"
1194
+ initial = "computed::Inset::auto()"
1195
+ struct = "position"
1196
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-inset-block-start"
1197
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
1198
+ logical = true
1199
+ logical_group = "inset"
1200
+ affects = "layout"
1201
+
1202
+ [inset-inline-end]
1203
+ type = "Inset"
1204
+ initial = "computed::Inset::auto()"
1205
+ struct = "position"
1206
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-inset-inline-end"
1207
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
1208
+ logical = true
1209
+ logical_group = "inset"
1210
+ affects = "layout"
1211
+
1212
+ [inset-inline-start]
1213
+ type = "Inset"
1214
+ initial = "computed::Inset::auto()"
1215
+ struct = "position"
1216
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-inset-inline-start"
1217
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
1218
+ logical = true
1219
+ logical_group = "inset"
1220
+ affects = "layout"
1221
+
1222
+ [justify-content]
1223
+ type = "ContentDistribution"
1224
+ initial = "specified::ContentDistribution::normal()"
1225
+ struct = "position"
1226
+ parse_method = "parse_inline"
1227
+ spec = "https://drafts.csswg.org/css-align/#propdef-justify-content"
1228
+ extra_prefixes = ["webkit"]
1229
+ animation_type = "discrete"
1230
+ servo_restyle_damage = "rebuild_box"
1231
+ affects = "layout"
1232
+
1233
+ [justify-items]
1234
+ type = "JustifyItems"
1235
+ initial = "computed::JustifyItems::legacy()"
1236
+ struct = "position"
1237
+ spec = "https://drafts.csswg.org/css-align/#propdef-justify-items"
1238
+ animation_type = "discrete"
1239
+ affects = "layout"
1240
+
1241
+ [justify-self]
1242
+ type = "SelfAlignment"
1243
+ initial = "specified::SelfAlignment::auto()"
1244
+ struct = "position"
1245
+ parse_method = "parse_inline"
1246
+ spec = "https://drafts.csswg.org/css-align/#justify-self-property"
1247
+ animation_type = "discrete"
1248
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
1249
+ affects = "layout"
1250
+
1251
+ [left]
1252
+ type = "Inset"
1253
+ initial = "computed::Inset::auto()"
1254
+ struct = "position"
1255
+ flags = "SCROLL_LINKED_EFFECTIVE"
1256
+ spec = "https://www.w3.org/TR/CSS2/visuren.html#propdef-left"
1257
+ allow_quirks = true
1258
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
1259
+ gecko_ffi_name = "mOffset.3"
1260
+ servo_restyle_damage = "rebuild_box"
1261
+ logical_group = "inset"
1262
+ affects = "layout"
1263
+
1264
+ [letter-spacing]
1265
+ type = "LetterSpacing"
1266
+ initial = "computed::LetterSpacing::normal()"
1267
+ struct = "inherited_text"
1268
+ spec = "https://drafts.csswg.org/css-text/#propdef-letter-spacing"
1269
+ servo_restyle_damage = "rebuild_box"
1270
+ affects = "layout"
1271
+
1272
+ [lighting-color]
1273
+ type = "Color"
1274
+ initial = "computed::Color::WHITE"
1275
+ struct = "svg"
1276
+ engine = "gecko"
1277
+ spec = "https://drafts.fxtf.org/filter-effects-1#LightingColorProperty"
1278
+ affects = "paint"
1279
+
1280
+ [line-height]
1281
+ type = "LineHeight"
1282
+ initial = "computed::LineHeight::normal()"
1283
+ struct = "font"
1284
+ spec = "https://drafts.csswg.org/css2/visudet.html#propdef-line-height"
1285
+ servo_restyle_damage = "rebuild_box"
1286
+ affects = "layout"
1287
+
1288
+ [link-parameters]
1289
+ type = "LinkParameters"
1290
+ initial = "computed::LinkParameters::none()"
1291
+ struct = "ui"
1292
+ animation_type = "discrete"
1293
+ spec = "https://drafts.csswg.org/css-link-params-1/#propdef-link-parameters"
1294
+ affects = "paint"
1295
+ engine = "gecko"
1296
+ gecko_pref = "layout.css.link-parameters.enabled"
1297
+
1298
+ [list-style-image]
1299
+ type = "Image"
1300
+ initial = "computed::Image::None"
1301
+ struct = "list"
1302
+ animation_type = "discrete"
1303
+ spec = "https://drafts.csswg.org/css-lists/#propdef-list-style-image"
1304
+ servo_restyle_damage = "rebuild_box"
1305
+ affects = "layout"
1306
+
1307
+ [list-style-type]
1308
+ type = "ListStyleType"
1309
+ initial = "computed::ListStyleType::disc()"
1310
+ struct = "list"
1311
+ animation_type = "discrete"
1312
+ spec = "https://drafts.csswg.org/css-lists/#propdef-list-style-type"
1313
+ servo_restyle_damage = "rebuild_box"
1314
+ affects = "layout"
1315
+
1316
+ [marker-end]
1317
+ type = "url::UrlOrNone"
1318
+ initial = "computed::url::UrlOrNone::none()"
1319
+ struct = "inherited_svg"
1320
+ engine = "gecko"
1321
+ animation_type = "discrete"
1322
+ spec = "https://svgwg.org/svg2-draft/painting.html#VertexMarkerProperties"
1323
+ affects = "layout"
1324
+
1325
+ [marker-mid]
1326
+ type = "url::UrlOrNone"
1327
+ initial = "computed::url::UrlOrNone::none()"
1328
+ struct = "inherited_svg"
1329
+ engine = "gecko"
1330
+ animation_type = "discrete"
1331
+ spec = "https://svgwg.org/svg2-draft/painting.html#VertexMarkerProperties"
1332
+ affects = "layout"
1333
+
1334
+ [marker-start]
1335
+ type = "url::UrlOrNone"
1336
+ initial = "computed::url::UrlOrNone::none()"
1337
+ struct = "inherited_svg"
1338
+ engine = "gecko"
1339
+ animation_type = "discrete"
1340
+ spec = "https://svgwg.org/svg2-draft/painting.html#VertexMarkerProperties"
1341
+ affects = "layout"
1342
+
1343
+ [masonry-auto-flow]
1344
+ type = "MasonryAutoFlow"
1345
+ initial = "computed::MasonryAutoFlow::initial()"
1346
+ struct = "position"
1347
+ engine = "gecko"
1348
+ gecko_pref = "layout.css.grid-template-masonry-value.enabled"
1349
+ animation_type = "discrete"
1350
+ spec = "https://github.com/w3c/csswg-drafts/issues/4650"
1351
+ affects = "layout"
1352
+
1353
+ [math-depth]
1354
+ type = "MathDepth"
1355
+ initial = "0"
1356
+ struct = "font"
1357
+ servo_pref = "layout.unimplemented"
1358
+ spec = "https://mathml-refresh.github.io/mathml-core/#the-math-script-level-property"
1359
+ affects = ""
1360
+
1361
+ [max-block-size]
1362
+ type = "MaxSize"
1363
+ initial = "computed::MaxSize::none()"
1364
+ struct = "position"
1365
+ logical = true
1366
+ logical_group = "max-size"
1367
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-block-size"
1368
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
1369
+ servo_restyle_damage = "rebuild_box"
1370
+ affects = "layout"
1371
+
1372
+ [max-height]
1373
+ type = "MaxSize"
1374
+ initial = "computed::MaxSize::none()"
1375
+ struct = "position"
1376
+ logical_group = "max-size"
1377
+ allow_quirks = true
1378
+ spec = "https://drafts.csswg.org/css-box/#propdef-height"
1379
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
1380
+ servo_restyle_damage = "rebuild_box"
1381
+ affects = "layout"
1382
+
1383
+ [max-inline-size]
1384
+ type = "MaxSize"
1385
+ initial = "computed::MaxSize::none()"
1386
+ struct = "position"
1387
+ logical = true
1388
+ logical_group = "max-size"
1389
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-inline-size"
1390
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
1391
+ servo_restyle_damage = "rebuild_box"
1392
+ affects = "layout"
1393
+
1394
+ [max-width]
1395
+ type = "MaxSize"
1396
+ initial = "computed::MaxSize::none()"
1397
+ struct = "position"
1398
+ logical_group = "max-size"
1399
+ allow_quirks = true
1400
+ spec = "https://drafts.csswg.org/css-box/#propdef-width"
1401
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
1402
+ servo_restyle_damage = "rebuild_box"
1403
+ affects = "layout"
1404
+
1405
+ [min-block-size]
1406
+ type = "Size"
1407
+ initial = "computed::Size::auto()"
1408
+ struct = "position"
1409
+ logical = true
1410
+ logical_group = "min-size"
1411
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-block-size"
1412
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
1413
+ servo_restyle_damage = "rebuild_box"
1414
+ affects = "layout"
1415
+
1416
+ [min-height]
1417
+ type = "Size"
1418
+ initial = "computed::Size::auto()"
1419
+ struct = "position"
1420
+ logical_group = "min-size"
1421
+ allow_quirks = true
1422
+ spec = "https://drafts.csswg.org/css-box/#propdef-height"
1423
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
1424
+ servo_restyle_damage = "rebuild_box"
1425
+ affects = "layout"
1426
+
1427
+ [min-inline-size]
1428
+ type = "Size"
1429
+ initial = "computed::Size::auto()"
1430
+ struct = "position"
1431
+ logical = true
1432
+ logical_group = "min-size"
1433
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-inline-size"
1434
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
1435
+ servo_restyle_damage = "rebuild_box"
1436
+ affects = "layout"
1437
+
1438
+ [min-width]
1439
+ type = "Size"
1440
+ initial = "computed::Size::auto()"
1441
+ struct = "position"
1442
+ logical_group = "min-size"
1443
+ allow_quirks = true
1444
+ spec = "https://drafts.csswg.org/css-box/#propdef-width"
1445
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
1446
+ servo_restyle_damage = "rebuild_box"
1447
+ affects = "layout"
1448
+
1449
+ [object-position]
1450
+ type = "Position"
1451
+ initial = "computed::Position::center()"
1452
+ struct = "position"
1453
+ boxed = true
1454
+ spec = "https://drafts.csswg.org/css-images-3/#the-object-position"
1455
+ affects = "layout"
1456
+
1457
+ [offset-anchor]
1458
+ type = "PositionOrAuto"
1459
+ initial = "computed::PositionOrAuto::auto()"
1460
+ struct = "box"
1461
+ engine = "gecko"
1462
+ flags = "CAN_ANIMATE_ON_COMPOSITOR SCROLL_LINKED_EFFECTIVE"
1463
+ spec = "https://drafts.fxtf.org/motion-1/#offset-anchor-property"
1464
+ servo_restyle_damage = "rebuild_box"
1465
+ boxed = true
1466
+ affects = "overflow"
1467
+
1468
+ [offset-distance]
1469
+ type = "LengthPercentage"
1470
+ initial = "computed::LengthPercentage::zero()"
1471
+ struct = "box"
1472
+ engine = "gecko"
1473
+ flags = "CAN_ANIMATE_ON_COMPOSITOR SCROLL_LINKED_EFFECTIVE"
1474
+ spec = "https://drafts.fxtf.org/motion-1/#offset-distance-property"
1475
+ servo_restyle_damage = "rebuild_box"
1476
+ affects = "overflow"
1477
+
1478
+ [offset-path]
1479
+ type = "OffsetPath"
1480
+ initial = "computed::OffsetPath::none()"
1481
+ struct = "box"
1482
+ servo_pref = "layout.unimplemented"
1483
+ flags = "CAN_ANIMATE_ON_COMPOSITOR SCROLL_LINKED_EFFECTIVE"
1484
+ spec = "https://drafts.fxtf.org/motion-1/#offset-path-property"
1485
+ servo_restyle_damage = "rebuild_box"
1486
+ affects = "overflow"
1487
+
1488
+ [offset-position]
1489
+ type = "OffsetPosition"
1490
+ initial = "computed::OffsetPosition::normal()"
1491
+ struct = "box"
1492
+ engine = "gecko"
1493
+ flags = "CAN_ANIMATE_ON_COMPOSITOR SCROLL_LINKED_EFFECTIVE"
1494
+ spec = "https://drafts.fxtf.org/motion-1/#offset-position-property"
1495
+ servo_restyle_damage = "rebuild_box"
1496
+ boxed = true
1497
+ affects = "overflow"
1498
+
1499
+ [offset-rotate]
1500
+ type = "OffsetRotate"
1501
+ initial = "computed::OffsetRotate::auto()"
1502
+ struct = "box"
1503
+ engine = "gecko"
1504
+ flags = "CAN_ANIMATE_ON_COMPOSITOR SCROLL_LINKED_EFFECTIVE"
1505
+ spec = "https://drafts.fxtf.org/motion-1/#offset-rotate-property"
1506
+ servo_restyle_damage = "rebuild_box"
1507
+ affects = "overflow"
1508
+
1509
+ [opacity]
1510
+ type = "Opacity"
1511
+ initial = "1.0"
1512
+ struct = "effects"
1513
+ flags = "CAN_ANIMATE_ON_COMPOSITOR"
1514
+ spec = "https://drafts.csswg.org/css-color/#transparency"
1515
+ servo_restyle_damage = "repaint"
1516
+ affects = "paint"
1517
+
1518
+ [order]
1519
+ type = "Integer"
1520
+ initial = "0"
1521
+ struct = "position"
1522
+ extra_prefixes = ["webkit"]
1523
+ spec = "https://drafts.csswg.org/css-flexbox/#order-property"
1524
+ servo_restyle_damage = "rebuild_box"
1525
+ affects = "layout"
1526
+
1527
+ [outline-color]
1528
+ type = "Color"
1529
+ initial = "computed_value::T::currentcolor()"
1530
+ struct = "outline"
1531
+ ignored_when_colors_disabled = true
1532
+ spec = "https://drafts.csswg.org/css-ui/#propdef-outline-color"
1533
+ servo_restyle_damage = "repaint"
1534
+ affects = "paint"
1535
+
1536
+ [outline-offset]
1537
+ type = "BorderSideOffset"
1538
+ initial = "app_units::Au(0)"
1539
+ struct = "outline"
1540
+ spec = "https://drafts.csswg.org/css-ui/#propdef-outline-offset"
1541
+ servo_restyle_damage = "repaint"
1542
+ affects = "overflow"
1543
+
1544
+ [outline-style]
1545
+ type = "OutlineStyle"
1546
+ initial = "computed::OutlineStyle::none()"
1547
+ struct = "outline"
1548
+ animation_type = "discrete"
1549
+ spec = "https://drafts.csswg.org/css-ui/#propdef-outline-style"
1550
+ servo_restyle_damage = "repaint"
1551
+ affects = "overflow"
1552
+
1553
+ [outline-width]
1554
+ type = "BorderSideWidth"
1555
+ initial = "computed::BorderSideWidth::medium()"
1556
+ struct = "outline"
1557
+ initial_specified_value = "specified::BorderSideWidth::medium()"
1558
+ spec = "https://drafts.csswg.org/css-ui/#propdef-outline-width"
1559
+ servo_restyle_damage = "repaint"
1560
+ affects = "overflow"
1561
+
1562
+ [overflow-anchor]
1563
+ type = "OverflowAnchor"
1564
+ initial = "computed::OverflowAnchor::Auto"
1565
+ struct = "box"
1566
+ engine = "gecko"
1567
+ gecko_pref = "layout.css.scroll-anchoring.enabled"
1568
+ spec = "https://drafts.csswg.org/css-scroll-anchoring/#exclusion-api"
1569
+ animation_type = "discrete"
1570
+ affects = ""
1571
+
1572
+ [overflow-block]
1573
+ type = "Overflow"
1574
+ initial = "computed::Overflow::Visible"
1575
+ struct = "box"
1576
+ logical_group = "overflow"
1577
+ logical = true
1578
+ animation_type = "discrete"
1579
+ spec = "https://drafts.csswg.org/css-overflow-3/#propdef-overflow-block"
1580
+ servo_restyle_damage = "rebuild_box"
1581
+ affects = "layout"
1582
+
1583
+ [overflow-clip-margin]
1584
+ type = "OverflowClipMargin"
1585
+ initial = "computed::OverflowClipMargin::zero()"
1586
+ struct = "margin"
1587
+ spec = "https://drafts.csswg.org/css-overflow/#propdef-overflow-clip-margin"
1588
+ affects = "overflow"
1589
+
1590
+ [overflow-inline]
1591
+ type = "Overflow"
1592
+ initial = "computed::Overflow::Visible"
1593
+ struct = "box"
1594
+ logical_group = "overflow"
1595
+ logical = true
1596
+ animation_type = "discrete"
1597
+ spec = "https://drafts.csswg.org/css-overflow-3/#propdef-overflow-inline"
1598
+ servo_restyle_damage = "rebuild_box"
1599
+ affects = "layout"
1600
+
1601
+ [overflow-wrap]
1602
+ type = "OverflowWrap"
1603
+ initial = "computed::OverflowWrap::Normal"
1604
+ struct = "inherited_text"
1605
+ animation_type = "discrete"
1606
+ spec = "https://drafts.csswg.org/css-text/#propdef-overflow-wrap"
1607
+ aliases = ["word-wrap"]
1608
+ servo_restyle_damage = "rebuild_box"
1609
+ affects = "layout"
1610
+
1611
+ [overflow-x]
1612
+ type = "Overflow"
1613
+ initial = "computed::Overflow::Visible"
1614
+ struct = "box"
1615
+ logical_group = "overflow"
1616
+ animation_type = "discrete"
1617
+ spec = "https://drafts.csswg.org/css-overflow-3/#propdef-overflow-x"
1618
+ servo_restyle_damage = "rebuild_box"
1619
+ affects = "layout"
1620
+
1621
+ [overflow-y]
1622
+ type = "Overflow"
1623
+ initial = "computed::Overflow::Visible"
1624
+ struct = "box"
1625
+ logical_group = "overflow"
1626
+ animation_type = "discrete"
1627
+ spec = "https://drafts.csswg.org/css-overflow-3/#propdef-overflow-y"
1628
+ servo_restyle_damage = "rebuild_box"
1629
+ affects = "layout"
1630
+
1631
+ [overscroll-behavior-block]
1632
+ type = "OverscrollBehavior"
1633
+ initial = "computed::OverscrollBehavior::Auto"
1634
+ struct = "box"
1635
+ servo_pref = "layout.unimplemented"
1636
+ logical_group = "overscroll-behavior"
1637
+ logical = true
1638
+ spec = "https://wicg.github.io/overscroll-behavior/#overscroll-behavior-properties"
1639
+ animation_type = "discrete"
1640
+ affects = "paint"
1641
+
1642
+ [overscroll-behavior-inline]
1643
+ type = "OverscrollBehavior"
1644
+ initial = "computed::OverscrollBehavior::Auto"
1645
+ struct = "box"
1646
+ servo_pref = "layout.unimplemented"
1647
+ logical_group = "overscroll-behavior"
1648
+ logical = true
1649
+ spec = "https://wicg.github.io/overscroll-behavior/#overscroll-behavior-properties"
1650
+ animation_type = "discrete"
1651
+ affects = "paint"
1652
+
1653
+ [overscroll-behavior-x]
1654
+ type = "OverscrollBehavior"
1655
+ initial = "computed::OverscrollBehavior::Auto"
1656
+ struct = "box"
1657
+ servo_pref = "layout.unimplemented"
1658
+ logical_group = "overscroll-behavior"
1659
+ spec = "https://wicg.github.io/overscroll-behavior/#overscroll-behavior-properties"
1660
+ animation_type = "discrete"
1661
+ affects = "paint"
1662
+
1663
+ [overscroll-behavior-y]
1664
+ type = "OverscrollBehavior"
1665
+ initial = "computed::OverscrollBehavior::Auto"
1666
+ struct = "box"
1667
+ servo_pref = "layout.unimplemented"
1668
+ logical_group = "overscroll-behavior"
1669
+ spec = "https://wicg.github.io/overscroll-behavior/#overscroll-behavior-properties"
1670
+ animation_type = "discrete"
1671
+ affects = "paint"
1672
+
1673
+ [page]
1674
+ type = "PageName"
1675
+ initial = "computed::PageName::auto()"
1676
+ struct = "page"
1677
+ engine = "gecko"
1678
+ spec = "https://drafts.csswg.org/css-page-3/#using-named-pages"
1679
+ animation_type = "discrete"
1680
+ affects = "layout"
1681
+
1682
+ [page-orientation]
1683
+ type = "PageOrientation"
1684
+ initial = "computed::PageOrientation::Upright"
1685
+ struct = "page"
1686
+ engine = "gecko"
1687
+ spec = "https://drafts.csswg.org/css-page-3/#page-orientation-prop"
1688
+ animation_type = "none"
1689
+ rule_types_allowed = ["page"]
1690
+ affects = "layout"
1691
+
1692
+ [paint-order]
1693
+ type = "SVGPaintOrder"
1694
+ initial = "computed::SVGPaintOrder::normal()"
1695
+ struct = "inherited_svg"
1696
+ engine = "gecko"
1697
+ animation_type = "discrete"
1698
+ spec = "https://svgwg.org/svg2-draft/painting.html#PaintOrder"
1699
+ affects = "paint"
1700
+
1701
+ [-moz-context-properties]
1702
+ type = "MozContextProperties"
1703
+ initial = "computed::MozContextProperties::default()"
1704
+ struct = "inherited_svg"
1705
+ engine = "gecko"
1706
+ enabled_in = "chrome"
1707
+ gecko_pref = "svg.context-properties.content.enabled"
1708
+ has_effect_on_gecko_scrollbars = false
1709
+ animation_type = "none"
1710
+ spec = "Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-context-properties)"
1711
+ affects = "paint"
1712
+
1713
+ [perspective]
1714
+ type = "Perspective"
1715
+ initial = "computed::Perspective::none()"
1716
+ struct = "box"
1717
+ gecko_ffi_name = "mChildPerspective"
1718
+ spec = "https://drafts.csswg.org/css-transforms/#perspective"
1719
+ extra_prefixes = ["moz:layout.css.prefixes.transforms"]
1720
+ servo_restyle_damage = "recalculate_overflow"
1721
+ affects = "overflow"
1722
+
1723
+ [perspective-origin]
1724
+ type = "Position"
1725
+ initial = "computed::position::Position::center()"
1726
+ struct = "box"
1727
+ boxed = true
1728
+ extra_prefixes = ["moz:layout.css.prefixes.transforms", "webkit"]
1729
+ spec = "https://drafts.csswg.org/css-transforms-2/#perspective-origin-property"
1730
+ servo_restyle_damage = "recalculate_overflow"
1731
+ affects = "overflow"
1732
+
1733
+ [pointer-events]
1734
+ type = "PointerEvents"
1735
+ initial = "specified::PointerEvents::Auto"
1736
+ struct = "inherited_ui"
1737
+ animation_type = "discrete"
1738
+ spec = "https://svgwg.org/svg2-draft/interact.html#PointerEventsProperty"
1739
+ servo_restyle_damage = "repaint"
1740
+ affects = "paint"
1741
+
1742
+ [position]
1743
+ type = "PositionProperty"
1744
+ initial = "computed::PositionProperty::Static"
1745
+ struct = "box"
1746
+ animation_type = "discrete"
1747
+ spec = "https://drafts.csswg.org/css-position/#position-property"
1748
+ servo_restyle_damage = "rebuild_box"
1749
+ affects = "layout"
1750
+
1751
+ [position-anchor]
1752
+ type = "PositionAnchor"
1753
+ initial = "computed::PositionAnchor::normal()"
1754
+ struct = "position"
1755
+ engine = "gecko"
1756
+ animation_type = "discrete"
1757
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
1758
+ spec = "https://drafts.csswg.org/css-anchor-position-1/#propdef-position-anchor"
1759
+ affects = "layout"
1760
+
1761
+ [position-area]
1762
+ type = "PositionArea"
1763
+ initial = "computed::PositionArea::none()"
1764
+ struct = "position"
1765
+ animation_type = "discrete"
1766
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
1767
+ servo_pref = "layout.unimplemented"
1768
+ spec = "https://drafts.csswg.org/css-anchor-position-1/#typedef-position-area"
1769
+ affects = "layout"
1770
+
1771
+ [position-try-fallbacks]
1772
+ type = "PositionTryFallbacks"
1773
+ initial = "computed::PositionTryFallbacks::none()"
1774
+ struct = "position"
1775
+ animation_type = "discrete"
1776
+ servo_pref = "layout.unimplemented"
1777
+ spec = "https://drafts.csswg.org/css-anchor-position-1/#position-try-fallbacks"
1778
+ affects = "layout"
1779
+
1780
+ [position-try-order]
1781
+ type = "PositionTryOrder"
1782
+ initial = "computed::PositionTryOrder::normal()"
1783
+ struct = "position"
1784
+ engine = "gecko"
1785
+ animation_type = "discrete"
1786
+ spec = "https://drafts.csswg.org/css-anchor-position-1/#position-try-order-property"
1787
+ affects = "layout"
1788
+
1789
+ [position-visibility]
1790
+ type = "PositionVisibility"
1791
+ initial = "computed::PositionVisibility::ANCHORS_VISIBLE"
1792
+ struct = "position"
1793
+ engine = "gecko"
1794
+ animation_type = "discrete"
1795
+ spec = "https://drafts.csswg.org/css-anchor-position-1/#propdef-position-visibility"
1796
+ affects = "layout"
1797
+
1798
+ [print-color-adjust]
1799
+ type = "PrintColorAdjust"
1800
+ initial = "computed::PrintColorAdjust::Economy"
1801
+ struct = "inherited_box"
1802
+ engine = "gecko"
1803
+ aliases = ["color-adjust"]
1804
+ spec = "https://drafts.csswg.org/css-color-adjust/#print-color-adjust"
1805
+ animation_type = "discrete"
1806
+ affects = "paint"
1807
+
1808
+ [quotes]
1809
+ type = "Quotes"
1810
+ initial = "computed::Quotes::get_initial_value()"
1811
+ struct = "list"
1812
+ animation_type = "discrete"
1813
+ spec = "https://drafts.csswg.org/css-content/#propdef-quotes"
1814
+ servo_restyle_damage = "rebuild_box"
1815
+ affects = "layout"
1816
+
1817
+ [resize]
1818
+ type = "Resize"
1819
+ initial = "computed::Resize::None"
1820
+ struct = "box"
1821
+ engine = "gecko"
1822
+ animation_type = "discrete"
1823
+ gecko_ffi_name = "mResize"
1824
+ spec = "https://drafts.csswg.org/css-ui/#propdef-resize"
1825
+ affects = "layout"
1826
+
1827
+ [right]
1828
+ type = "Inset"
1829
+ initial = "computed::Inset::auto()"
1830
+ struct = "position"
1831
+ flags = "SCROLL_LINKED_EFFECTIVE"
1832
+ spec = "https://www.w3.org/TR/CSS2/visuren.html#propdef-right"
1833
+ allow_quirks = true
1834
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
1835
+ gecko_ffi_name = "mOffset.1"
1836
+ servo_restyle_damage = "rebuild_box"
1837
+ logical_group = "inset"
1838
+ affects = "layout"
1839
+
1840
+ [rotate]
1841
+ type = "Rotate"
1842
+ initial = "generics::transform::Rotate::None"
1843
+ struct = "box"
1844
+ boxed = true
1845
+ flags = "CAN_ANIMATE_ON_COMPOSITOR SCROLL_LINKED_EFFECTIVE"
1846
+ spec = "https://drafts.csswg.org/css-transforms-2/#individual-transforms"
1847
+ servo_restyle_damage = "recalculate_overflow"
1848
+ affects = "overflow"
1849
+
1850
+ [row-gap]
1851
+ type = "length::NonNegativeLengthPercentageOrNormal"
1852
+ initial = "computed::length::NonNegativeLengthPercentageOrNormal::normal()"
1853
+ struct = "position"
1854
+ aliases = ["grid-row-gap"]
1855
+ spec = "https://drafts.csswg.org/css-align-3/#propdef-row-gap"
1856
+ servo_restyle_damage = "rebuild_box"
1857
+ affects = "layout"
1858
+
1859
+ [scale]
1860
+ type = "Scale"
1861
+ initial = "generics::transform::Scale::None"
1862
+ struct = "box"
1863
+ boxed = true
1864
+ flags = "CAN_ANIMATE_ON_COMPOSITOR SCROLL_LINKED_EFFECTIVE"
1865
+ spec = "https://drafts.csswg.org/css-transforms-2/#individual-transforms"
1866
+ servo_restyle_damage = "recalculate_overflow"
1867
+ affects = "overflow"
1868
+
1869
+ [scroll-snap-align]
1870
+ type = "ScrollSnapAlign"
1871
+ initial = "computed::ScrollSnapAlign::none()"
1872
+ struct = "box"
1873
+ engine = "gecko"
1874
+ spec = "https://drafts.csswg.org/css-scroll-snap-1/#scroll-snap-align"
1875
+ animation_type = "discrete"
1876
+ affects = "paint"
1877
+
1878
+ [scroll-snap-stop]
1879
+ type = "ScrollSnapStop"
1880
+ initial = "computed::ScrollSnapStop::Normal"
1881
+ struct = "box"
1882
+ engine = "gecko"
1883
+ spec = "https://drafts.csswg.org/css-scroll-snap-1/#scroll-snap-stop"
1884
+ animation_type = "discrete"
1885
+ affects = "paint"
1886
+
1887
+ [scroll-snap-type]
1888
+ type = "ScrollSnapType"
1889
+ initial = "computed::ScrollSnapType::none()"
1890
+ struct = "box"
1891
+ engine = "gecko"
1892
+ spec = "https://drafts.csswg.org/css-scroll-snap-1/#scroll-snap-type"
1893
+ animation_type = "discrete"
1894
+ affects = "paint"
1895
+
1896
+ [scrollbar-color]
1897
+ type = "ScrollbarColor"
1898
+ initial = "Default::default()"
1899
+ struct = "inherited_ui"
1900
+ servo_pref = "layout.unimplemented"
1901
+ spec = "https://drafts.csswg.org/css-scrollbars-1/#scrollbar-color"
1902
+ boxed = true
1903
+ ignored_when_colors_disabled = true
1904
+ affects = "paint"
1905
+
1906
+ [-moz-line-scroll-amount]
1907
+ type = "length::NonNegativeLengthOrAuto"
1908
+ initial = "computed::length::NonNegativeLengthOrAuto::auto()"
1909
+ struct = "ui"
1910
+ engine = "gecko"
1911
+ animation_type = "discrete"
1912
+ spec = "None (Nonstandard internal property)"
1913
+ enabled_in = "chrome"
1914
+ affects = ""
1915
+
1916
+ [-moz-inert]
1917
+ type = "Inert"
1918
+ initial = "specified::Inert::None"
1919
+ struct = "inherited_ui"
1920
+ engine = "gecko"
1921
+ gecko_ffi_name = "mInert"
1922
+ animation_type = "discrete"
1923
+ enabled_in = "ua"
1924
+ spec = "Nonstandard (https://html.spec.whatwg.org/multipage/#inert-subtrees)"
1925
+ affects = "paint"
1926
+
1927
+ [-moz-user-focus]
1928
+ type = "UserFocus"
1929
+ initial = "specified::UserFocus::Normal"
1930
+ struct = "inherited_ui"
1931
+ engine = "gecko"
1932
+ gecko_ffi_name = "mUserFocus"
1933
+ animation_type = "discrete"
1934
+ spec = "Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-user-focus)"
1935
+ enabled_in = "chrome"
1936
+ affects = ""
1937
+
1938
+ [-moz-theme]
1939
+ type = "MozTheme"
1940
+ initial = "specified::MozTheme::Auto"
1941
+ struct = "inherited_ui"
1942
+ engine = "gecko"
1943
+ enabled_in = "chrome"
1944
+ animation_type = "discrete"
1945
+ spec = "Internal"
1946
+ affects = "paint"
1947
+
1948
+ [scrollbar-gutter]
1949
+ type = "ScrollbarGutter"
1950
+ initial = "computed::ScrollbarGutter::AUTO"
1951
+ struct = "box"
1952
+ engine = "gecko"
1953
+ animation_type = "discrete"
1954
+ spec = "https://drafts.csswg.org/css-overflow-3/#scrollbar-gutter-property"
1955
+ affects = "layout"
1956
+
1957
+ [shape-image-threshold]
1958
+ type = "Opacity"
1959
+ initial = "0.0"
1960
+ struct = "box"
1961
+ engine = "gecko"
1962
+ spec = "https://drafts.csswg.org/css-shapes/#shape-image-threshold-property"
1963
+ affects = "layout"
1964
+
1965
+ [shape-margin]
1966
+ type = "NonNegativeLengthPercentage"
1967
+ initial = "computed::NonNegativeLengthPercentage::zero()"
1968
+ struct = "box"
1969
+ engine = "gecko"
1970
+ spec = "https://drafts.csswg.org/css-shapes/#shape-margin-property"
1971
+ affects = "layout"
1972
+
1973
+ [shape-outside]
1974
+ type = "basic_shape::ShapeOutside"
1975
+ initial = "generics::basic_shape::ShapeOutside::None"
1976
+ struct = "box"
1977
+ engine = "gecko"
1978
+ spec = "https://drafts.csswg.org/css-shapes/#shape-outside-property"
1979
+ affects = "layout"
1980
+
1981
+ [size]
1982
+ type = "PageSize"
1983
+ initial = "computed::PageSize::auto()"
1984
+ struct = "page"
1985
+ engine = "gecko"
1986
+ spec = "https://drafts.csswg.org/css-page-3/#page-size-prop"
1987
+ animation_type = "none"
1988
+ rule_types_allowed = ["page"]
1989
+ affects = "layout"
1990
+
1991
+ [stop-color]
1992
+ type = "Color"
1993
+ initial = "computed::Color::BLACK"
1994
+ struct = "svg"
1995
+ engine = "gecko"
1996
+ spec = "https://svgwg.org/svg2-draft/pservers.html#StopColorProperties"
1997
+ affects = "paint"
1998
+
1999
+ [stop-opacity]
2000
+ type = "Opacity"
2001
+ initial = "1.0"
2002
+ struct = "svg"
2003
+ engine = "gecko"
2004
+ spec = "https://svgwg.org/svg2-draft/pservers.html#StopOpacityProperty"
2005
+ affects = "paint"
2006
+
2007
+ [stroke]
2008
+ type = "SVGPaint"
2009
+ initial = "Default::default()"
2010
+ struct = "inherited_svg"
2011
+ boxed = true
2012
+ spec = "https://svgwg.org/svg2-draft/painting.html#SpecifyingStrokePaint"
2013
+ affects = "paint"
2014
+
2015
+ [stroke-dasharray]
2016
+ type = "SVGStrokeDashArray"
2017
+ initial = "Default::default()"
2018
+ struct = "inherited_svg"
2019
+ spec = "https://svgwg.org/svg2-draft/painting.html#StrokeDashing"
2020
+ affects = "paint"
2021
+
2022
+ [stroke-dashoffset]
2023
+ type = "SVGLength"
2024
+ initial = "computed::SVGLength::zero()"
2025
+ struct = "inherited_svg"
2026
+ spec = "https://svgwg.org/svg2-draft/painting.html#StrokeDashing"
2027
+ affects = "paint"
2028
+
2029
+ [stroke-miterlimit]
2030
+ type = "NonNegativeNumber"
2031
+ initial = "From::from(4.0)"
2032
+ struct = "inherited_svg"
2033
+ spec = "https://svgwg.org/svg2-draft/painting.html#StrokeMiterlimitProperty"
2034
+ affects = "layout"
2035
+
2036
+ [stroke-opacity]
2037
+ type = "SVGOpacity"
2038
+ initial = "Default::default()"
2039
+ struct = "inherited_svg"
2040
+ spec = "https://svgwg.org/svg2-draft/painting.html#StrokeOpacity"
2041
+ affects = "paint"
2042
+
2043
+ [stroke-width]
2044
+ type = "SVGWidth"
2045
+ initial = "computed::SVGWidth::one()"
2046
+ struct = "inherited_svg"
2047
+ spec = "https://svgwg.org/svg2-draft/painting.html#StrokeWidth"
2048
+ affects = "layout"
2049
+
2050
+ [text-align]
2051
+ type = "TextAlign"
2052
+ initial = "computed::TextAlign::Start"
2053
+ struct = "inherited_text"
2054
+ animation_type = "discrete"
2055
+ spec = "https://drafts.csswg.org/css-text/#propdef-text-align"
2056
+ servo_restyle_damage = "rebuild_box"
2057
+ affects = "layout"
2058
+
2059
+ [text-align-last]
2060
+ type = "TextAlignLast"
2061
+ initial = "computed::text::TextAlignLast::Auto"
2062
+ struct = "inherited_text"
2063
+ animation_type = "discrete"
2064
+ spec = "https://drafts.csswg.org/css-text/#propdef-text-align-last"
2065
+ affects = "layout"
2066
+
2067
+ [text-indent]
2068
+ type = "TextIndent"
2069
+ initial = "computed::TextIndent::zero()"
2070
+ struct = "inherited_text"
2071
+ spec = "https://drafts.csswg.org/css-text/#propdef-text-indent"
2072
+ servo_restyle_damage = "rebuild_box"
2073
+ affects = "layout"
2074
+
2075
+ [text-justify]
2076
+ type = "TextJustify"
2077
+ initial = "computed::TextJustify::Auto"
2078
+ struct = "inherited_text"
2079
+ animation_type = "discrete"
2080
+ spec = "https://drafts.csswg.org/css-text/#propdef-text-justify"
2081
+ servo_restyle_damage = "rebuild_box"
2082
+ affects = "layout"
2083
+
2084
+ [text-shadow]
2085
+ type = "SimpleShadow"
2086
+ struct = "inherited_text"
2087
+ vector = { simple_bindings = true, animation_type = "with_zero" }
2088
+ ignored_when_colors_disabled = true
2089
+ spec = "https://drafts.csswg.org/css-text-decor-3/#text-shadow-property"
2090
+ servo_restyle_damage = "repaint"
2091
+ affects = "overflow"
2092
+
2093
+ [text-transform]
2094
+ type = "TextTransform"
2095
+ initial = "computed::TextTransform::none()"
2096
+ struct = "inherited_text"
2097
+ animation_type = "discrete"
2098
+ spec = "https://drafts.csswg.org/css-text/#propdef-text-transform"
2099
+ servo_restyle_damage = "rebuild_box"
2100
+ affects = "layout"
2101
+
2102
+ [top]
2103
+ type = "Inset"
2104
+ initial = "computed::Inset::auto()"
2105
+ struct = "position"
2106
+ flags = "SCROLL_LINKED_EFFECTIVE"
2107
+ spec = "https://www.w3.org/TR/CSS2/visuren.html#propdef-top"
2108
+ allow_quirks = true
2109
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
2110
+ gecko_ffi_name = "mOffset.0"
2111
+ servo_restyle_damage = "rebuild_box"
2112
+ logical_group = "inset"
2113
+ affects = "layout"
2114
+
2115
+ [touch-action]
2116
+ type = "TouchAction"
2117
+ initial = "computed::TouchAction::auto()"
2118
+ struct = "box"
2119
+ animation_type = "discrete"
2120
+ spec = "https://compat.spec.whatwg.org/#touch-action"
2121
+ affects = "paint"
2122
+
2123
+ [transform]
2124
+ type = "Transform"
2125
+ initial = "generics::transform::Transform::none()"
2126
+ struct = "box"
2127
+ extra_prefixes = ["moz:layout.css.prefixes.transforms"]
2128
+ flags = "CAN_ANIMATE_ON_COMPOSITOR SCROLL_LINKED_EFFECTIVE"
2129
+ spec = "https://drafts.csswg.org/css-transforms/#propdef-transform"
2130
+ servo_restyle_damage = "recalculate_overflow"
2131
+ affects = "overflow"
2132
+
2133
+ [transform-box]
2134
+ type = "TransformBox"
2135
+ initial = "computed::TransformBox::ViewBox"
2136
+ struct = "box"
2137
+ engine = "gecko"
2138
+ spec = "https://drafts.csswg.org/css-transforms/#transform-box"
2139
+ animation_type = "discrete"
2140
+ affects = "overflow"
2141
+
2142
+ [transform-origin]
2143
+ type = "TransformOrigin"
2144
+ initial = "computed::TransformOrigin::initial_value()"
2145
+ struct = "box"
2146
+ extra_prefixes = ["moz:layout.css.prefixes.transforms", "webkit"]
2147
+ gecko_ffi_name = "mTransformOrigin"
2148
+ boxed = true
2149
+ spec = "https://drafts.csswg.org/css-transforms/#transform-origin-property"
2150
+ servo_restyle_damage = "recalculate_overflow"
2151
+ affects = "overflow"
2152
+
2153
+ [transform-style]
2154
+ type = "TransformStyle"
2155
+ initial = "computed::TransformStyle::Flat"
2156
+ struct = "box"
2157
+ spec = "https://drafts.csswg.org/css-transforms-2/#transform-style-property"
2158
+ extra_prefixes = ["moz:layout.css.prefixes.transforms", "webkit"]
2159
+ animation_type = "discrete"
2160
+ servo_restyle_damage = "recalculate_overflow"
2161
+ affects = "overflow"
2162
+
2163
+ [transition-behavior]
2164
+ type = "TransitionBehavior"
2165
+ initial = "computed::TransitionBehavior::normal()"
2166
+ struct = "ui"
2167
+ vector = { need_index = true }
2168
+ animation_type = "none"
2169
+ spec = "https://drafts.csswg.org/css-transitions-2/#transition-behavior-property"
2170
+ affects = ""
2171
+
2172
+ [transition-delay]
2173
+ type = "Time"
2174
+ initial = "computed::Time::zero()"
2175
+ struct = "ui"
2176
+ vector = { need_index = true }
2177
+ animation_type = "none"
2178
+ extra_prefixes = ["moz:layout.css.prefixes.transitions", "webkit"]
2179
+ spec = "https://drafts.csswg.org/css-transitions/#propdef-transition-delay"
2180
+ affects = ""
2181
+
2182
+ [transition-duration]
2183
+ type = "Time"
2184
+ initial = "computed::Time::zero()"
2185
+ struct = "ui"
2186
+ parse_method = "parse_non_negative"
2187
+ vector = { need_index = true }
2188
+ animation_type = "none"
2189
+ extra_prefixes = ["moz:layout.css.prefixes.transitions", "webkit"]
2190
+ spec = "https://drafts.csswg.org/css-transitions/#propdef-transition-duration"
2191
+ affects = ""
2192
+
2193
+ [transition-property]
2194
+ type = "TransitionProperty"
2195
+ initial = "computed::TransitionProperty::all()"
2196
+ struct = "ui"
2197
+ vector = { none_value = "computed::TransitionProperty::none()", need_index = true }
2198
+ animation_type = "none"
2199
+ extra_prefixes = ["moz:layout.css.prefixes.transitions", "webkit"]
2200
+ spec = "https://drafts.csswg.org/css-transitions/#propdef-transition-property"
2201
+ affects = ""
2202
+
2203
+ [transition-timing-function]
2204
+ type = "TimingFunction"
2205
+ initial = "computed::TimingFunction::ease()"
2206
+ struct = "ui"
2207
+ vector = { need_index = true }
2208
+ animation_type = "none"
2209
+ extra_prefixes = ["moz:layout.css.prefixes.transitions", "webkit"]
2210
+ spec = "https://drafts.csswg.org/css-transitions/#propdef-transition-timing-function"
2211
+ affects = ""
2212
+
2213
+ [translate]
2214
+ type = "Translate"
2215
+ initial = "generics::transform::Translate::None"
2216
+ struct = "box"
2217
+ boxed = true
2218
+ flags = "CAN_ANIMATE_ON_COMPOSITOR SCROLL_LINKED_EFFECTIVE"
2219
+ spec = "https://drafts.csswg.org/css-transforms-2/#individual-transforms"
2220
+ servo_restyle_damage = "recalculate_overflow"
2221
+ affects = "overflow"
2222
+
2223
+ [user-select]
2224
+ type = "UserSelect"
2225
+ initial = "computed::UserSelect::Auto"
2226
+ struct = "ui"
2227
+ extra_prefixes = ["moz", "webkit"]
2228
+ animation_type = "discrete"
2229
+ spec = "https://drafts.csswg.org/css-ui-4/#propdef-user-select"
2230
+ affects = ""
2231
+
2232
+ [-moz-force-broken-image-icon]
2233
+ type = "BoolInteger"
2234
+ initial = "computed::BoolInteger::zero()"
2235
+ struct = "ui"
2236
+ engine = "gecko"
2237
+ animation_type = "discrete"
2238
+ spec = "None (Nonstandard Firefox-only property)"
2239
+ affects = "layout"
2240
+
2241
+ [-moz-subtree-hidden-only-visually]
2242
+ type = "BoolInteger"
2243
+ initial = "computed::BoolInteger::zero()"
2244
+ struct = "ui"
2245
+ engine = "gecko"
2246
+ animation_type = "discrete"
2247
+ spec = "None (Nonstandard internal property)"
2248
+ enabled_in = "chrome"
2249
+ affects = "paint"
2250
+
2251
+ [-moz-window-input-region-margin]
2252
+ type = "Length"
2253
+ initial = "computed::Length::zero()"
2254
+ struct = "ui"
2255
+ engine = "gecko"
2256
+ spec = "None (Nonstandard internal property)"
2257
+ enabled_in = "chrome"
2258
+ affects = ""
2259
+
2260
+ [-moz-window-opacity]
2261
+ type = "Opacity"
2262
+ initial = "1.0"
2263
+ struct = "ui"
2264
+ engine = "gecko"
2265
+ gecko_ffi_name = "mWindowOpacity"
2266
+ spec = "None (Nonstandard internal property)"
2267
+ enabled_in = "chrome"
2268
+ affects = "paint"
2269
+
2270
+ [-moz-window-transform]
2271
+ type = "Transform"
2272
+ initial = "generics::transform::Transform::none()"
2273
+ struct = "ui"
2274
+ engine = "gecko"
2275
+ spec = "None (Nonstandard internal property)"
2276
+ enabled_in = "chrome"
2277
+ affects = "overflow"
2278
+
2279
+ [animation-composition]
2280
+ type = "AnimationComposition"
2281
+ initial = "computed::AnimationComposition::Replace"
2282
+ struct = "ui"
2283
+ vector = { need_index = true }
2284
+ animation_type = "none"
2285
+ spec = "https://drafts.csswg.org/css-animations-2/#animation-composition"
2286
+ affects = ""
2287
+
2288
+ [scroll-timeline-axis]
2289
+ type = "ScrollAxis"
2290
+ initial = "computed::ScrollAxis::default()"
2291
+ struct = "ui"
2292
+ engine = "gecko"
2293
+ vector = { need_index = true }
2294
+ animation_type = "none"
2295
+ gecko_pref = "layout.css.scroll-driven-animations.enabled"
2296
+ spec = "https://drafts.csswg.org/scroll-animations-1/#scroll-timeline-axis"
2297
+ rule_types_allowed = ["style", "scope"]
2298
+ affects = ""
2299
+
2300
+ [scroll-timeline-name]
2301
+ type = "TimelineName"
2302
+ initial = "computed::TimelineName::none()"
2303
+ struct = "ui"
2304
+ engine = "gecko"
2305
+ vector = { need_index = true }
2306
+ animation_type = "none"
2307
+ gecko_pref = "layout.css.scroll-driven-animations.enabled"
2308
+ spec = "https://drafts.csswg.org/scroll-animations-1/#scroll-timeline-name"
2309
+ rule_types_allowed = ["style", "scope"]
2310
+ affects = ""
2311
+
2312
+ [view-timeline-axis]
2313
+ type = "ScrollAxis"
2314
+ initial = "computed::ScrollAxis::default()"
2315
+ struct = "ui"
2316
+ engine = "gecko"
2317
+ vector = { need_index = true }
2318
+ animation_type = "none"
2319
+ gecko_pref = "layout.css.scroll-driven-animations.enabled"
2320
+ spec = "https://drafts.csswg.org/scroll-animations-1/#view-timeline-axis"
2321
+ rule_types_allowed = ["style", "scope"]
2322
+ affects = ""
2323
+
2324
+ [view-timeline-inset]
2325
+ type = "ViewTimelineInset"
2326
+ initial = "computed::ViewTimelineInset::default()"
2327
+ struct = "ui"
2328
+ engine = "gecko"
2329
+ vector = { need_index = true }
2330
+ animation_type = "none"
2331
+ gecko_pref = "layout.css.scroll-driven-animations.enabled"
2332
+ spec = "https://drafts.csswg.org/scroll-animations-1/#view-timeline-axis"
2333
+ rule_types_allowed = ["style", "scope"]
2334
+ affects = ""
2335
+
2336
+ [view-timeline-name]
2337
+ type = "TimelineName"
2338
+ initial = "computed::TimelineName::none()"
2339
+ struct = "ui"
2340
+ engine = "gecko"
2341
+ vector = { need_index = true }
2342
+ animation_type = "none"
2343
+ gecko_pref = "layout.css.scroll-driven-animations.enabled"
2344
+ spec = "https://drafts.csswg.org/scroll-animations-1/#view-timeline-name"
2345
+ rule_types_allowed = ["style", "scope"]
2346
+ affects = ""
2347
+
2348
+ [view-transition-class]
2349
+ type = "ViewTransitionClass"
2350
+ initial = "computed::ViewTransitionClass::none()"
2351
+ struct = "ui"
2352
+ servo_pref = "layout.unimplemented"
2353
+ animation_type = "discrete"
2354
+ spec = "https://drafts.csswg.org/css-view-transitions-2/#view-transition-class-prop"
2355
+ affects = ""
2356
+
2357
+ [view-transition-name]
2358
+ type = "ViewTransitionName"
2359
+ initial = "computed::ViewTransitionName::none()"
2360
+ struct = "ui"
2361
+ servo_pref = "layout.unimplemented"
2362
+ animation_type = "discrete"
2363
+ spec = "https://drafts.csswg.org/css-view-transitions-1/#view-transition-name-prop"
2364
+ affects = ""
2365
+
2366
+ [vector-effect]
2367
+ type = "VectorEffect"
2368
+ initial = "computed::VectorEffect::none()"
2369
+ struct = "svg"
2370
+ engine = "gecko"
2371
+ animation_type = "discrete"
2372
+ spec = "https://svgwg.org/svg2-draft/coords.html#VectorEffects"
2373
+ affects = "layout"
2374
+
2375
+ [cx]
2376
+ type = "LengthPercentage"
2377
+ initial = "computed::LengthPercentage::zero()"
2378
+ struct = "svg"
2379
+ spec = "https://svgwg.org/svg2-draft/geometry.html#CX"
2380
+ affects = "layout"
2381
+
2382
+ [cy]
2383
+ type = "LengthPercentage"
2384
+ initial = "computed::LengthPercentage::zero()"
2385
+ struct = "svg"
2386
+ spec = "https://svgwg.org/svg2-draft/geometry.html#CY"
2387
+ affects = "layout"
2388
+
2389
+ [mask-image]
2390
+ type = "Image"
2391
+ initial = "computed::Image::None"
2392
+ struct = "svg"
2393
+ servo_pref = "layout.unimplemented"
2394
+ parse_method = "parse_with_cors_anonymous"
2395
+ spec = "https://drafts.fxtf.org/css-masking-1/#propdef-mask-image"
2396
+ vector = {}
2397
+ extra_prefixes = ["webkit"]
2398
+ animation_type = "discrete"
2399
+ affects = "paint"
2400
+
2401
+ [mask-position-x]
2402
+ type = "position::HorizontalPosition"
2403
+ initial = "computed::LengthPercentage::zero_percent()"
2404
+ struct = "svg"
2405
+ servo_pref = "layout.unimplemented"
2406
+ extra_prefixes = ["webkit"]
2407
+ spec = "https://drafts.fxtf.org/css-masking-1/#propdef-mask-position"
2408
+ vector = { animation_type = "repeatable_list" }
2409
+ affects = "paint"
2410
+
2411
+ [mask-position-y]
2412
+ type = "position::VerticalPosition"
2413
+ initial = "computed::LengthPercentage::zero_percent()"
2414
+ struct = "svg"
2415
+ servo_pref = "layout.unimplemented"
2416
+ extra_prefixes = ["webkit"]
2417
+ spec = "https://drafts.fxtf.org/css-masking-1/#propdef-mask-position"
2418
+ vector = { animation_type = "repeatable_list" }
2419
+ affects = "paint"
2420
+
2421
+ [mask-repeat]
2422
+ type = "BackgroundRepeat"
2423
+ initial = "computed::BackgroundRepeat::repeat()"
2424
+ struct = "svg"
2425
+ servo_pref = "layout.unimplemented"
2426
+ extra_prefixes = ["webkit"]
2427
+ animation_type = "discrete"
2428
+ spec = "https://drafts.fxtf.org/css-masking-1/#propdef-mask-repeat"
2429
+ vector = {}
2430
+ affects = "paint"
2431
+
2432
+ [mask-size]
2433
+ type = "background::BackgroundSize"
2434
+ initial = "computed::BackgroundSize::auto()"
2435
+ struct = "svg"
2436
+ servo_pref = "layout.unimplemented"
2437
+ extra_prefixes = ["webkit"]
2438
+ spec = "https://drafts.fxtf.org/css-masking-1/#propdef-mask-size"
2439
+ vector = { animation_type = "repeatable_list" }
2440
+ affects = "paint"
2441
+
2442
+ [r]
2443
+ type = "NonNegativeLengthPercentage"
2444
+ initial = "computed::NonNegativeLengthPercentage::zero()"
2445
+ struct = "svg"
2446
+ spec = "https://svgwg.org/svg2-draft/geometry.html#R"
2447
+ affects = "layout"
2448
+
2449
+ [rx]
2450
+ type = "NonNegativeLengthPercentageOrAuto"
2451
+ initial = "computed::NonNegativeLengthPercentageOrAuto::auto()"
2452
+ struct = "svg"
2453
+ spec = "https://svgwg.org/svg2-draft/geometry.html#RX"
2454
+ affects = "layout"
2455
+
2456
+ [ry]
2457
+ type = "NonNegativeLengthPercentageOrAuto"
2458
+ initial = "computed::NonNegativeLengthPercentageOrAuto::auto()"
2459
+ struct = "svg"
2460
+ spec = "https://svgwg.org/svg2-draft/geometry.html#RY"
2461
+ affects = "layout"
2462
+
2463
+ [x]
2464
+ type = "LengthPercentage"
2465
+ initial = "computed::LengthPercentage::zero()"
2466
+ struct = "svg"
2467
+ spec = "https://svgwg.org/svg2-draft/geometry.html#X"
2468
+ affects = "layout"
2469
+
2470
+ [y]
2471
+ type = "LengthPercentage"
2472
+ initial = "computed::LengthPercentage::zero()"
2473
+ struct = "svg"
2474
+ spec = "https://svgwg.org/svg2-draft/geometry.html#Y"
2475
+ affects = "layout"
2476
+
2477
+ [width]
2478
+ type = "Size"
2479
+ initial = "computed::Size::auto()"
2480
+ struct = "position"
2481
+ logical_group = "size"
2482
+ allow_quirks = true
2483
+ parse_method = "parse_size_for_width_or_height"
2484
+ flags = "SCROLL_LINKED_EFFECTIVE"
2485
+ spec = "https://drafts.csswg.org/css-box/#propdef-width"
2486
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
2487
+ servo_restyle_damage = "rebuild_box"
2488
+ affects = "layout"
2489
+
2490
+ [will-change]
2491
+ type = "WillChange"
2492
+ initial = "computed::WillChange::auto()"
2493
+ struct = "box"
2494
+ animation_type = "none"
2495
+ spec = "https://drafts.csswg.org/css-will-change/#will-change"
2496
+ affects = "layout"
2497
+
2498
+ [word-break]
2499
+ type = "WordBreak"
2500
+ initial = "computed::WordBreak::Normal"
2501
+ struct = "inherited_text"
2502
+ animation_type = "discrete"
2503
+ spec = "https://drafts.csswg.org/css-text/#propdef-word-break"
2504
+ servo_restyle_damage = "rebuild_box"
2505
+ affects = "layout"
2506
+
2507
+ [word-spacing]
2508
+ type = "WordSpacing"
2509
+ initial = "computed::WordSpacing::zero()"
2510
+ struct = "inherited_text"
2511
+ spec = "https://drafts.csswg.org/css-text/#propdef-word-spacing"
2512
+ servo_restyle_damage = "rebuild_box"
2513
+ affects = "layout"
2514
+
2515
+ [-moz-control-character-visibility]
2516
+ type = "text::MozControlCharacterVisibility"
2517
+ initial = "Default::default()"
2518
+ struct = "inherited_text"
2519
+ engine = "gecko"
2520
+ enabled_in = "chrome"
2521
+ gecko_pref = "layout.css.moz-control-character-visibility.enabled"
2522
+ has_effect_on_gecko_scrollbars = false
2523
+ animation_type = "none"
2524
+ spec = "Nonstandard"
2525
+ affects = "layout"
2526
+
2527
+ [-webkit-text-fill-color]
2528
+ type = "Color"
2529
+ initial = "computed_value::T::currentcolor()"
2530
+ struct = "inherited_text"
2531
+ engine = "gecko"
2532
+ ignored_when_colors_disabled = true
2533
+ spec = "https://compat.spec.whatwg.org/#the-webkit-text-fill-color"
2534
+ affects = "paint"
2535
+
2536
+ [-webkit-text-stroke-color]
2537
+ type = "Color"
2538
+ initial = "computed_value::T::currentcolor()"
2539
+ struct = "inherited_text"
2540
+ engine = "gecko"
2541
+ ignored_when_colors_disabled = true
2542
+ spec = "https://compat.spec.whatwg.org/#the-webkit-text-stroke-color"
2543
+ affects = "paint"
2544
+
2545
+ [-webkit-text-stroke-width]
2546
+ type = "LineWidth"
2547
+ initial = "app_units::Au(0)"
2548
+ struct = "inherited_text"
2549
+ engine = "gecko"
2550
+ spec = "https://compat.spec.whatwg.org/#the-webkit-text-stroke-width"
2551
+ animation_type = "discrete"
2552
+ affects = "overflow"
2553
+
2554
+ [forced-color-adjust]
2555
+ type = "ForcedColorAdjust"
2556
+ initial = "computed::ForcedColorAdjust::Auto"
2557
+ struct = "inherited_text"
2558
+ servo_pref = "layout.unimplemented"
2559
+ animation_type = "discrete"
2560
+ spec = "https://drafts.csswg.org/css-color-adjust-1/#forced-color-adjust-prop"
2561
+ affects = "paint"
2562
+
2563
+ [hyphenate-character]
2564
+ type = "HyphenateCharacter"
2565
+ initial = "computed::HyphenateCharacter::Auto"
2566
+ struct = "inherited_text"
2567
+ engine = "gecko"
2568
+ animation_type = "discrete"
2569
+ spec = "https://www.w3.org/TR/css-text-4/#hyphenate-character"
2570
+ affects = "layout"
2571
+
2572
+ [hyphenate-limit-chars]
2573
+ type = "HyphenateLimitChars"
2574
+ initial = "computed::HyphenateLimitChars::auto()"
2575
+ struct = "inherited_text"
2576
+ engine = "gecko"
2577
+ spec = "https://drafts.csswg.org/css-text-4/#hyphenate-char-limits"
2578
+ affects = "layout"
2579
+ boxed = true
2580
+
2581
+ [line-break]
2582
+ type = "LineBreak"
2583
+ initial = "computed::LineBreak::Auto"
2584
+ struct = "inherited_text"
2585
+ animation_type = "discrete"
2586
+ spec = "https://drafts.csswg.org/css-text-3/#line-break-property"
2587
+ affects = "layout"
2588
+ servo_restyle_damage = "rebuild_box"
2589
+
2590
+ [ruby-position]
2591
+ type = "RubyPosition"
2592
+ initial = "computed::RubyPosition::AlternateOver"
2593
+ struct = "inherited_text"
2594
+ engine = "gecko"
2595
+ spec = "https://drafts.csswg.org/css-ruby/#ruby-position-property"
2596
+ animation_type = "discrete"
2597
+ affects = "layout"
2598
+
2599
+ [tab-size]
2600
+ type = "NonNegativeLengthOrNumber"
2601
+ initial = "generics::length::LengthOrNumber::Number(From::from(8.0))"
2602
+ struct = "inherited_text"
2603
+ spec = "https://drafts.csswg.org/css-text-3/#tab-size-property"
2604
+ extra_gecko_aliases = ["-moz-tab-size"]
2605
+ affects = "layout"
2606
+
2607
+ [text-autospace]
2608
+ type = "TextAutospace"
2609
+ initial = "computed::text::TextAutospace::NO_AUTOSPACE"
2610
+ struct = "inherited_text"
2611
+ engine = "gecko"
2612
+ animation_type = "discrete"
2613
+ gecko_pref = "layout.css.text-autospace.enabled"
2614
+ has_effect_on_gecko_scrollbars = false
2615
+ spec = "https://drafts.csswg.org/css-text-4/#text-autospace-property"
2616
+ affects = "layout"
2617
+
2618
+ [text-box-edge]
2619
+ type = "TextBoxEdge"
2620
+ initial = "computed::TextBoxEdge::Auto"
2621
+ struct = "inherited_text"
2622
+ engine = "gecko"
2623
+ animation_type = "discrete"
2624
+ gecko_pref = "layout.css.text-box.enabled"
2625
+ has_effect_on_gecko_scrollbars = false
2626
+ spec = "https://drafts.csswg.org/css-inline/#text-box-edge"
2627
+ affects = "layout"
2628
+
2629
+ [text-box-trim]
2630
+ type = "TextBoxTrim"
2631
+ initial = "computed::TextBoxTrim::none()"
2632
+ struct = "text"
2633
+ engine = "gecko"
2634
+ animation_type = "discrete"
2635
+ gecko_pref = "layout.css.text-box.enabled"
2636
+ has_effect_on_gecko_scrollbars = false
2637
+ spec = "https://drafts.csswg.org/css-inline/#text-box-trim"
2638
+ affects = "layout"
2639
+
2640
+ [text-decoration-skip-ink]
2641
+ type = "TextDecorationSkipInk"
2642
+ initial = "computed::TextDecorationSkipInk::Auto"
2643
+ struct = "inherited_text"
2644
+ engine = "gecko"
2645
+ animation_type = "discrete"
2646
+ spec = "https://drafts.csswg.org/css-text-decor-4/#text-decoration-skip-ink-property"
2647
+ affects = "overflow"
2648
+
2649
+ [text-emphasis-color]
2650
+ type = "Color"
2651
+ initial = "computed_value::T::currentcolor()"
2652
+ struct = "inherited_text"
2653
+ engine = "gecko"
2654
+ ignored_when_colors_disabled = true
2655
+ spec = "https://drafts.csswg.org/css-text-decor/#propdef-text-emphasis-color"
2656
+ affects = "paint"
2657
+
2658
+ [text-emphasis-position]
2659
+ type = "TextEmphasisPosition"
2660
+ initial = "computed::TextEmphasisPosition::AUTO"
2661
+ struct = "inherited_text"
2662
+ engine = "gecko"
2663
+ animation_type = "discrete"
2664
+ spec = "https://drafts.csswg.org/css-text-decor/#propdef-text-emphasis-position"
2665
+ affects = "layout"
2666
+
2667
+ [text-emphasis-style]
2668
+ type = "TextEmphasisStyle"
2669
+ initial = "computed::TextEmphasisStyle::None"
2670
+ struct = "inherited_text"
2671
+ engine = "gecko"
2672
+ animation_type = "discrete"
2673
+ spec = "https://drafts.csswg.org/css-text-decor/#propdef-text-emphasis-style"
2674
+ affects = "overflow"
2675
+
2676
+ [text-underline-offset]
2677
+ type = "LengthPercentageOrAuto"
2678
+ initial = "computed::LengthPercentageOrAuto::auto()"
2679
+ struct = "inherited_text"
2680
+ servo_pref = "layout.unimplemented"
2681
+ spec = "https://drafts.csswg.org/css-text-decor-4/#underline-offset"
2682
+ servo_restyle_damage = "rebuild_stacking_context"
2683
+ affects = "overflow"
2684
+
2685
+ [text-underline-position]
2686
+ type = "TextUnderlinePosition"
2687
+ initial = "computed::TextUnderlinePosition::AUTO"
2688
+ struct = "inherited_text"
2689
+ servo_pref = "layout.unimplemented"
2690
+ animation_type = "discrete"
2691
+ spec = "https://drafts.csswg.org/css-text-decor-3/#text-underline-position-property"
2692
+ servo_restyle_damage = "rebuild_stacking_context"
2693
+ affects = "overflow"
2694
+
2695
+ [writing-mode]
2696
+ type = "WritingModeProperty"
2697
+ initial = "computed::WritingModeProperty::HorizontalTb"
2698
+ struct = "inherited_box"
2699
+ spec = "https://drafts.csswg.org/css-writing-modes/#propdef-writing-mode"
2700
+ servo_pref = "layout.writing-mode.enabled"
2701
+ animation_type = "none"
2702
+ servo_restyle_damage = "rebuild_box"
2703
+ affects = "layout"
2704
+
2705
+ [z-index]
2706
+ type = "ZIndex"
2707
+ initial = "computed::ZIndex::auto()"
2708
+ struct = "position"
2709
+ spec = "https://www.w3.org/TR/CSS2/visuren.html#z-index"
2710
+ affects = "paint"
2711
+ servo_restyle_damage = "rebuild_stacking_context"
2712
+
2713
+ [zoom]
2714
+ type = "Zoom"
2715
+ initial = "computed::box_::Zoom::ONE"
2716
+ struct = "box"
2717
+ spec = "Non-standard (https://github.com/atanassov/css-zoom/ is the closest)"
2718
+ gecko_pref = "layout.css.zoom.enabled"
2719
+ servo_pref = "layout.unimplemented"
2720
+ affects = "layout"
2721
+ enabled_in = "chrome"
2722
+
2723
+ [border-image-outset]
2724
+ type = "NonNegativeLengthOrNumberRect"
2725
+ initial = "generics::rect::Rect::all(computed::NonNegativeLengthOrNumber::zero())"
2726
+ struct = "border"
2727
+ spec = "https://drafts.csswg.org/css-backgrounds/#border-image-outset"
2728
+ boxed = true
2729
+ servo_restyle_damage = "repaint"
2730
+ affects = "paint"
2731
+
2732
+ [border-image-repeat]
2733
+ type = "BorderImageRepeat"
2734
+ initial = "computed::BorderImageRepeat::stretch()"
2735
+ struct = "border"
2736
+ animation_type = "discrete"
2737
+ spec = "https://drafts.csswg.org/css-backgrounds/#the-border-image-repeat"
2738
+ servo_restyle_damage = "repaint"
2739
+ affects = "paint"
2740
+
2741
+ [border-image-slice]
2742
+ type = "BorderImageSlice"
2743
+ initial = "computed::BorderImageSlice::hundred_percent()"
2744
+ struct = "border"
2745
+ spec = "https://drafts.csswg.org/css-backgrounds/#border-image-slice"
2746
+ boxed = true
2747
+ servo_restyle_damage = "repaint"
2748
+ affects = "paint"
2749
+
2750
+ [border-image-source]
2751
+ type = "Image"
2752
+ initial = "computed::Image::None"
2753
+ struct = "border"
2754
+ animation_type = "discrete"
2755
+ ignored_when_colors_disabled = true
2756
+ servo_restyle_damage = "repaint"
2757
+ spec = "https://drafts.csswg.org/css-backgrounds/#the-background-image"
2758
+ affects = "paint"
2759
+
2760
+ [border-image-width]
2761
+ type = "BorderImageWidth"
2762
+ initial = "computed::BorderImageWidth::all(computed::BorderImageSideWidth::one())"
2763
+ struct = "border"
2764
+ spec = "https://drafts.csswg.org/css-backgrounds/#border-image-width"
2765
+ boxed = true
2766
+ servo_restyle_damage = "repaint"
2767
+ affects = "paint"
2768
+
2769
+ [text-overflow]
2770
+ type = "TextOverflow"
2771
+ initial = "computed::TextOverflow::get_initial_value()"
2772
+ struct = "text"
2773
+ servo_pref = "layout.unimplemented"
2774
+ animation_type = "discrete"
2775
+ boxed = true
2776
+ spec = "https://drafts.csswg.org/css-ui/#propdef-text-overflow"
2777
+ servo_restyle_damage = "rebuild_box"
2778
+ affects = "paint"
2779
+
2780
+ [text-decoration-line]
2781
+ type = "TextDecorationLine"
2782
+ initial = "specified::TextDecorationLine::none()"
2783
+ struct = "text"
2784
+ animation_type = "discrete"
2785
+ spec = "https://drafts.csswg.org/css-text-decor/#propdef-text-decoration-line"
2786
+ servo_restyle_damage = "recalculate_overflow"
2787
+ affects = "overflow"
2788
+
2789
+ [text-decoration-color]
2790
+ type = "Color"
2791
+ initial = "computed_value::T::currentcolor()"
2792
+ struct = "text"
2793
+ ignored_when_colors_disabled = true
2794
+ spec = "https://drafts.csswg.org/css-text-decor/#propdef-text-decoration-color"
2795
+ servo_restyle_damage = "recalculate_overflow"
2796
+ affects = "paint"
2797
+
2798
+ [text-decoration-inset]
2799
+ type = "TextDecorationInset"
2800
+ initial = "computed::text::TextDecorationInset::get_initial_value()"
2801
+ struct = "text"
2802
+ gecko_pref = "layout.css.text-decoration-inset.enabled"
2803
+ servo_pref = "layout.unimplemented"
2804
+ spec = "https://drafts.csswg.org/css-text-decor-4/#text-decoration-inset-property"
2805
+ boxed = true
2806
+ servo_restyle_damage = "rebuild_stacking_context"
2807
+ affects = "overflow"
2808
+
2809
+ [initial-letter]
2810
+ type = "InitialLetter"
2811
+ initial = "computed::InitialLetter::normal()"
2812
+ struct = "text"
2813
+ engine = "gecko"
2814
+ animation_type = "discrete"
2815
+ gecko_pref = "layout.css.initial-letter.enabled"
2816
+ spec = "https://drafts.csswg.org/css-inline/#sizing-drop-initials"
2817
+ affects = "layout"
2818
+
2819
+ [text-decoration-thickness]
2820
+ type = "TextDecorationLength"
2821
+ initial = "generics::text::GenericTextDecorationLength::Auto"
2822
+ struct = "text"
2823
+ spec = "https://drafts.csswg.org/css-text-decor-4/#text-decoration-width-property"
2824
+ servo_restyle_damage = "rebuild_stacking_context"
2825
+ affects = "overflow"
2826
+
2827
+ [-x-span]
2828
+ type = "Integer"
2829
+ initial = "1"
2830
+ struct = "table"
2831
+ engine = "gecko"
2832
+ spec = "Internal-only (for `<col span>` pres attr)"
2833
+ animation_type = "none"
2834
+ enabled_in = ""
2835
+ affects = "layout"
2836
+
2837
+ [border-top-color]
2838
+ type = "Color"
2839
+ initial = "computed_value::T::currentcolor()"
2840
+ struct = "border"
2841
+ spec = "https://drafts.csswg.org/css-backgrounds/#border-top-color"
2842
+ logical_group = "border-color"
2843
+ allow_quirks = true
2844
+ ignored_when_colors_disabled = true
2845
+ affects = "paint"
2846
+
2847
+ [border-right-color]
2848
+ type = "Color"
2849
+ initial = "computed_value::T::currentcolor()"
2850
+ struct = "border"
2851
+ spec = "https://drafts.csswg.org/css-backgrounds/#border-right-color"
2852
+ logical_group = "border-color"
2853
+ allow_quirks = true
2854
+ ignored_when_colors_disabled = true
2855
+ affects = "paint"
2856
+
2857
+ [border-bottom-color]
2858
+ type = "Color"
2859
+ initial = "computed_value::T::currentcolor()"
2860
+ struct = "border"
2861
+ spec = "https://drafts.csswg.org/css-backgrounds/#border-bottom-color"
2862
+ logical_group = "border-color"
2863
+ allow_quirks = true
2864
+ ignored_when_colors_disabled = true
2865
+ affects = "paint"
2866
+
2867
+ [border-left-color]
2868
+ type = "Color"
2869
+ initial = "computed_value::T::currentcolor()"
2870
+ struct = "border"
2871
+ spec = "https://drafts.csswg.org/css-backgrounds/#border-left-color"
2872
+ logical_group = "border-color"
2873
+ allow_quirks = true
2874
+ ignored_when_colors_disabled = true
2875
+ affects = "paint"
2876
+
2877
+ [border-block-start-color]
2878
+ type = "Color"
2879
+ initial = "computed_value::T::currentcolor()"
2880
+ struct = "border"
2881
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-border-block-start-color"
2882
+ logical = true
2883
+ logical_group = "border-color"
2884
+ ignored_when_colors_disabled = true
2885
+ affects = "paint"
2886
+
2887
+ [border-block-end-color]
2888
+ type = "Color"
2889
+ initial = "computed_value::T::currentcolor()"
2890
+ struct = "border"
2891
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-border-block-end-color"
2892
+ logical = true
2893
+ logical_group = "border-color"
2894
+ ignored_when_colors_disabled = true
2895
+ affects = "paint"
2896
+
2897
+ [border-inline-start-color]
2898
+ type = "Color"
2899
+ initial = "computed_value::T::currentcolor()"
2900
+ struct = "border"
2901
+ extra_gecko_aliases = ["-moz-border-start-color"]
2902
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-border-inline-start-color"
2903
+ logical = true
2904
+ logical_group = "border-color"
2905
+ ignored_when_colors_disabled = true
2906
+ affects = "paint"
2907
+
2908
+ [border-inline-end-color]
2909
+ type = "Color"
2910
+ initial = "computed_value::T::currentcolor()"
2911
+ struct = "border"
2912
+ extra_gecko_aliases = ["-moz-border-end-color"]
2913
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-border-inline-end-color"
2914
+ logical = true
2915
+ logical_group = "border-color"
2916
+ ignored_when_colors_disabled = true
2917
+ affects = "paint"
2918
+
2919
+ [border-top-style]
2920
+ type = "BorderStyle"
2921
+ initial = "specified::BorderStyle::None"
2922
+ struct = "border"
2923
+ spec = "https://drafts.csswg.org/css-backgrounds/#border-top-style"
2924
+ animation_type = "discrete"
2925
+ gecko_ffi_name = "mBorderStyle.0"
2926
+ logical_group = "border-style"
2927
+ affects = "layout"
2928
+
2929
+ [border-right-style]
2930
+ type = "BorderStyle"
2931
+ initial = "specified::BorderStyle::None"
2932
+ struct = "border"
2933
+ spec = "https://drafts.csswg.org/css-backgrounds/#border-right-style"
2934
+ animation_type = "discrete"
2935
+ gecko_ffi_name = "mBorderStyle.1"
2936
+ logical_group = "border-style"
2937
+ affects = "layout"
2938
+
2939
+ [border-bottom-style]
2940
+ type = "BorderStyle"
2941
+ initial = "specified::BorderStyle::None"
2942
+ struct = "border"
2943
+ spec = "https://drafts.csswg.org/css-backgrounds/#border-bottom-style"
2944
+ animation_type = "discrete"
2945
+ gecko_ffi_name = "mBorderStyle.2"
2946
+ logical_group = "border-style"
2947
+ affects = "layout"
2948
+
2949
+ [border-left-style]
2950
+ type = "BorderStyle"
2951
+ initial = "specified::BorderStyle::None"
2952
+ struct = "border"
2953
+ spec = "https://drafts.csswg.org/css-backgrounds/#border-left-style"
2954
+ animation_type = "discrete"
2955
+ gecko_ffi_name = "mBorderStyle.3"
2956
+ logical_group = "border-style"
2957
+ affects = "layout"
2958
+
2959
+ [border-block-start-style]
2960
+ type = "BorderStyle"
2961
+ initial = "specified::BorderStyle::None"
2962
+ struct = "border"
2963
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-border-block-start-style"
2964
+ animation_type = "none"
2965
+ gecko_ffi_name = "mBorderStyle.4"
2966
+ logical = true
2967
+ logical_group = "border-style"
2968
+ affects = "layout"
2969
+
2970
+ [border-block-end-style]
2971
+ type = "BorderStyle"
2972
+ initial = "specified::BorderStyle::None"
2973
+ struct = "border"
2974
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-border-block-end-style"
2975
+ animation_type = "none"
2976
+ gecko_ffi_name = "mBorderStyle.5"
2977
+ logical = true
2978
+ logical_group = "border-style"
2979
+ affects = "layout"
2980
+
2981
+ [border-inline-start-style]
2982
+ type = "BorderStyle"
2983
+ initial = "specified::BorderStyle::None"
2984
+ struct = "border"
2985
+ extra_gecko_aliases = ["-moz-border-start-style"]
2986
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-border-inline-start-style"
2987
+ animation_type = "none"
2988
+ gecko_ffi_name = "mBorderStyle.6"
2989
+ logical = true
2990
+ logical_group = "border-style"
2991
+ affects = "layout"
2992
+
2993
+ [border-inline-end-style]
2994
+ type = "BorderStyle"
2995
+ initial = "specified::BorderStyle::None"
2996
+ struct = "border"
2997
+ extra_gecko_aliases = ["-moz-border-end-style"]
2998
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-border-inline-end-style"
2999
+ animation_type = "none"
3000
+ gecko_ffi_name = "mBorderStyle.7"
3001
+ logical = true
3002
+ logical_group = "border-style"
3003
+ affects = "layout"
3004
+
3005
+ [border-top-width]
3006
+ type = "BorderSideWidth"
3007
+ initial = "computed::BorderSideWidth::medium()"
3008
+ struct = "border"
3009
+ spec = "https://drafts.csswg.org/css-backgrounds/#border-top-width"
3010
+ logical_group = "border-width"
3011
+ allow_quirks = true
3012
+ gecko_ffi_name = "mBorder.0"
3013
+ servo_restyle_damage = "rebuild_box"
3014
+ affects = "layout"
3015
+
3016
+ [border-right-width]
3017
+ type = "BorderSideWidth"
3018
+ initial = "computed::BorderSideWidth::medium()"
3019
+ struct = "border"
3020
+ spec = "https://drafts.csswg.org/css-backgrounds/#border-right-width"
3021
+ logical_group = "border-width"
3022
+ allow_quirks = true
3023
+ gecko_ffi_name = "mBorder.1"
3024
+ servo_restyle_damage = "rebuild_box"
3025
+ affects = "layout"
3026
+
3027
+ [border-bottom-width]
3028
+ type = "BorderSideWidth"
3029
+ initial = "computed::BorderSideWidth::medium()"
3030
+ struct = "border"
3031
+ spec = "https://drafts.csswg.org/css-backgrounds/#border-bottom-width"
3032
+ logical_group = "border-width"
3033
+ allow_quirks = true
3034
+ gecko_ffi_name = "mBorder.2"
3035
+ servo_restyle_damage = "rebuild_box"
3036
+ affects = "layout"
3037
+
3038
+ [border-left-width]
3039
+ type = "BorderSideWidth"
3040
+ initial = "computed::BorderSideWidth::medium()"
3041
+ struct = "border"
3042
+ spec = "https://drafts.csswg.org/css-backgrounds/#border-left-width"
3043
+ logical_group = "border-width"
3044
+ allow_quirks = true
3045
+ gecko_ffi_name = "mBorder.3"
3046
+ servo_restyle_damage = "rebuild_box"
3047
+ affects = "layout"
3048
+
3049
+ [border-block-start-width]
3050
+ type = "BorderSideWidth"
3051
+ initial = "computed::BorderSideWidth::medium()"
3052
+ struct = "border"
3053
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-border-block-start-width"
3054
+ logical = true
3055
+ logical_group = "border-width"
3056
+ gecko_ffi_name = "mBorder.4"
3057
+ servo_restyle_damage = "rebuild_box"
3058
+ affects = "layout"
3059
+
3060
+ [border-block-end-width]
3061
+ type = "BorderSideWidth"
3062
+ initial = "computed::BorderSideWidth::medium()"
3063
+ struct = "border"
3064
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-border-block-end-width"
3065
+ logical = true
3066
+ logical_group = "border-width"
3067
+ gecko_ffi_name = "mBorder.5"
3068
+ servo_restyle_damage = "rebuild_box"
3069
+ affects = "layout"
3070
+
3071
+ [border-inline-start-width]
3072
+ type = "BorderSideWidth"
3073
+ initial = "computed::BorderSideWidth::medium()"
3074
+ struct = "border"
3075
+ extra_gecko_aliases = ["-moz-border-start-width"]
3076
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-border-inline-start-width"
3077
+ logical = true
3078
+ logical_group = "border-width"
3079
+ gecko_ffi_name = "mBorder.6"
3080
+ servo_restyle_damage = "rebuild_box"
3081
+ affects = "layout"
3082
+
3083
+ [border-inline-end-width]
3084
+ type = "BorderSideWidth"
3085
+ initial = "computed::BorderSideWidth::medium()"
3086
+ struct = "border"
3087
+ extra_gecko_aliases = ["-moz-border-end-width"]
3088
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-border-inline-end-width"
3089
+ logical = true
3090
+ logical_group = "border-width"
3091
+ gecko_ffi_name = "mBorder.7"
3092
+ servo_restyle_damage = "rebuild_box"
3093
+ affects = "layout"
3094
+
3095
+ [border-top-left-radius]
3096
+ type = "BorderCornerRadius"
3097
+ initial = "computed::BorderCornerRadius::zero()"
3098
+ struct = "border"
3099
+ extra_prefixes = ["webkit"]
3100
+ spec = "https://drafts.csswg.org/css-backgrounds/#border-top-left-radius"
3101
+ gecko_ffi_name = "mBorderRadius.top_left"
3102
+ boxed = true
3103
+ logical_group = "border-radius"
3104
+ affects = "paint"
3105
+
3106
+ [border-top-right-radius]
3107
+ type = "BorderCornerRadius"
3108
+ initial = "computed::BorderCornerRadius::zero()"
3109
+ struct = "border"
3110
+ extra_prefixes = ["webkit"]
3111
+ spec = "https://drafts.csswg.org/css-backgrounds/#border-top-right-radius"
3112
+ gecko_ffi_name = "mBorderRadius.top_right"
3113
+ boxed = true
3114
+ logical_group = "border-radius"
3115
+ affects = "paint"
3116
+
3117
+ [border-bottom-right-radius]
3118
+ type = "BorderCornerRadius"
3119
+ initial = "computed::BorderCornerRadius::zero()"
3120
+ struct = "border"
3121
+ extra_prefixes = ["webkit"]
3122
+ spec = "https://drafts.csswg.org/css-backgrounds/#border-bottom-right-radius"
3123
+ gecko_ffi_name = "mBorderRadius.bottom_right"
3124
+ boxed = true
3125
+ logical_group = "border-radius"
3126
+ affects = "paint"
3127
+
3128
+ [border-bottom-left-radius]
3129
+ type = "BorderCornerRadius"
3130
+ initial = "computed::BorderCornerRadius::zero()"
3131
+ struct = "border"
3132
+ extra_prefixes = ["webkit"]
3133
+ spec = "https://drafts.csswg.org/css-backgrounds/#border-bottom-left-radius"
3134
+ gecko_ffi_name = "mBorderRadius.bottom_left"
3135
+ boxed = true
3136
+ logical_group = "border-radius"
3137
+ affects = "paint"
3138
+
3139
+ [border-start-start-radius]
3140
+ type = "BorderCornerRadius"
3141
+ initial = "computed::BorderCornerRadius::zero()"
3142
+ struct = "border"
3143
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-border-start-start-radius"
3144
+ gecko_ffi_name = "mBorderRadius.start_start"
3145
+ boxed = true
3146
+ logical_group = "border-radius"
3147
+ logical = true
3148
+ affects = "paint"
3149
+
3150
+ [border-start-end-radius]
3151
+ type = "BorderCornerRadius"
3152
+ initial = "computed::BorderCornerRadius::zero()"
3153
+ struct = "border"
3154
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-border-start-end-radius"
3155
+ gecko_ffi_name = "mBorderRadius.start_end"
3156
+ boxed = true
3157
+ logical_group = "border-radius"
3158
+ logical = true
3159
+ affects = "paint"
3160
+
3161
+ [border-end-start-radius]
3162
+ type = "BorderCornerRadius"
3163
+ initial = "computed::BorderCornerRadius::zero()"
3164
+ struct = "border"
3165
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-border-end-start-radius"
3166
+ gecko_ffi_name = "mBorderRadius.end_start"
3167
+ boxed = true
3168
+ logical_group = "border-radius"
3169
+ logical = true
3170
+ affects = "paint"
3171
+
3172
+ [border-end-end-radius]
3173
+ type = "BorderCornerRadius"
3174
+ initial = "computed::BorderCornerRadius::zero()"
3175
+ struct = "border"
3176
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-border-end-end-radius"
3177
+ gecko_ffi_name = "mBorderRadius.end_end"
3178
+ boxed = true
3179
+ logical_group = "border-radius"
3180
+ logical = true
3181
+ affects = "paint"
3182
+
3183
+ [corner-top-left-shape]
3184
+ type = "CornerShape"
3185
+ initial = "computed::CornerShape::round()"
3186
+ initial_specified_value = "specified::CornerShape::round()"
3187
+ struct = "border"
3188
+ gecko_pref = "layout.css.corner-shape.enabled"
3189
+ servo_pref = "layout.unimplemented"
3190
+ spec = "https://drafts.csswg.org/css-borders-4/#propdef-corner-top-left-shape"
3191
+ gecko_ffi_name = "mCornerShape.top_left"
3192
+ logical_group = "corner-shape"
3193
+ affects = "paint"
3194
+
3195
+ [corner-top-right-shape]
3196
+ type = "CornerShape"
3197
+ initial = "computed::CornerShape::round()"
3198
+ initial_specified_value = "specified::CornerShape::round()"
3199
+ struct = "border"
3200
+ gecko_pref = "layout.css.corner-shape.enabled"
3201
+ servo_pref = "layout.unimplemented"
3202
+ spec = "https://drafts.csswg.org/css-borders-4/#propdef-corner-top-right-shape"
3203
+ gecko_ffi_name = "mCornerShape.top_right"
3204
+ logical_group = "corner-shape"
3205
+ affects = "paint"
3206
+
3207
+ [corner-bottom-right-shape]
3208
+ type = "CornerShape"
3209
+ initial = "computed::CornerShape::round()"
3210
+ initial_specified_value = "specified::CornerShape::round()"
3211
+ struct = "border"
3212
+ gecko_pref = "layout.css.corner-shape.enabled"
3213
+ servo_pref = "layout.unimplemented"
3214
+ spec = "https://drafts.csswg.org/css-borders-4/#propdef-corner-bottom-right-shape"
3215
+ gecko_ffi_name = "mCornerShape.bottom_right"
3216
+ logical_group = "corner-shape"
3217
+ affects = "paint"
3218
+
3219
+ [corner-bottom-left-shape]
3220
+ type = "CornerShape"
3221
+ initial = "computed::CornerShape::round()"
3222
+ initial_specified_value = "specified::CornerShape::round()"
3223
+ struct = "border"
3224
+ gecko_pref = "layout.css.corner-shape.enabled"
3225
+ servo_pref = "layout.unimplemented"
3226
+ spec = "https://drafts.csswg.org/css-borders-4/#propdef-corner-bottom-left-shape"
3227
+ gecko_ffi_name = "mCornerShape.bottom_left"
3228
+ logical_group = "corner-shape"
3229
+ affects = "paint"
3230
+
3231
+ [corner-start-start-shape]
3232
+ type = "CornerShape"
3233
+ initial = "computed::CornerShape::round()"
3234
+ initial_specified_value = "specified::CornerShape::round()"
3235
+ struct = "border"
3236
+ gecko_pref = "layout.css.corner-shape.enabled"
3237
+ servo_pref = "layout.unimplemented"
3238
+ spec = "https://drafts.csswg.org/css-borders-4/#propdef-corner-start-start-shape"
3239
+ gecko_ffi_name = "mCornerShape.start_start"
3240
+ logical_group = "corner-shape"
3241
+ logical = true
3242
+ affects = "paint"
3243
+
3244
+ [corner-start-end-shape]
3245
+ type = "CornerShape"
3246
+ initial = "computed::CornerShape::round()"
3247
+ initial_specified_value = "specified::CornerShape::round()"
3248
+ struct = "border"
3249
+ gecko_pref = "layout.css.corner-shape.enabled"
3250
+ servo_pref = "layout.unimplemented"
3251
+ spec = "https://drafts.csswg.org/css-borders-4/#propdef-corner-start-end-shape"
3252
+ gecko_ffi_name = "mCornerShape.start_end"
3253
+ logical_group = "corner-shape"
3254
+ logical = true
3255
+ affects = "paint"
3256
+
3257
+ [corner-end-start-shape]
3258
+ type = "CornerShape"
3259
+ initial = "computed::CornerShape::round()"
3260
+ initial_specified_value = "specified::CornerShape::round()"
3261
+ struct = "border"
3262
+ gecko_pref = "layout.css.corner-shape.enabled"
3263
+ servo_pref = "layout.unimplemented"
3264
+ spec = "https://drafts.csswg.org/css-borders-4/#propdef-corner-end-start-shape"
3265
+ gecko_ffi_name = "mCornerShape.end_start"
3266
+ logical_group = "corner-shape"
3267
+ logical = true
3268
+ affects = "paint"
3269
+
3270
+ [corner-end-end-shape]
3271
+ type = "CornerShape"
3272
+ initial = "computed::CornerShape::round()"
3273
+ initial_specified_value = "specified::CornerShape::round()"
3274
+ struct = "border"
3275
+ gecko_pref = "layout.css.corner-shape.enabled"
3276
+ servo_pref = "layout.unimplemented"
3277
+ spec = "https://drafts.csswg.org/css-borders-4/#propdef-corner-end-end-shape"
3278
+ gecko_ffi_name = "mCornerShape.end_end"
3279
+ logical_group = "corner-shape"
3280
+ logical = true
3281
+ affects = "paint"
3282
+
3283
+ [margin-top]
3284
+ type = "Margin"
3285
+ initial = "computed::Margin::zero()"
3286
+ struct = "margin"
3287
+ allow_quirks = true
3288
+ logical_group = "margin"
3289
+ gecko_ffi_name = "mMargin.0"
3290
+ flags = "SCROLL_LINKED_EFFECTIVE"
3291
+ spec = "https://drafts.csswg.org/css-box/#propdef-margin-top"
3292
+ rule_types_allowed = ["style", "keyframe", "page", "scope", "position-try"]
3293
+ servo_restyle_damage = "rebuild_box"
3294
+ affects = "layout"
3295
+
3296
+ [margin-right]
3297
+ type = "Margin"
3298
+ initial = "computed::Margin::zero()"
3299
+ struct = "margin"
3300
+ allow_quirks = true
3301
+ logical_group = "margin"
3302
+ gecko_ffi_name = "mMargin.1"
3303
+ flags = "SCROLL_LINKED_EFFECTIVE"
3304
+ spec = "https://drafts.csswg.org/css-box/#propdef-margin-right"
3305
+ rule_types_allowed = ["style", "keyframe", "page", "scope", "position-try"]
3306
+ servo_restyle_damage = "rebuild_box"
3307
+ affects = "layout"
3308
+
3309
+ [margin-bottom]
3310
+ type = "Margin"
3311
+ initial = "computed::Margin::zero()"
3312
+ struct = "margin"
3313
+ allow_quirks = true
3314
+ logical_group = "margin"
3315
+ gecko_ffi_name = "mMargin.2"
3316
+ flags = "SCROLL_LINKED_EFFECTIVE"
3317
+ spec = "https://drafts.csswg.org/css-box/#propdef-margin-bottom"
3318
+ rule_types_allowed = ["style", "keyframe", "page", "scope", "position-try"]
3319
+ servo_restyle_damage = "rebuild_box"
3320
+ affects = "layout"
3321
+
3322
+ [margin-left]
3323
+ type = "Margin"
3324
+ initial = "computed::Margin::zero()"
3325
+ struct = "margin"
3326
+ allow_quirks = true
3327
+ logical_group = "margin"
3328
+ gecko_ffi_name = "mMargin.3"
3329
+ flags = "SCROLL_LINKED_EFFECTIVE"
3330
+ spec = "https://drafts.csswg.org/css-box/#propdef-margin-left"
3331
+ rule_types_allowed = ["style", "keyframe", "page", "scope", "position-try"]
3332
+ servo_restyle_damage = "rebuild_box"
3333
+ affects = "layout"
3334
+
3335
+ [margin-block-start]
3336
+ type = "Margin"
3337
+ initial = "computed::Margin::zero()"
3338
+ struct = "margin"
3339
+ logical = true
3340
+ logical_group = "margin"
3341
+ gecko_ffi_name = "mMargin.4"
3342
+ flags = "SCROLL_LINKED_EFFECTIVE"
3343
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-margin-block-start"
3344
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
3345
+ servo_restyle_damage = "rebuild_box"
3346
+ affects = "layout"
3347
+
3348
+ [margin-block-end]
3349
+ type = "Margin"
3350
+ initial = "computed::Margin::zero()"
3351
+ struct = "margin"
3352
+ logical = true
3353
+ logical_group = "margin"
3354
+ gecko_ffi_name = "mMargin.5"
3355
+ flags = "SCROLL_LINKED_EFFECTIVE"
3356
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-margin-block-end"
3357
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
3358
+ servo_restyle_damage = "rebuild_box"
3359
+ affects = "layout"
3360
+
3361
+ [margin-inline-start]
3362
+ type = "Margin"
3363
+ initial = "computed::Margin::zero()"
3364
+ struct = "margin"
3365
+ extra_gecko_aliases = ["-moz-margin-start"]
3366
+ logical = true
3367
+ logical_group = "margin"
3368
+ gecko_ffi_name = "mMargin.6"
3369
+ flags = "SCROLL_LINKED_EFFECTIVE"
3370
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-margin-inline-start"
3371
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
3372
+ servo_restyle_damage = "rebuild_box"
3373
+ affects = "layout"
3374
+
3375
+ [margin-inline-end]
3376
+ type = "Margin"
3377
+ initial = "computed::Margin::zero()"
3378
+ struct = "margin"
3379
+ extra_gecko_aliases = ["-moz-margin-end"]
3380
+ logical = true
3381
+ logical_group = "margin"
3382
+ gecko_ffi_name = "mMargin.7"
3383
+ flags = "SCROLL_LINKED_EFFECTIVE"
3384
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-margin-inline-end"
3385
+ rule_types_allowed = ["style", "keyframe", "scope", "position-try"]
3386
+ servo_restyle_damage = "rebuild_box"
3387
+ affects = "layout"
3388
+
3389
+ [margin-trim]
3390
+ type = "MarginTrim"
3391
+ initial = "computed::MarginTrim::empty()"
3392
+ struct = "margin"
3393
+ engine = "gecko"
3394
+ gecko_pref = "layout.css.margin-trim.enabled"
3395
+ animation_type = "none"
3396
+ spec = "https://drafts.csswg.org/css-box-4/#propdef-margin-trim"
3397
+ affects = "layout"
3398
+
3399
+ [scroll-margin-top]
3400
+ type = "Length"
3401
+ initial = "computed::Length::zero()"
3402
+ struct = "margin"
3403
+ engine = "gecko"
3404
+ logical_group = "scroll-margin"
3405
+ gecko_ffi_name = "mScrollMargin.0"
3406
+ spec = "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-top"
3407
+ affects = ""
3408
+
3409
+ [scroll-margin-right]
3410
+ type = "Length"
3411
+ initial = "computed::Length::zero()"
3412
+ struct = "margin"
3413
+ engine = "gecko"
3414
+ logical_group = "scroll-margin"
3415
+ gecko_ffi_name = "mScrollMargin.1"
3416
+ spec = "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-right"
3417
+ affects = ""
3418
+
3419
+ [scroll-margin-bottom]
3420
+ type = "Length"
3421
+ initial = "computed::Length::zero()"
3422
+ struct = "margin"
3423
+ engine = "gecko"
3424
+ logical_group = "scroll-margin"
3425
+ gecko_ffi_name = "mScrollMargin.2"
3426
+ spec = "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-bottom"
3427
+ affects = ""
3428
+
3429
+ [scroll-margin-left]
3430
+ type = "Length"
3431
+ initial = "computed::Length::zero()"
3432
+ struct = "margin"
3433
+ engine = "gecko"
3434
+ logical_group = "scroll-margin"
3435
+ gecko_ffi_name = "mScrollMargin.3"
3436
+ spec = "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-left"
3437
+ affects = ""
3438
+
3439
+ [scroll-margin-block-start]
3440
+ type = "Length"
3441
+ initial = "computed::Length::zero()"
3442
+ struct = "margin"
3443
+ engine = "gecko"
3444
+ logical = true
3445
+ logical_group = "scroll-margin"
3446
+ gecko_ffi_name = "mScrollMargin.4"
3447
+ spec = "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-block-start"
3448
+ affects = ""
3449
+
3450
+ [scroll-margin-block-end]
3451
+ type = "Length"
3452
+ initial = "computed::Length::zero()"
3453
+ struct = "margin"
3454
+ engine = "gecko"
3455
+ logical = true
3456
+ logical_group = "scroll-margin"
3457
+ gecko_ffi_name = "mScrollMargin.5"
3458
+ spec = "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-block-end"
3459
+ affects = ""
3460
+
3461
+ [scroll-margin-inline-start]
3462
+ type = "Length"
3463
+ initial = "computed::Length::zero()"
3464
+ struct = "margin"
3465
+ engine = "gecko"
3466
+ logical = true
3467
+ logical_group = "scroll-margin"
3468
+ gecko_ffi_name = "mScrollMargin.6"
3469
+ spec = "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-inline-start"
3470
+ affects = ""
3471
+
3472
+ [scroll-margin-inline-end]
3473
+ type = "Length"
3474
+ initial = "computed::Length::zero()"
3475
+ struct = "margin"
3476
+ engine = "gecko"
3477
+ logical = true
3478
+ logical_group = "scroll-margin"
3479
+ gecko_ffi_name = "mScrollMargin.7"
3480
+ spec = "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-margin-inline-end"
3481
+ affects = ""
3482
+
3483
+ [padding-top]
3484
+ type = "NonNegativeLengthPercentage"
3485
+ initial = "computed::NonNegativeLengthPercentage::zero()"
3486
+ struct = "padding"
3487
+ logical_group = "padding"
3488
+ spec = "https://drafts.csswg.org/css-box/#propdef-padding-top"
3489
+ gecko_ffi_name = "mPadding.0"
3490
+ allow_quirks = true
3491
+ servo_restyle_damage = "rebuild_box"
3492
+ affects = "layout"
3493
+
3494
+ [padding-right]
3495
+ type = "NonNegativeLengthPercentage"
3496
+ initial = "computed::NonNegativeLengthPercentage::zero()"
3497
+ struct = "padding"
3498
+ logical_group = "padding"
3499
+ spec = "https://drafts.csswg.org/css-box/#propdef-padding-right"
3500
+ gecko_ffi_name = "mPadding.1"
3501
+ allow_quirks = true
3502
+ servo_restyle_damage = "rebuild_box"
3503
+ affects = "layout"
3504
+
3505
+ [padding-bottom]
3506
+ type = "NonNegativeLengthPercentage"
3507
+ initial = "computed::NonNegativeLengthPercentage::zero()"
3508
+ struct = "padding"
3509
+ logical_group = "padding"
3510
+ spec = "https://drafts.csswg.org/css-box/#propdef-padding-bottom"
3511
+ gecko_ffi_name = "mPadding.2"
3512
+ allow_quirks = true
3513
+ servo_restyle_damage = "rebuild_box"
3514
+ affects = "layout"
3515
+
3516
+ [padding-left]
3517
+ type = "NonNegativeLengthPercentage"
3518
+ initial = "computed::NonNegativeLengthPercentage::zero()"
3519
+ struct = "padding"
3520
+ logical_group = "padding"
3521
+ spec = "https://drafts.csswg.org/css-box/#propdef-padding-left"
3522
+ gecko_ffi_name = "mPadding.3"
3523
+ allow_quirks = true
3524
+ servo_restyle_damage = "rebuild_box"
3525
+ affects = "layout"
3526
+
3527
+ [padding-block-start]
3528
+ type = "NonNegativeLengthPercentage"
3529
+ initial = "computed::NonNegativeLengthPercentage::zero()"
3530
+ struct = "padding"
3531
+ logical = true
3532
+ logical_group = "padding"
3533
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-padding-block-start"
3534
+ gecko_ffi_name = "mPadding.4"
3535
+ servo_restyle_damage = "rebuild_box"
3536
+ affects = "layout"
3537
+
3538
+ [padding-block-end]
3539
+ type = "NonNegativeLengthPercentage"
3540
+ initial = "computed::NonNegativeLengthPercentage::zero()"
3541
+ struct = "padding"
3542
+ logical = true
3543
+ logical_group = "padding"
3544
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-padding-block-end"
3545
+ gecko_ffi_name = "mPadding.5"
3546
+ servo_restyle_damage = "rebuild_box"
3547
+ affects = "layout"
3548
+
3549
+ [padding-inline-start]
3550
+ type = "NonNegativeLengthPercentage"
3551
+ initial = "computed::NonNegativeLengthPercentage::zero()"
3552
+ struct = "padding"
3553
+ extra_gecko_aliases = ["-moz-padding-start"]
3554
+ logical = true
3555
+ logical_group = "padding"
3556
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-padding-inline-start"
3557
+ gecko_ffi_name = "mPadding.6"
3558
+ servo_restyle_damage = "rebuild_box"
3559
+ affects = "layout"
3560
+
3561
+ [padding-inline-end]
3562
+ type = "NonNegativeLengthPercentage"
3563
+ initial = "computed::NonNegativeLengthPercentage::zero()"
3564
+ struct = "padding"
3565
+ extra_gecko_aliases = ["-moz-padding-end"]
3566
+ logical = true
3567
+ logical_group = "padding"
3568
+ spec = "https://drafts.csswg.org/css-logical-props/#propdef-padding-inline-end"
3569
+ gecko_ffi_name = "mPadding.7"
3570
+ servo_restyle_damage = "rebuild_box"
3571
+ affects = "layout"
3572
+
3573
+ [scroll-padding-top]
3574
+ type = "NonNegativeLengthPercentageOrAuto"
3575
+ initial = "computed::NonNegativeLengthPercentageOrAuto::auto()"
3576
+ struct = "padding"
3577
+ engine = "gecko"
3578
+ logical_group = "scroll-padding"
3579
+ gecko_ffi_name = "mScrollPadding.0"
3580
+ spec = "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding-top"
3581
+ affects = ""
3582
+
3583
+ [scroll-padding-right]
3584
+ type = "NonNegativeLengthPercentageOrAuto"
3585
+ initial = "computed::NonNegativeLengthPercentageOrAuto::auto()"
3586
+ struct = "padding"
3587
+ engine = "gecko"
3588
+ logical_group = "scroll-padding"
3589
+ gecko_ffi_name = "mScrollPadding.1"
3590
+ spec = "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding-right"
3591
+ affects = ""
3592
+
3593
+ [scroll-padding-bottom]
3594
+ type = "NonNegativeLengthPercentageOrAuto"
3595
+ initial = "computed::NonNegativeLengthPercentageOrAuto::auto()"
3596
+ struct = "padding"
3597
+ engine = "gecko"
3598
+ logical_group = "scroll-padding"
3599
+ gecko_ffi_name = "mScrollPadding.2"
3600
+ spec = "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding-bottom"
3601
+ affects = ""
3602
+
3603
+ [scroll-padding-left]
3604
+ type = "NonNegativeLengthPercentageOrAuto"
3605
+ initial = "computed::NonNegativeLengthPercentageOrAuto::auto()"
3606
+ struct = "padding"
3607
+ engine = "gecko"
3608
+ logical_group = "scroll-padding"
3609
+ gecko_ffi_name = "mScrollPadding.3"
3610
+ spec = "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding-left"
3611
+ affects = ""
3612
+
3613
+ [scroll-padding-block-start]
3614
+ type = "NonNegativeLengthPercentageOrAuto"
3615
+ initial = "computed::NonNegativeLengthPercentageOrAuto::auto()"
3616
+ struct = "padding"
3617
+ engine = "gecko"
3618
+ logical = true
3619
+ logical_group = "scroll-padding"
3620
+ gecko_ffi_name = "mScrollPadding.4"
3621
+ spec = "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding-block-start"
3622
+ affects = ""
3623
+
3624
+ [scroll-padding-block-end]
3625
+ type = "NonNegativeLengthPercentageOrAuto"
3626
+ initial = "computed::NonNegativeLengthPercentageOrAuto::auto()"
3627
+ struct = "padding"
3628
+ engine = "gecko"
3629
+ logical = true
3630
+ logical_group = "scroll-padding"
3631
+ gecko_ffi_name = "mScrollPadding.5"
3632
+ spec = "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding-block-end"
3633
+ affects = ""
3634
+
3635
+ [scroll-padding-inline-start]
3636
+ type = "NonNegativeLengthPercentageOrAuto"
3637
+ initial = "computed::NonNegativeLengthPercentageOrAuto::auto()"
3638
+ struct = "padding"
3639
+ engine = "gecko"
3640
+ logical = true
3641
+ logical_group = "scroll-padding"
3642
+ gecko_ffi_name = "mScrollPadding.6"
3643
+ spec = "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding-inline-start"
3644
+ affects = ""
3645
+
3646
+ [scroll-padding-inline-end]
3647
+ type = "NonNegativeLengthPercentageOrAuto"
3648
+ initial = "computed::NonNegativeLengthPercentageOrAuto::auto()"
3649
+ struct = "padding"
3650
+ engine = "gecko"
3651
+ logical = true
3652
+ logical_group = "scroll-padding"
3653
+ gecko_ffi_name = "mScrollPadding.7"
3654
+ spec = "https://drafts.csswg.org/css-scroll-snap-1/#propdef-scroll-padding-inline-end"
3655
+ affects = ""
3656
+
3657
+ [background-attachment]
3658
+ struct = "background"
3659
+ spec = "https://drafts.csswg.org/css-backgrounds/#the-background-attachment"
3660
+ animation_type = "discrete"
3661
+ affects = "paint"
3662
+ servo_restyle_damage = "repaint"
3663
+ vector = {}
3664
+ keyword = { values = ["scroll", "fixed"], extra_gecko_values = ["local"], gecko_enum_prefix = "StyleImageLayerAttachment" }
3665
+
3666
+ [background-clip]
3667
+ type = "BackgroundClip"
3668
+ initial = "computed::BackgroundClip::BorderBox"
3669
+ parse_method = "parse_for_background"
3670
+ struct = "background"
3671
+ spec = "https://drafts.csswg.org/css-backgrounds/#the-background-clip"
3672
+ animation_type = "discrete"
3673
+ affects = "paint"
3674
+ extra_prefixes = ["webkit"]
3675
+ servo_restyle_damage = "repaint"
3676
+ vector = {}
3677
+
3678
+ [background-origin]
3679
+ struct = "background"
3680
+ spec = "https://drafts.csswg.org/css-backgrounds/#the-background-origin"
3681
+ animation_type = "discrete"
3682
+ affects = "paint"
3683
+ extra_prefixes = ["webkit"]
3684
+ servo_restyle_damage = "repaint"
3685
+ vector = {}
3686
+ keyword = { values = ["padding-box", "border-box", "content-box"], gecko_enum_prefix = "StyleGeometryBox", gecko_inexhaustive = true }
3687
+
3688
+ [background-blend-mode]
3689
+ struct = "background"
3690
+ vector = {}
3691
+ animation_type = "discrete"
3692
+ spec = "https://drafts.fxtf.org/compositing/#background-blend-mode"
3693
+ affects = "paint"
3694
+ servo_restyle_damage = "repaint"
3695
+
3696
+ [background-blend-mode.keyword]
3697
+ values = [
3698
+ "normal", "multiply", "screen", "overlay", "darken", "lighten",
3699
+ "color-dodge", "color-burn", "hard-light", "soft-light", "difference",
3700
+ "exclusion", "hue", "saturation", "color", "luminosity"
3701
+ ]
3702
+ gecko_enum_prefix = "StyleBlend"
3703
+ gecko_inexhaustive = true
3704
+
3705
+ [box-decoration-break]
3706
+ struct = "border"
3707
+ spec = "https://drafts.csswg.org/css-break/#propdef-box-decoration-break"
3708
+ animation_type = "discrete"
3709
+ affects = "layout"
3710
+ keyword = { values = ["slice", "clone"] }
3711
+
3712
+ [-moz-float-edge]
3713
+ struct = "border"
3714
+ engine = "gecko"
3715
+ spec = "Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-float-edge)"
3716
+ animation_type = "discrete"
3717
+ affects = "layout"
3718
+ gecko_ffi_name = "mFloatEdge"
3719
+ keyword = { values = ["content-box", "margin-box"] }
3720
+
3721
+ [-moz-top-layer]
3722
+ struct = "box"
3723
+ engine = "gecko"
3724
+ spec = "Internal (not web-exposed)"
3725
+ animation_type = "discrete"
3726
+ enabled_in = "ua"
3727
+ affects = "layout"
3728
+ gecko_ffi_name = "mTopLayer"
3729
+ keyword = { values = ["none", "auto"] }
3730
+
3731
+ [-servo-top-layer]
3732
+ struct = "box"
3733
+ engine = "servo"
3734
+ spec = "Internal (not web-exposed)"
3735
+ animation_type = "none"
3736
+ enabled_in = "ua"
3737
+ affects = "layout"
3738
+ keyword = { values = ["none", "top"] }
3739
+
3740
+ [scroll-behavior]
3741
+ struct = "box"
3742
+ servo_pref = "layout.unimplemented"
3743
+ spec = "https://drafts.csswg.org/cssom-view/#propdef-scroll-behavior"
3744
+ animation_type = "discrete"
3745
+ affects = ""
3746
+ keyword = { values = ["auto", "smooth"] }
3747
+
3748
+ [isolation]
3749
+ struct = "box"
3750
+ spec = "https://drafts.fxtf.org/compositing/#isolation"
3751
+ animation_type = "discrete"
3752
+ affects = "paint"
3753
+ servo_restyle_damage = "repaint"
3754
+ keyword = { values = ["auto", "isolate"] }
3755
+
3756
+ [backface-visibility]
3757
+ struct = "box"
3758
+ spec = "https://drafts.csswg.org/css-transforms/#backface-visibility-property"
3759
+ animation_type = "discrete"
3760
+ affects = "paint"
3761
+ extra_prefixes = ["moz:layout.css.prefixes.transforms", "webkit"]
3762
+ servo_restyle_damage = "repaint"
3763
+ keyword = { values = ["visible", "hidden"] }
3764
+
3765
+ [-moz-orient]
3766
+ struct = "box"
3767
+ engine = "gecko"
3768
+ spec = "Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/-moz-orient)"
3769
+ animation_type = "discrete"
3770
+ affects = "layout"
3771
+ gecko_ffi_name = "mOrient"
3772
+ keyword = { values = ["inline", "block", "horizontal", "vertical"] }
3773
+
3774
+ [column-fill]
3775
+ struct = "column"
3776
+ engine = "gecko"
3777
+ spec = "https://drafts.csswg.org/css-multicol/#propdef-column-fill"
3778
+ animation_type = "discrete"
3779
+ affects = "layout"
3780
+ keyword = { values = ["balance", "auto"] }
3781
+
3782
+ [column-span]
3783
+ struct = "column"
3784
+ spec = "https://drafts.csswg.org/css-multicol/#propdef-column-span"
3785
+ animation_type = "discrete"
3786
+ affects = "layout"
3787
+ servo_pref = "layout.columns.enabled"
3788
+ keyword = { values = ["none", "all"] }
3789
+
3790
+ [font-variant-caps]
3791
+ struct = "font"
3792
+ spec = "https://drafts.csswg.org/css-fonts/#propdef-font-variant-caps"
3793
+ animation_type = "discrete"
3794
+ affects = "layout"
3795
+ gecko_ffi_name = "mFont.variantCaps"
3796
+ servo_restyle_damage = "rebuild_box"
3797
+
3798
+ [font-variant-caps.keyword]
3799
+ values = ["normal", "small-caps"]
3800
+ extra_gecko_values = ["all-small-caps", "petite-caps", "all-petite-caps", "unicase", "titling-caps"]
3801
+ gecko_constant_prefix = "NS_FONT_VARIANT_CAPS"
3802
+
3803
+ [font-kerning]
3804
+ struct = "font"
3805
+ spec = "https://drafts.csswg.org/css-fonts/#propdef-font-kerning"
3806
+ animation_type = "discrete"
3807
+ affects = "layout"
3808
+ gecko_ffi_name = "mFont.kerning"
3809
+ keyword = { values = ["auto", "none", "normal"], gecko_constant_prefix = "NS_FONT_KERNING" }
3810
+
3811
+ [font-variant-emoji]
3812
+ struct = "font"
3813
+ engine = "gecko"
3814
+ spec = "https://drafts.csswg.org/css-fonts/#propdef-font-variant-emoji"
3815
+ animation_type = "discrete"
3816
+ affects = "layout"
3817
+ gecko_ffi_name = "mFont.variantEmoji"
3818
+ keyword = { values = ["normal", "text", "emoji", "unicode"] }
3819
+
3820
+ [font-variant-position]
3821
+ struct = "font"
3822
+ spec = "https://drafts.csswg.org/css-fonts/#propdef-font-variant-position"
3823
+ animation_type = "discrete"
3824
+ affects = "layout"
3825
+ gecko_ffi_name = "mFont.variantPosition"
3826
+ keyword = { values = ["normal", "sub", "super"], gecko_constant_prefix = "NS_FONT_VARIANT_POSITION" }
3827
+
3828
+ [font-optical-sizing]
3829
+ struct = "font"
3830
+ spec = "https://www.w3.org/TR/css-fonts-4/#font-optical-sizing-def"
3831
+ animation_type = "discrete"
3832
+ affects = "layout"
3833
+ gecko_ffi_name = "mFont.opticalSizing"
3834
+ servo_pref = "layout.variable_fonts.enabled"
3835
+ keyword = { values = ["auto", "none"], gecko_constant_prefix = "NS_FONT_OPTICAL_SIZING" }
3836
+
3837
+ [math-style]
3838
+ struct = "font"
3839
+ servo_pref = "layout.unimplemented"
3840
+ spec = "https://mathml-refresh.github.io/mathml-core/#the-math-style-property"
3841
+ animation_type = "discrete"
3842
+ affects = "layout"
3843
+ keyword = { values = ["normal", "compact"] }
3844
+
3845
+ [math-shift]
3846
+ struct = "font"
3847
+ engine = "gecko"
3848
+ spec = "https://w3c.github.io/mathml-core/#the-math-shift"
3849
+ animation_type = "discrete"
3850
+ affects = "layout"
3851
+ keyword = { values = ["normal", "compact"] }
3852
+
3853
+ [-moz-osx-font-smoothing]
3854
+ struct = "font"
3855
+ engine = "gecko"
3856
+ spec = "Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/font-smooth)"
3857
+ animation_type = "discrete"
3858
+ affects = "paint"
3859
+ gecko_ffi_name = "mFont.smoothing"
3860
+ aliases = ["-webkit-font-smoothing:layout.css.osx-font-smoothing.enabled"]
3861
+ gecko_pref = "layout.css.osx-font-smoothing.enabled"
3862
+ has_effect_on_gecko_scrollbars = false
3863
+ keyword = { values = ["auto", "grayscale", "subpixel-antialiased"], gecko_aliases = ["antialiased=grayscale"], gecko_constant_prefix = "NS_FONT_SMOOTHING" }
3864
+
3865
+ [visibility]
3866
+ struct = "inherited_box"
3867
+ spec = "https://drafts.csswg.org/css-box/#propdef-visibility"
3868
+ affects = "paint"
3869
+ gecko_ffi_name = "mVisible"
3870
+ keyword = { values = ["visible", "hidden", "collapse"] }
3871
+
3872
+ [direction]
3873
+ struct = "inherited_box"
3874
+ spec = "https://drafts.csswg.org/css-writing-modes/#propdef-direction"
3875
+ animation_type = "none"
3876
+ affects = "layout"
3877
+ servo_restyle_damage = "rebuild_box"
3878
+ keyword = { values = ["ltr", "rtl"] }
3879
+
3880
+ [-moz-box-collapse]
3881
+ struct = "inherited_box"
3882
+ engine = "gecko"
3883
+ spec = "None (internal)"
3884
+ animation_type = "none"
3885
+ enabled_in = "chrome"
3886
+ affects = "layout"
3887
+ keyword = { values = ["flex", "legacy"] }
3888
+
3889
+ [text-orientation]
3890
+ struct = "inherited_box"
3891
+ servo_pref = "layout.unimplemented"
3892
+ spec = "https://drafts.csswg.org/css-writing-modes/#propdef-text-orientation"
3893
+ animation_type = "none"
3894
+ affects = "layout"
3895
+ keyword = { values = ["mixed", "upright", "sideways"], gecko_aliases = ["sideways-right=sideways"] }
3896
+
3897
+ [image-orientation]
3898
+ struct = "inherited_box"
3899
+ engine = "gecko"
3900
+ spec = "https://drafts.csswg.org/css-images/#propdef-image-orientation"
3901
+ animation_type = "discrete"
3902
+ affects = "layout"
3903
+ keyword = { values = ["from-image", "none"] }
3904
+
3905
+ [text-anchor]
3906
+ struct = "inherited_svg"
3907
+ engine = "gecko"
3908
+ spec = "https://svgwg.org/svg2-draft/text.html#TextAnchorProperty"
3909
+ animation_type = "discrete"
3910
+ affects = "layout"
3911
+ keyword = { values = ["start", "middle", "end"] }
3912
+
3913
+ [color-interpolation]
3914
+ struct = "inherited_svg"
3915
+ engine = "gecko"
3916
+ spec = "https://svgwg.org/svg2-draft/painting.html#ColorInterpolationProperty"
3917
+ animation_type = "discrete"
3918
+ affects = "paint"
3919
+ keyword = { values = ["srgb", "auto", "linearrgb"] }
3920
+
3921
+ [color-interpolation-filters]
3922
+ struct = "inherited_svg"
3923
+ engine = "gecko"
3924
+ spec = "https://svgwg.org/svg2-draft/painting.html#ColorInterpolationFiltersProperty"
3925
+ animation_type = "discrete"
3926
+ affects = "paint"
3927
+ keyword = { values = ["linearrgb", "auto", "srgb"], gecko_enum_prefix = "StyleColorInterpolation" }
3928
+
3929
+ [shape-rendering]
3930
+ struct = "inherited_svg"
3931
+ engine = "gecko"
3932
+ spec = "https://svgwg.org/svg2-draft/painting.html#ShapeRenderingProperty"
3933
+ animation_type = "discrete"
3934
+ affects = "paint"
3935
+ keyword = { values = ["auto", "optimizespeed", "crispedges", "geometricprecision"] }
3936
+
3937
+ [stroke-linecap]
3938
+ struct = "inherited_svg"
3939
+ spec = "https://svgwg.org/svg2-draft/painting.html#StrokeLinecapProperty"
3940
+ animation_type = "discrete"
3941
+ affects = "layout"
3942
+ keyword = { values = ["butt", "round", "square"] }
3943
+
3944
+ [stroke-linejoin]
3945
+ struct = "inherited_svg"
3946
+ spec = "https://svgwg.org/svg2-draft/painting.html#StrokeLinejoinProperty"
3947
+ animation_type = "discrete"
3948
+ affects = "layout"
3949
+ keyword = { values = ["miter", "round", "bevel"] }
3950
+
3951
+ [border-collapse]
3952
+ struct = "inherited_table"
3953
+ spec = "https://drafts.csswg.org/css-tables/#propdef-border-collapse"
3954
+ animation_type = "discrete"
3955
+ affects = "layout"
3956
+ servo_restyle_damage = "rebuild_box"
3957
+ keyword = { values = ["separate", "collapse"] }
3958
+
3959
+ [empty-cells]
3960
+ struct = "inherited_table"
3961
+ spec = "https://drafts.csswg.org/css-tables/#propdef-empty-cells"
3962
+ animation_type = "discrete"
3963
+ affects = "paint"
3964
+ servo_restyle_damage = "rebuild_box"
3965
+ keyword = { values = ["show", "hide"] }
3966
+
3967
+ [hyphens]
3968
+ struct = "inherited_text"
3969
+ engine = "gecko"
3970
+ spec = "https://drafts.csswg.org/css-text/#propdef-hyphens"
3971
+ animation_type = "discrete"
3972
+ affects = "layout"
3973
+ extra_prefixes = ["moz"]
3974
+ keyword = { values = ["manual", "none", "auto"] }
3975
+
3976
+ [-moz-text-size-adjust]
3977
+ struct = "inherited_text"
3978
+ engine = "gecko"
3979
+ spec = "https://drafts.csswg.org/css-size-adjust/#adjustment-control"
3980
+ animation_type = "discrete"
3981
+ affects = "layout"
3982
+ gecko_ffi_name = "mTextSizeAdjust"
3983
+ aliases = ["-webkit-text-size-adjust"]
3984
+ keyword = { values = ["auto", "none"] }
3985
+
3986
+ [ruby-align]
3987
+ struct = "inherited_text"
3988
+ engine = "gecko"
3989
+ spec = "https://drafts.csswg.org/css-ruby/#ruby-align-property"
3990
+ animation_type = "discrete"
3991
+ affects = "layout"
3992
+ keyword = { values = ["space-around", "start", "center", "space-between"] }
3993
+
3994
+ [text-combine-upright]
3995
+ struct = "inherited_text"
3996
+ engine = "gecko"
3997
+ spec = "https://drafts.csswg.org/css-writing-modes-3/#text-combine-upright"
3998
+ animation_type = "none"
3999
+ affects = "layout"
4000
+ keyword = { values = ["none", "all"] }
4001
+
4002
+ [text-rendering]
4003
+ struct = "inherited_text"
4004
+ spec = "https://svgwg.org/svg2-draft/painting.html#TextRenderingProperty"
4005
+ animation_type = "discrete"
4006
+ affects = "layout"
4007
+ servo_restyle_damage = "rebuild_box"
4008
+ keyword = { values = ["auto", "optimizespeed", "optimizelegibility", "geometricprecision"] }
4009
+
4010
+ [-webkit-text-security]
4011
+ struct = "inherited_text"
4012
+ spec = "https://drafts.csswg.org/css-text/#MISSING"
4013
+ animation_type = "discrete"
4014
+ affects = "layout"
4015
+ servo_restyle_damage = "rebuild_box"
4016
+ keyword = { values = ["none", "circle", "disc", "square"] }
4017
+
4018
+ [text-wrap-mode]
4019
+ struct = "inherited_text"
4020
+ spec = "https://drafts.csswg.org/css-text-4/#propdef-text-wrap-mode"
4021
+ animation_type = "discrete"
4022
+ affects = "layout"
4023
+ servo_restyle_damage = "rebuild_box"
4024
+ keyword = { values = ["wrap", "nowrap"] }
4025
+
4026
+ [text-wrap-style]
4027
+ struct = "inherited_text"
4028
+ engine = "gecko"
4029
+ spec = "https://drafts.csswg.org/css-text-4/#text-wrap-style"
4030
+ animation_type = "discrete"
4031
+ affects = "layout"
4032
+ keyword = { values = ["auto", "stable", "balance"] }
4033
+
4034
+ [list-style-position]
4035
+ struct = "list"
4036
+ spec = "https://drafts.csswg.org/css-lists/#propdef-list-style-position"
4037
+ animation_type = "discrete"
4038
+ affects = "layout"
4039
+ servo_restyle_damage = "rebuild_box"
4040
+ keyword = { values = ["outside", "inside"] }
4041
+
4042
+ [flex-direction]
4043
+ struct = "position"
4044
+ spec = "https://drafts.csswg.org/css-flexbox/#flex-direction-property"
4045
+ animation_type = "discrete"
4046
+ affects = "layout"
4047
+ extra_prefixes = ["webkit"]
4048
+ servo_restyle_damage = "rebuild_box"
4049
+ keyword = { values = ["row", "row-reverse", "column", "column-reverse"] }
4050
+
4051
+ [flex-wrap]
4052
+ type = "FlexWrap"
4053
+ initial = "computed::FlexWrap::NOWRAP"
4054
+ struct = "position"
4055
+ spec = "https://drafts.csswg.org/css-flexbox/#flex-wrap-property"
4056
+ animation_type = "discrete"
4057
+ affects = "layout"
4058
+ extra_prefixes = ["webkit"]
4059
+ servo_restyle_damage = "rebuild_box"
4060
+
4061
+ [box-sizing]
4062
+ struct = "position"
4063
+ spec = "https://drafts.csswg.org/css-ui/#propdef-box-sizing"
4064
+ animation_type = "discrete"
4065
+ affects = "layout"
4066
+ extra_prefixes = ["moz:layout.css.prefixes.box-sizing", "webkit"]
4067
+ servo_restyle_damage = "rebuild_box"
4068
+ keyword = { values = ["content-box", "border-box"] }
4069
+
4070
+ [object-fit]
4071
+ struct = "position"
4072
+ spec = "https://drafts.csswg.org/css-images/#propdef-object-fit"
4073
+ animation_type = "discrete"
4074
+ affects = "layout"
4075
+ keyword = { values = ["fill", "contain", "cover", "none", "scale-down"] }
4076
+
4077
+ [mask-type]
4078
+ struct = "svg"
4079
+ servo_pref = "layout.unimplemented"
4080
+ spec = "https://drafts.fxtf.org/css-masking-1/#propdef-mask-type"
4081
+ animation_type = "discrete"
4082
+ affects = "paint"
4083
+ keyword = { values = ["luminance", "alpha"] }
4084
+
4085
+ [mask-mode]
4086
+ struct = "svg"
4087
+ servo_pref = "layout.unimplemented"
4088
+ spec = "https://drafts.fxtf.org/css-masking-1/#propdef-mask-mode"
4089
+ animation_type = "discrete"
4090
+ affects = "paint"
4091
+ vector = {}
4092
+ keyword = { values = ["match-source", "alpha", "luminance"] }
4093
+
4094
+ [mask-clip]
4095
+ type = "BackgroundClip"
4096
+ initial = "computed::BackgroundClip::BorderBox"
4097
+ parse_method = "parse_for_mask"
4098
+ struct = "svg"
4099
+ servo_pref = "layout.unimplemented"
4100
+ spec = "https://drafts.fxtf.org/css-masking-1/#propdef-mask-clip"
4101
+ animation_type = "discrete"
4102
+ affects = "paint"
4103
+ vector = {}
4104
+ extra_prefixes = ["webkit"]
4105
+
4106
+ [mask-origin]
4107
+ struct = "svg"
4108
+ servo_pref = "layout.unimplemented"
4109
+ spec = "https://drafts.fxtf.org/css-masking-1/#propdef-mask-origin"
4110
+ animation_type = "discrete"
4111
+ affects = "paint"
4112
+ vector = {}
4113
+ extra_prefixes = ["webkit"]
4114
+ keyword = { values = ["border-box", "content-box", "padding-box"], extra_gecko_values = ["fill-box", "stroke-box", "view-box"], gecko_enum_prefix = "StyleGeometryBox", gecko_inexhaustive = true }
4115
+
4116
+ [mask-composite]
4117
+ struct = "svg"
4118
+ servo_pref = "layout.unimplemented"
4119
+ spec = "https://drafts.fxtf.org/css-masking-1/#propdef-mask-composite"
4120
+ animation_type = "discrete"
4121
+ affects = "paint"
4122
+ vector = {}
4123
+ extra_prefixes = ["webkit"]
4124
+ keyword = { values = ["add", "subtract", "intersect", "exclude"] }
4125
+
4126
+ [table-layout]
4127
+ struct = "table"
4128
+ spec = "https://drafts.csswg.org/css-tables/#propdef-table-layout"
4129
+ animation_type = "discrete"
4130
+ affects = "layout"
4131
+ gecko_ffi_name = "mLayoutStrategy"
4132
+ servo_restyle_damage = "rebuild_box"
4133
+ keyword = { values = ["auto", "fixed"] }
4134
+
4135
+ [unicode-bidi]
4136
+ struct = "text"
4137
+ spec = "https://drafts.csswg.org/css-writing-modes/#propdef-unicode-bidi"
4138
+ animation_type = "none"
4139
+ affects = "layout"
4140
+ servo_restyle_damage = "rebuild_box"
4141
+ keyword = { values = ["normal", "embed", "isolate", "bidi-override", "isolate-override", "plaintext"] }
4142
+
4143
+ [text-decoration-style]
4144
+ struct = "text"
4145
+ spec = "https://drafts.csswg.org/css-text-decor/#propdef-text-decoration-style"
4146
+ animation_type = "discrete"
4147
+ affects = "overflow"
4148
+ servo_restyle_damage = "recalculate_overflow"
4149
+ keyword = { values = ["solid", "double", "dotted", "dashed", "wavy", "-moz-none"] }
4150
+
4151
+ [ime-mode]
4152
+ struct = "ui"
4153
+ engine = "gecko"
4154
+ spec = "https://drafts.csswg.org/css-ui/#input-method-editor"
4155
+ animation_type = "discrete"
4156
+ affects = ""
4157
+ gecko_ffi_name = "mIMEMode"
4158
+ keyword = { values = ["auto", "normal", "active", "disabled", "inactive"] }
4159
+
4160
+ [scrollbar-width]
4161
+ struct = "ui"
4162
+ servo_pref = "layout.unimplemented"
4163
+ spec = "https://drafts.csswg.org/css-scrollbars-1/#scrollbar-width"
4164
+ animation_type = "discrete"
4165
+ affects = "layout"
4166
+ keyword = { values = ["auto", "thin", "none"] }
4167
+
4168
+ # Reserves space at each end of a vertical scrollbar.
4169
+ [-moz-scrollbar-inset-block]
4170
+ type = "ScrollbarInset"
4171
+ initial = "computed::ScrollbarInset::zero()"
4172
+ struct = "box"
4173
+ engine = "gecko"
4174
+ animation_type = "discrete"
4175
+ enabled_in = "chrome"
4176
+ gecko_ffi_name = "mScrollbarInsetBlock"
4177
+ spec = "None (Nonstandard Firefox-only property)"
4178
+ affects = "layout"
4179
+
4180
+ # Reserves space at each end of a horizontal scrollbar.
4181
+ [-moz-scrollbar-inset-inline]
4182
+ type = "ScrollbarInset"
4183
+ initial = "computed::ScrollbarInset::zero()"
4184
+ struct = "box"
4185
+ engine = "gecko"
4186
+ animation_type = "discrete"
4187
+ enabled_in = "chrome"
4188
+ gecko_ffi_name = "mScrollbarInsetInline"
4189
+ spec = "None (Nonstandard Firefox-only property)"
4190
+ affects = "layout"
4191
+
4192
+ [-moz-window-dragging]
4193
+ struct = "ui"
4194
+ engine = "gecko"
4195
+ spec = "None (Nonstandard Firefox-only property)"
4196
+ animation_type = "discrete"
4197
+ enabled_in = "chrome"
4198
+ affects = "paint"
4199
+ gecko_ffi_name = "mWindowDragging"
4200
+ keyword = { values = ["default", "drag", "no-drag"] }
4201
+
4202
+ [-moz-window-shadow]
4203
+ struct = "ui"
4204
+ engine = "gecko"
4205
+ spec = "None (Nonstandard internal property)"
4206
+ animation_type = "discrete"
4207
+ enabled_in = "chrome"
4208
+ affects = "overflow"
4209
+ gecko_ffi_name = "mWindowShadow"
4210
+ keyword = { values = ["auto", "none"] }
4211
+
4212
+ [field-sizing]
4213
+ struct = "ui"
4214
+ engine = "gecko"
4215
+ spec = "https://drafts.csswg.org/css-ui/#field-sizing"
4216
+ animation_type = "discrete"
4217
+ affects = "layout"
4218
+ gecko_pref = "layout.css.field-sizing.enabled"
4219
+ keyword = { values = ["fixed", "content"] }
4220
+
4221
+ [-moz-box-align]
4222
+ struct = "xul"
4223
+ engine = "gecko"
4224
+ spec = "Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/box-align)"
4225
+ animation_type = "discrete"
4226
+ affects = "layout"
4227
+ gecko_ffi_name = "mBoxAlign"
4228
+ aliases = ["-webkit-box-align"]
4229
+ keyword = { values = ["stretch", "start", "center", "baseline", "end"] }
4230
+
4231
+ [-moz-box-direction]
4232
+ struct = "xul"
4233
+ engine = "gecko"
4234
+ spec = "Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/box-direction)"
4235
+ animation_type = "discrete"
4236
+ affects = "layout"
4237
+ gecko_ffi_name = "mBoxDirection"
4238
+ aliases = ["-webkit-box-direction"]
4239
+ keyword = { values = ["normal", "reverse"] }
4240
+
4241
+ [-moz-box-orient]
4242
+ struct = "xul"
4243
+ engine = "gecko"
4244
+ spec = "Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/box-orient)"
4245
+ animation_type = "discrete"
4246
+ affects = "layout"
4247
+ gecko_ffi_name = "mBoxOrient"
4248
+ aliases = ["-webkit-box-orient"]
4249
+ keyword = { values = ["horizontal", "vertical"], gecko_aliases = ["inline-axis=horizontal", "block-axis=vertical"] }
4250
+
4251
+ [-moz-box-pack]
4252
+ struct = "xul"
4253
+ engine = "gecko"
4254
+ spec = "Nonstandard (https://developer.mozilla.org/en-US/docs/Web/CSS/box-pack)"
4255
+ animation_type = "discrete"
4256
+ affects = "layout"
4257
+ gecko_ffi_name = "mBoxPack"
4258
+ aliases = ["-webkit-box-pack"]
4259
+ keyword = { values = ["start", "center", "end", "justify"] }
4260
+
4261
+ [mix-blend-mode]
4262
+ struct = "effects"
4263
+ spec = "https://drafts.fxtf.org/compositing/#propdef-mix-blend-mode"
4264
+ animation_type = "discrete"
4265
+ affects = "paint"
4266
+ servo_restyle_damage = "repaint"
4267
+ keyword = { values = ["normal", "multiply", "screen", "overlay", "darken", "lighten", "color-dodge", "color-burn", "hard-light", "soft-light", "difference", "exclusion", "hue", "saturation", "color", "luminosity", "plus-lighter"], gecko_enum_prefix = "StyleBlend" }
4268
+
4269
+ [dominant-baseline]
4270
+ type = "DominantBaseline"
4271
+ initial = "computed::DominantBaseline::Auto"
4272
+ struct = "inherited_box"
4273
+ engine = "gecko"
4274
+ animation_type = "discrete"
4275
+ spec = "https://drafts.csswg.org/css-inline-3/#dominant-baseline-property"
4276
+ affects = "layout"
4277
+
4278
+ [-moz-math-variant]
4279
+ struct = "font"
4280
+ engine = "gecko"
4281
+ spec = "Internal (not web-exposed)"
4282
+ animation_type = "none"
4283
+ enabled_in = ""
4284
+ has_effect_on_gecko_scrollbars = false
4285
+ affects = "layout"
4286
+ gecko_ffi_name = "mMathVariant"
4287
+ keyword = { values = ["none", "normal", "bold", "italic", "bold-italic", "script", "bold-script", "fraktur", "double-struck", "bold-fraktur", "sans-serif", "bold-sans-serif", "sans-serif-italic", "sans-serif-bold-italic", "monospace", "initial", "tailed", "looped", "stretched"] }
4288
+
4289
+ [white-space-collapse]
4290
+ struct = "inherited_text"
4291
+ spec = "https://drafts.csswg.org/css-text-4/#propdef-white-space-collapse"
4292
+ animation_type = "discrete"
4293
+ affects = "layout"
4294
+ servo_restyle_damage = "rebuild_box"
4295
+ keyword = { values = ["collapse", "preserve", "preserve-breaks", "break-spaces"], extra_gecko_values = ["preserve-spaces"], gecko_aliases = ["-moz-pre-space=preserve-spaces"] }
4296
+
4297
+ [timeline-scope]
4298
+ type = "ScopedName"
4299
+ initial = "computed::ScopedName::none()"
4300
+ struct = "ui"
4301
+ engine = "gecko"
4302
+ animation_type = "none"
4303
+ gecko_pref = "layout.css.scroll-driven-animations.enabled"
4304
+ spec = "https://drafts.csswg.org/scroll-animations-1/#timeline-scope"
4305
+ affects = ""