svg.mako.rs (7148B)
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 https://mozilla.org/MPL/2.0/. */ 4 5 <%namespace name="helpers" file="/helpers.mako.rs" /> 6 7 ${helpers.predefined_type( 8 "vector-effect", 9 "VectorEffect", 10 "computed::VectorEffect::none()", 11 engines="gecko", 12 animation_type="discrete", 13 spec="https://svgwg.org/svg2-draft/coords.html#VectorEffects", 14 affects="layout", 15 )} 16 17 // Section 14 - Gradients and Patterns 18 19 ${helpers.predefined_type( 20 "stop-color", 21 "Color", 22 "computed::Color::BLACK", 23 engines="gecko", 24 spec="https://svgwg.org/svg2-draft/pservers.html#StopColorProperties", 25 affects="paint", 26 )} 27 28 ${helpers.predefined_type( 29 "stop-opacity", 30 "Opacity", 31 "1.0", 32 engines="gecko", 33 spec="https://svgwg.org/svg2-draft/pservers.html#StopOpacityProperty", 34 affects="paint", 35 )} 36 37 // Filter Effects Module 38 39 ${helpers.predefined_type( 40 "flood-color", 41 "Color", 42 "computed::Color::BLACK", 43 engines="gecko", 44 spec="https://drafts.fxtf.org/filter-effects-1/#FloodColorProperty", 45 affects="paint", 46 )} 47 48 ${helpers.predefined_type( 49 "flood-opacity", 50 "Opacity", 51 "1.0", 52 engines="gecko", 53 spec="https://drafts.fxtf.org/filter-effects-1/#FloodOpacityProperty", 54 affects="paint", 55 )} 56 57 ${helpers.predefined_type( 58 "lighting-color", 59 "Color", 60 "computed::Color::WHITE", 61 engines="gecko", 62 spec="https://drafts.fxtf.org/filter-effects-1#LightingColorProperty", 63 affects="paint", 64 )} 65 66 // CSS Masking Module Level 1 67 // https://drafts.fxtf.org/css-masking-1 68 ${helpers.single_keyword( 69 "mask-type", 70 "luminance alpha", 71 engines="gecko", 72 gecko_enum_prefix="StyleMaskType", 73 animation_type="discrete", 74 spec="https://drafts.fxtf.org/css-masking-1/#propdef-mask-type", 75 affects="paint", 76 )} 77 78 ${helpers.predefined_type( 79 "clip-path", 80 "basic_shape::ClipPath", 81 "generics::basic_shape::ClipPath::None", 82 engines="gecko servo", 83 extra_prefixes="webkit", 84 spec="https://drafts.fxtf.org/css-masking-1/#propdef-clip-path", 85 affects="paint", 86 servo_restyle_damage="repaint", 87 )} 88 89 ${helpers.single_keyword( 90 "mask-mode", 91 "match-source alpha luminance", 92 engines="gecko", 93 gecko_enum_prefix="StyleMaskMode", 94 vector=True, 95 animation_type="discrete", 96 spec="https://drafts.fxtf.org/css-masking-1/#propdef-mask-mode", 97 affects="paint", 98 )} 99 100 ${helpers.predefined_type( 101 "mask-repeat", 102 "BackgroundRepeat", 103 "computed::BackgroundRepeat::repeat()", 104 engines="gecko", 105 initial_specified_value="specified::BackgroundRepeat::repeat()", 106 extra_prefixes="webkit", 107 animation_type="discrete", 108 spec="https://drafts.fxtf.org/css-masking-1/#propdef-mask-repeat", 109 vector=True, 110 affects="paint", 111 )} 112 113 % for (axis, direction) in [("x", "Horizontal"), ("y", "Vertical")]: 114 ${helpers.predefined_type( 115 "mask-position-" + axis, 116 "position::" + direction + "Position", 117 "computed::LengthPercentage::zero_percent()", 118 engines="gecko", 119 extra_prefixes="webkit", 120 initial_specified_value="specified::PositionComponent::Center", 121 spec="https://drafts.fxtf.org/css-masking-1/#propdef-mask-position", 122 vector_animation_type="repeatable_list", 123 vector=True, 124 affects="paint", 125 )} 126 % endfor 127 128 ${helpers.single_keyword( 129 "mask-clip", 130 "border-box content-box padding-box", 131 engines="gecko", 132 extra_gecko_values="fill-box stroke-box view-box no-clip", 133 vector=True, 134 extra_prefixes="webkit", 135 gecko_enum_prefix="StyleGeometryBox", 136 gecko_inexhaustive=True, 137 animation_type="discrete", 138 spec="https://drafts.fxtf.org/css-masking-1/#propdef-mask-clip", 139 affects="paint", 140 )} 141 142 ${helpers.single_keyword( 143 "mask-origin", 144 "border-box content-box padding-box", 145 engines="gecko", 146 extra_gecko_values="fill-box stroke-box view-box", 147 vector=True, 148 extra_prefixes="webkit", 149 gecko_enum_prefix="StyleGeometryBox", 150 gecko_inexhaustive=True, 151 animation_type="discrete", 152 spec="https://drafts.fxtf.org/css-masking-1/#propdef-mask-origin", 153 affects="paint", 154 )} 155 156 ${helpers.predefined_type( 157 "mask-size", 158 "background::BackgroundSize", 159 "computed::BackgroundSize::auto()", 160 engines="gecko", 161 initial_specified_value="specified::BackgroundSize::auto()", 162 extra_prefixes="webkit", 163 spec="https://drafts.fxtf.org/css-masking-1/#propdef-mask-size", 164 vector=True, 165 vector_animation_type="repeatable_list", 166 affects="paint", 167 )} 168 169 ${helpers.single_keyword( 170 "mask-composite", 171 "add subtract intersect exclude", 172 engines="gecko", 173 gecko_enum_prefix="StyleMaskComposite", 174 vector=True, 175 extra_prefixes="webkit", 176 animation_type="discrete", 177 spec="https://drafts.fxtf.org/css-masking-1/#propdef-mask-composite", 178 affects="paint", 179 )} 180 181 ${helpers.predefined_type( 182 "mask-image", 183 "Image", 184 engines="gecko servo", 185 servo_pref="layout.unimplemented", 186 initial_value="computed::Image::None", 187 initial_specified_value="specified::Image::None", 188 parse_method="parse_with_cors_anonymous", 189 spec="https://drafts.fxtf.org/css-masking-1/#propdef-mask-image", 190 vector=True, 191 extra_prefixes="webkit", 192 animation_type="discrete", 193 affects="paint", 194 )} 195 196 ${helpers.predefined_type( 197 "x", 198 "LengthPercentage", 199 "computed::LengthPercentage::zero()", 200 engines="gecko", 201 spec="https://svgwg.org/svg2-draft/geometry.html#X", 202 affects="layout", 203 )} 204 205 ${helpers.predefined_type( 206 "y", 207 "LengthPercentage", 208 "computed::LengthPercentage::zero()", 209 engines="gecko", 210 spec="https://svgwg.org/svg2-draft/geometry.html#Y", 211 affects="layout", 212 )} 213 214 ${helpers.predefined_type( 215 "cx", 216 "LengthPercentage", 217 "computed::LengthPercentage::zero()", 218 engines="gecko", 219 spec="https://svgwg.org/svg2-draft/geometry.html#CX", 220 affects="layout", 221 )} 222 223 ${helpers.predefined_type( 224 "cy", 225 "LengthPercentage", 226 "computed::LengthPercentage::zero()", 227 engines="gecko", 228 spec="https://svgwg.org/svg2-draft/geometry.html#CY", 229 affects="layout", 230 )} 231 232 ${helpers.predefined_type( 233 "rx", 234 "NonNegativeLengthPercentageOrAuto", 235 "computed::NonNegativeLengthPercentageOrAuto::auto()", 236 engines="gecko", 237 spec="https://svgwg.org/svg2-draft/geometry.html#RX", 238 affects="layout", 239 )} 240 241 ${helpers.predefined_type( 242 "ry", 243 "NonNegativeLengthPercentageOrAuto", 244 "computed::NonNegativeLengthPercentageOrAuto::auto()", 245 engines="gecko", 246 spec="https://svgwg.org/svg2-draft/geometry.html#RY", 247 affects="layout", 248 )} 249 250 ${helpers.predefined_type( 251 "r", 252 "NonNegativeLengthPercentage", 253 "computed::NonNegativeLengthPercentage::zero()", 254 engines="gecko", 255 spec="https://svgwg.org/svg2-draft/geometry.html#R", 256 affects="layout", 257 )} 258 259 ${helpers.predefined_type( 260 "d", 261 "DProperty", 262 "specified::DProperty::none()", 263 engines="gecko", 264 spec="https://svgwg.org/svg2-draft/paths.html#TheDProperty", 265 affects="layout", 266 )}