| 1 | <?xml version="1.0" encoding="UTF-8"?> |
| 2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
| 3 | <plist version="1.0"> |
| 4 | <dict> |
| 5 | 	<key>fileTypes</key> |
| 6 | 	<array> |
| 7 | 		<string>css</string> |
| 8 | 		<string>css.erb</string> |
| 9 | 	</array> |
| 10 | 	<key>keyEquivalent</key> |
| 11 | 	<string>^~C</string> |
| 12 | 	<key>name</key> |
| 13 | 	<string>CSS</string> |
| 14 | 	<key>patterns</key> |
| 15 | 	<array> |
| 16 | 		<dict> |
| 17 | 			<key>include</key> |
| 18 | 			<string>#comment-block</string> |
| 19 | 		</dict> |
| 20 | 		<dict> |
| 21 | 			<key>include</key> |
| 22 | 			<string>#selector</string> |
| 23 | 		</dict> |
| 24 | 		<dict> |
| 25 | 			<key>begin</key> |
| 26 | 			<string>\s*((@)charset\b)\s*</string> |
| 27 | 			<key>captures</key> |
| 28 | 			<dict> |
| 29 | 				<key>1</key> |
| 30 | 				<dict> |
| 31 | 					<key>name</key> |
| 32 | 					<string>keyword.control.at-rule.charset.css</string> |
| 33 | 				</dict> |
| 34 | 				<key>2</key> |
| 35 | 				<dict> |
| 36 | 					<key>name</key> |
| 37 | 					<string>punctuation.definition.keyword.css</string> |
| 38 | 				</dict> |
| 39 | 			</dict> |
| 40 | 			<key>end</key> |
| 41 | 			<string>\s*((?=;|$))</string> |
| 42 | 			<key>name</key> |
| 43 | 			<string>meta.at-rule.charset.css</string> |
| 44 | 			<key>patterns</key> |
| 45 | 			<array> |
| 46 | 				<dict> |
| 47 | 					<key>include</key> |
| 48 | 					<string>#string-double</string> |
| 49 | 				</dict> |
| 50 | 				<dict> |
| 51 | 					<key>include</key> |
| 52 | 					<string>#string-single</string> |
| 53 | 				</dict> |
| 54 | 			</array> |
| 55 | 		</dict> |
| 56 | 		<dict> |
| 57 | 			<key>begin</key> |
| 58 | 			<string>\s*((@)import\b)\s*</string> |
| 59 | 			<key>captures</key> |
| 60 | 			<dict> |
| 61 | 				<key>1</key> |
| 62 | 				<dict> |
| 63 | 					<key>name</key> |
| 64 | 					<string>keyword.control.at-rule.import.css</string> |
| 65 | 				</dict> |
| 66 | 				<key>2</key> |
| 67 | 				<dict> |
| 68 | 					<key>name</key> |
| 69 | 					<string>punctuation.definition.keyword.css</string> |
| 70 | 				</dict> |
| 71 | 			</dict> |
| 72 | 			<key>end</key> |
| 73 | 			<string>\s*((?=;|\}))</string> |
| 74 | 			<key>name</key> |
| 75 | 			<string>meta.at-rule.import.css</string> |
| 76 | 			<key>patterns</key> |
| 77 | 			<array> |
| 78 | 				<dict> |
| 79 | 					<key>include</key> |
| 80 | 					<string>#string-double</string> |
| 81 | 				</dict> |
| 82 | 				<dict> |
| 83 | 					<key>include</key> |
| 84 | 					<string>#string-single</string> |
| 85 | 				</dict> |
| 86 | 				<dict> |
| 87 | 					<key>begin</key> |
| 88 | 					<string>\s*(url)\s*(\()\s*</string> |
| 89 | 					<key>beginCaptures</key> |
| 90 | 					<dict> |
| 91 | 						<key>1</key> |
| 92 | 						<dict> |
| 93 | 							<key>name</key> |
| 94 | 							<string>support.function.url.css</string> |
| 95 | 						</dict> |
| 96 | 						<key>2</key> |
| 97 | 						<dict> |
| 98 | 							<key>name</key> |
| 99 | 							<string>punctuation.section.function.css</string> |
| 100 | 						</dict> |
| 101 | 					</dict> |
| 102 | 					<key>end</key> |
| 103 | 					<string>\s*(\))\s*</string> |
| 104 | 					<key>endCaptures</key> |
| 105 | 					<dict> |
| 106 | 						<key>1</key> |
| 107 | 						<dict> |
| 108 | 							<key>name</key> |
| 109 | 							<string>punctuation.section.function.css</string> |
| 110 | 						</dict> |
| 111 | 					</dict> |
| 112 | 					<key>patterns</key> |
| 113 | 					<array> |
| 114 | 						<dict> |
| 115 | 							<key>match</key> |
| 116 | 							<string>[^'") \t]+</string> |
| 117 | 							<key>name</key> |
| 118 | 							<string>variable.parameter.url.css</string> |
| 119 | 						</dict> |
| 120 | 						<dict> |
| 121 | 							<key>include</key> |
| 122 | 							<string>#string-single</string> |
| 123 | 						</dict> |
| 124 | 						<dict> |
| 125 | 							<key>include</key> |
| 126 | 							<string>#string-double</string> |
| 127 | 						</dict> |
| 128 | 					</array> |
| 129 | 				</dict> |
| 130 | 				<dict> |
| 131 | 					<key>include</key> |
| 132 | 					<string>#media-query-list</string> |
| 133 | 				</dict> |
| 134 | 			</array> |
| 135 | 		</dict> |
| 136 | 		<dict> |
| 137 | 			<key>begin</key> |
| 138 | 			<string>^\s*((@)font-face)\s*(?=\{)</string> |
| 139 | 			<key>beginCaptures</key> |
| 140 | 			<dict> |
| 141 | 				<key>1</key> |
| 142 | 				<dict> |
| 143 | 					<key>name</key> |
| 144 | 					<string>keyword.control.at-rule.font-face.css</string> |
| 145 | 				</dict> |
| 146 | 				<key>2</key> |
| 147 | 				<dict> |
| 148 | 					<key>name</key> |
| 149 | 					<string>punctuation.definition.keyword.css</string> |
| 150 | 				</dict> |
| 151 | 			</dict> |
| 152 | 			<key>end</key> |
| 153 | 			<string>(?!\G)</string> |
| 154 | 			<key>name</key> |
| 155 | 			<string>meta.at-rule.font-face.css</string> |
| 156 | 			<key>patterns</key> |
| 157 | 			<array> |
| 158 | 				<dict> |
| 159 | 					<key>include</key> |
| 160 | 					<string>#rule-list</string> |
| 161 | 				</dict> |
| 162 | 			</array> |
| 163 | 		</dict> |
| 164 | 		<dict> |
| 165 | 			<key>begin</key> |
| 166 | 			<string>(?=^\s*@media\s*.*?\{)</string> |
| 167 | 			<key>end</key> |
| 168 | 			<string>\s*(\})</string> |
| 169 | 			<key>endCaptures</key> |
| 170 | 			<dict> |
| 171 | 				<key>1</key> |
| 172 | 				<dict> |
| 173 | 					<key>name</key> |
| 174 | 					<string>punctuation.section.property-list.end.css</string> |
| 175 | 				</dict> |
| 176 | 			</dict> |
| 177 | 			<key>patterns</key> |
| 178 | 			<array> |
| 179 | 				<dict> |
| 180 | 					<key>begin</key> |
| 181 | 					<string>^\s*((@)media)(?=.*?\{)</string> |
| 182 | 					<key>beginCaptures</key> |
| 183 | 					<dict> |
| 184 | 						<key>1</key> |
| 185 | 						<dict> |
| 186 | 							<key>name</key> |
| 187 | 							<string>keyword.control.at-rule.media.css</string> |
| 188 | 						</dict> |
| 189 | 						<key>2</key> |
| 190 | 						<dict> |
| 191 | 							<key>name</key> |
| 192 | 							<string>punctuation.definition.keyword.css</string> |
| 193 | 						</dict> |
| 194 | 						<key>3</key> |
| 195 | 						<dict> |
| 196 | 							<key>name</key> |
| 197 | 							<string>support.constant.media.css</string> |
| 198 | 						</dict> |
| 199 | 					</dict> |
| 200 | 					<key>end</key> |
| 201 | 					<string>\s*(?=\{)</string> |
| 202 | 					<key>name</key> |
| 203 | 					<string>meta.at-rule.media.css</string> |
| 204 | 					<key>patterns</key> |
| 205 | 					<array> |
| 206 | 						<dict> |
| 207 | 							<key>include</key> |
| 208 | 							<string>#media-query-list</string> |
| 209 | 						</dict> |
| 210 | 					</array> |
| 211 | 				</dict> |
| 212 | 				<dict> |
| 213 | 					<key>begin</key> |
| 214 | 					<string>\s*(\{)</string> |
| 215 | 					<key>beginCaptures</key> |
| 216 | 					<dict> |
| 217 | 						<key>1</key> |
| 218 | 						<dict> |
| 219 | 							<key>name</key> |
| 220 | 							<string>punctuation.section.property-list.begin.css</string> |
| 221 | 						</dict> |
| 222 | 					</dict> |
| 223 | 					<key>end</key> |
| 224 | 					<string>(?=\})</string> |
| 225 | 					<key>patterns</key> |
| 226 | 					<array> |
| 227 | 						<dict> |
| 228 | 							<key>include</key> |
| 229 | 							<string>$self</string> |
| 230 | 						</dict> |
| 231 | 					</array> |
| 232 | 				</dict> |
| 233 | 			</array> |
| 234 | 		</dict> |
| 235 | 		<dict> |
| 236 | 			<key>begin</key> |
| 237 | 			<string>(?=\{)</string> |
| 238 | 			<key>end</key> |
| 239 | 			<string>(?!\G)</string> |
| 240 | 			<key>patterns</key> |
| 241 | 			<array> |
| 242 | 				<dict> |
| 243 | 					<key>include</key> |
| 244 | 					<string>#rule-list</string> |
| 245 | 				</dict> |
| 246 | 			</array> |
| 247 | 		</dict> |
| 248 | 	</array> |
| 249 | 	<key>repository</key> |
| 250 | 	<dict> |
| 251 | 		<key>color-values</key> |
| 252 | 		<dict> |
| 253 | 			<key>patterns</key> |
| 254 | 			<array> |
| 255 | 				<dict> |
| 256 | 					<key>comment</key> |
| 257 | 					<string>http://www.w3.org/TR/CSS21/syndata.html#value-def-color</string> |
| 258 | 					<key>match</key> |
| 259 | 					<string>\b(aqua|black|blue|fuchsia|gray|green|lime|maroon|navy|olive|orange|purple|red|silver|teal|white|yellow)\b</string> |
| 260 | 					<key>name</key> |
| 261 | 					<string>support.constant.color.w3c-standard-color-name.css</string> |
| 262 | 				</dict> |
| 263 | 				<dict> |
| 264 | 					<key>comment</key> |
| 265 | 					<string>These colours are mostly recognised but will not validate. ref: http://www.w3schools.com/css/css_colornames.asp</string> |
| 266 | 					<key>match</key> |
| 267 | 					<string>\b(aliceblue|antiquewhite|aquamarine|azure|beige|bisque|blanchedalmond|blueviolet|brown|burlywood|cadetblue|chartreuse|chocolate|coral|cornflowerblue|cornsilk|crimson|cyan|darkblue|darkcyan|darkgoldenrod|darkgray|darkgreen|darkgrey|darkkhaki|darkmagenta|darkolivegreen|darkorange|darkorchid|darkred|darksalmon|darkseagreen|darkslateblue|darkslategray|darkslategrey|darkturquoise|darkviolet|deeppink|deepskyblue|dimgray|dimgrey|dodgerblue|firebrick|floralwhite|forestgreen|gainsboro|ghostwhite|gold|goldenrod|greenyellow|grey|honeydew|hotpink|indianred|indigo|ivory|khaki|lavender|lavenderblush|lawngreen|lemonchiffon|lightblue|lightcoral|lightcyan|lightgoldenrodyellow|lightgray|lightgreen|lightgrey|lightpink|lightsalmon|lightseagreen|lightskyblue|lightslategray|lightslategrey|lightsteelblue|lightyellow|limegreen|linen|magenta|mediumaquamarine|mediumblue|mediumorchid|mediumpurple|mediumseagreen|mediumslateblue|mediumspringgreen|mediumturquoise|mediumvioletred|midnightblue|mintcream|mistyrose|moccasin|navajowhite|oldlace|olivedrab|orangered|orchid|palegoldenrod|palegreen|paleturquoise|palevioletred|papayawhip|peachpuff|peru|pink|plum|powderblue|rosybrown|royalblue|saddlebrown|salmon|sandybrown|seagreen|seashell|sienna|skyblue|slateblue|slategray|slategrey|snow|springgreen|steelblue|tan|thistle|tomato|turquoise|violet|wheat|whitesmoke|yellowgreen)\b</string> |
| 268 | 					<key>name</key> |
| 269 | 					<string>invalid.deprecated.color.w3c-non-standard-color-name.css</string> |
| 270 | 				</dict> |
| 271 | 				<dict> |
| 272 | 					<key>begin</key> |
| 273 | 					<string>(hsla?|rgba?)\s*(\()</string> |
| 274 | 					<key>beginCaptures</key> |
| 275 | 					<dict> |
| 276 | 						<key>1</key> |
| 277 | 						<dict> |
| 278 | 							<key>name</key> |
| 279 | 							<string>support.function.misc.css</string> |
| 280 | 						</dict> |
| 281 | 						<key>2</key> |
| 282 | 						<dict> |
| 283 | 							<key>name</key> |
| 284 | 							<string>punctuation.section.function.css</string> |
| 285 | 						</dict> |
| 286 | 					</dict> |
| 287 | 					<key>end</key> |
| 288 | 					<string>(\))</string> |
| 289 | 					<key>endCaptures</key> |
| 290 | 					<dict> |
| 291 | 						<key>1</key> |
| 292 | 						<dict> |
| 293 | 							<key>name</key> |
| 294 | 							<string>punctuation.section.function.css</string> |
| 295 | 						</dict> |
| 296 | 					</dict> |
| 297 | 					<key>patterns</key> |
| 298 | 					<array> |
| 299 | 						<dict> |
| 300 | 							<key>match</key> |
| 301 | 							<string>(?x)\b |
| 302 | 							 (0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\s*,\s*){2} |
| 303 | 							 (0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\b) |
| 304 | 							 (\s*,\s*((0?\.[0-9]+)|[0-1]))? |
| 305 | 							</string> |
| 306 | 							<key>name</key> |
| 307 | 							<string>constant.other.color.rgb-value.css</string> |
| 308 | 						</dict> |
| 309 | 						<dict> |
| 310 | 							<key>match</key> |
| 311 | 							<string>\b([0-9]{1,2}|100)\s*%,\s*([0-9]{1,2}|100)\s*%,\s*([0-9]{1,2}|100)\s*%</string> |
| 312 | 							<key>name</key> |
| 313 | 							<string>constant.other.color.rgb-percentage.css</string> |
| 314 | 						</dict> |
| 315 | 						<dict> |
| 316 | 							<key>include</key> |
| 317 | 							<string>#numeric-values</string> |
| 318 | 						</dict> |
| 319 | 					</array> |
| 320 | 				</dict> |
| 321 | 			</array> |
| 322 | 		</dict> |
| 323 | 		<key>comment-block</key> |
| 324 | 		<dict> |
| 325 | 			<key>begin</key> |
| 326 | 			<string>/\*</string> |
| 327 | 			<key>captures</key> |
| 328 | 			<dict> |
| 329 | 				<key>0</key> |
| 330 | 				<dict> |
| 331 | 					<key>name</key> |
| 332 | 					<string>punctuation.definition.comment.css</string> |
| 333 | 				</dict> |
| 334 | 			</dict> |
| 335 | 			<key>end</key> |
| 336 | 			<string>\*/</string> |
| 337 | 			<key>name</key> |
| 338 | 			<string>comment.block.css</string> |
| 339 | 		</dict> |
| 340 | 		<key>media-query</key> |
| 341 | 		<dict> |
| 342 | 			<key>begin</key> |
| 343 | 			<string>(?i)\s*(only|not)?\s*(all|aural|braille|embossed|handheld|print|projection|screen|tty|tv)?</string> |
| 344 | 			<key>beginCaptures</key> |
| 345 | 			<dict> |
| 346 | 				<key>1</key> |
| 347 | 				<dict> |
| 348 | 					<key>name</key> |
| 349 | 					<string>keyword.operator.logic.media.css</string> |
| 350 | 				</dict> |
| 351 | 				<key>2</key> |
| 352 | 				<dict> |
| 353 | 					<key>name</key> |
| 354 | 					<string>support.constant.media.css</string> |
| 355 | 				</dict> |
| 356 | 			</dict> |
| 357 | 			<key>end</key> |
| 358 | 			<string>\s*(?:(,)|(?=[{;]))</string> |
| 359 | 			<key>endCaptures</key> |
| 360 | 			<dict> |
| 361 | 				<key>1</key> |
| 362 | 				<dict> |
| 363 | 					<key>name</key> |
| 364 | 					<string>punctuation.definition.arbitrary-repitition.css</string> |
| 365 | 				</dict> |
| 366 | 			</dict> |
| 367 | 			<key>patterns</key> |
| 368 | 			<array> |
| 369 | 				<dict> |
| 370 | 					<key>begin</key> |
| 371 | 					<string>\s*(and)?\s*(\()\s*</string> |
| 372 | 					<key>beginCaptures</key> |
| 373 | 					<dict> |
| 374 | 						<key>1</key> |
| 375 | 						<dict> |
| 376 | 							<key>name</key> |
| 377 | 							<string>keyword.operator.logic.media.css</string> |
| 378 | 						</dict> |
| 379 | 					</dict> |
| 380 | 					<key>end</key> |
| 381 | 					<string>\)</string> |
| 382 | 					<key>patterns</key> |
| 383 | 					<array> |
| 384 | 						<dict> |
| 385 | 							<key>begin</key> |
| 386 | 							<string>(?x) |
| 387 | 	 ( |
| 388 | 	 ((min|max)-)? |
| 389 | 	 ( |
| 390 | 	 ((device-)?(height|width|aspect-ratio))| |
| 391 | 	 (color(-index)?)|monochrome|resolution |
| 392 | 	 ) |
| 393 | 	 )|grid|scan|orientation |
| 394 | 	 \s*(?=[:)])</string> |
| 395 | 							<key>beginCaptures</key> |
| 396 | 							<dict> |
| 397 | 								<key>0</key> |
| 398 | 								<dict> |
| 399 | 									<key>name</key> |
| 400 | 									<string>support.type.property-name.media.css</string> |
| 401 | 								</dict> |
| 402 | 							</dict> |
| 403 | 							<key>end</key> |
| 404 | 							<string>(:)|(?=\))</string> |
| 405 | 							<key>endCaptures</key> |
| 406 | 							<dict> |
| 407 | 								<key>1</key> |
| 408 | 								<dict> |
| 409 | 									<key>name</key> |
| 410 | 									<string>punctuation.separator.key-value.css</string> |
| 411 | 								</dict> |
| 412 | 							</dict> |
| 413 | 						</dict> |
| 414 | 						<dict> |
| 415 | 							<key>match</key> |
| 416 | 							<string>\b(portrait|landscape|progressive|interlace)</string> |
| 417 | 							<key>name</key> |
| 418 | 							<string>support.constant.property-value.css</string> |
| 419 | 						</dict> |
| 420 | 						<dict> |
| 421 | 							<key>captures</key> |
| 422 | 							<dict> |
| 423 | 								<key>1</key> |
| 424 | 								<dict> |
| 425 | 									<key>name</key> |
| 426 | 									<string>constant.numeric.css</string> |
| 427 | 								</dict> |
| 428 | 								<key>2</key> |
| 429 | 								<dict> |
| 430 | 									<key>name</key> |
| 431 | 									<string>keyword.operator.arithmetic.css</string> |
| 432 | 								</dict> |
| 433 | 								<key>3</key> |
| 434 | 								<dict> |
| 435 | 									<key>name</key> |
| 436 | 									<string>constant.numeric.css</string> |
| 437 | 								</dict> |
| 438 | 							</dict> |
| 439 | 							<key>match</key> |
| 440 | 							<string>\s*(\d+)(/)(\d+)</string> |
| 441 | 						</dict> |
| 442 | 						<dict> |
| 443 | 							<key>include</key> |
| 444 | 							<string>#numeric-values</string> |
| 445 | 						</dict> |
| 446 | 					</array> |
| 447 | 				</dict> |
| 448 | 			</array> |
| 449 | 		</dict> |
| 450 | 		<key>media-query-list</key> |
| 451 | 		<dict> |
| 452 | 			<key>begin</key> |
| 453 | 			<string>\s*(?=[^{;])</string> |
| 454 | 			<key>end</key> |
| 455 | 			<string>\s*(?=[{;])</string> |
| 456 | 			<key>patterns</key> |
| 457 | 			<array> |
| 458 | 				<dict> |
| 459 | 					<key>include</key> |
| 460 | 					<string>#media-query</string> |
| 461 | 				</dict> |
| 462 | 			</array> |
| 463 | 		</dict> |
| 464 | 		<key>numeric-values</key> |
| 465 | 		<dict> |
| 466 | 			<key>patterns</key> |
| 467 | 			<array> |
| 468 | 				<dict> |
| 469 | 					<key>captures</key> |
| 470 | 					<dict> |
| 471 | 						<key>1</key> |
| 472 | 						<dict> |
| 473 | 							<key>name</key> |
| 474 | 							<string>punctuation.definition.constant.css</string> |
| 475 | 						</dict> |
| 476 | 					</dict> |
| 477 | 					<key>match</key> |
| 478 | 					<string>(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b</string> |
| 479 | 					<key>name</key> |
| 480 | 					<string>constant.other.color.rgb-value.css</string> |
| 481 | 				</dict> |
| 482 | 				<dict> |
| 483 | 					<key>captures</key> |
| 484 | 					<dict> |
| 485 | 						<key>1</key> |
| 486 | 						<dict> |
| 487 | 							<key>name</key> |
| 488 | 							<string>keyword.other.unit.css</string> |
| 489 | 						</dict> |
| 490 | 					</dict> |
| 491 | 					<key>match</key> |
| 492 | 					<string>(?x) |
| 493 | 					 (?:-|\+)?(?:(?:[0-9]+(?:\.[0-9]+)?)|(?:\.[0-9]+)) |
| 494 | 					 ((?:px|pt|ch|cm|mm|in|r?em|ex|pc|deg|g?rad|dpi|dpcm|s)\b|%)? |
| 495 | 					</string> |
| 496 | 					<key>name</key> |
| 497 | 					<string>constant.numeric.css</string> |
| 498 | 				</dict> |
| 499 | 			</array> |
| 500 | 		</dict> |
| 501 | 		<key>property-values</key> |
| 502 | 		<dict> |
| 503 | 			<key>patterns</key> |
| 504 | 			<array> |
| 505 | 				<dict> |
| 506 | 					<key>match</key> |
| 507 | 					<string>\b(absolute|all(-scroll)?|always|armenian|auto|avoid|baseline|below|bidi-override|block|bold|bolder|both|bottom|break-all|break-word|capitalize|center|char|circle|cjk-ideographic|col-resize|collapse|crosshair|dashed|decimal-leading-zero|decimal|default|disabled|disc|distribute-all-lines|distribute-letter|distribute-space|distribute|dotted|double|e-resize|ellipsis|fixed|flat|geometricPrecision|georgian|groove|hand|hebrew|help|hidden|hiragana-iroha|hiragana|horizontal|ideograph-alpha|ideograph-numeric|ideograph-parenthesis|ideograph-space|inactive|inherit|initial|inline-block|inline|inset|inside|inter-ideograph|inter-word|italic|justify|katakana-iroha|katakana|keep-all|left|lighter|line-edge|line-through|line|list-item|loose|lower-alpha|lower-greek|lower-latin|lower-roman|lowercase|lr-tb|ltr|medium|middle|move|n-resize|ne-resize|newspaper|no-drop|no-repeat|nw-resize|none|normal|not-allowed|nowrap|oblique|optimize(Legibility|Quality|Speed)|outset|outside|overline|pointer|pre(-(wrap|line))?|preserve-3d|progress|relative|repeat-x|repeat-y|repeat|right|ridge|row-resize|rtl|s-resize|scroll|se-resize|separate|small-caps|solid|square|static|strict|sub|super|sw-resize|table-footer-group|table-header-group|tb-rl|text-bottom|text-top|text|thick|thin|top|transparent|underline|upper-alpha|upper-latin|upper-roman|uppercase|vertical(-(ideographic|text))|visible(Painted|Fill|Stroke)?|w-resize|wait|whitespace|zero|smaller|larger|((xx?-)?(small|large))|painted|fill|stroke|column|column-reverse|contain|cover|fill|flex-end|flex-start|row|row-reverse|scale-down|space-around|space-between|stretch|wrap|wrap-reverse|reverse|alternate-reverse|alternate|forwards|backwards|infinite|ease|ease-in|ease-out|ease-in-out|linear|step-start|step-end|steps|cubic-bezier|running|paused|sticky|page|soft-light|screen|saturation|overlay|multiply|luminosity|lighten|hue|hard-light|exclusion|difference|darken|color-dodge|color-burn|color|view-box|stroke-box|fill-box|border-box|padding-box|content-box|round|space|currentColor|subgrid|auto-fill|min-content|max-content|row|column|dense|minmax|calc|translate|translateX|translateY|translateZ|scale|scaleX|scaleY|scaleZ|rotate|rotateX|rotateY|rotateZ|skew|skewX|skewY|skewZ|linear-gradient|repeating-linear-gradient|radial-gradient|repeating-radial-gradient|farthest-side|closest-side|farthest-corner|closest-corner|ellipse|circle)\b</string> |
| 508 | 					<key>name</key> |
| 509 | 					<string>support.constant.property-value.css</string> |
| 510 | 				</dict> |
| 511 | 				<dict> |
| 512 | 					<key>match</key> |
| 513 | 					<string>(\b(?i:arial|century|comic|courier|garamond|georgia|helvetica|impact|lucida|symbol|system|tahoma|times|trebuchet|utopia|verdana|webdings|sans-serif|serif|monospace)\b)</string> |
| 514 | 					<key>name</key> |
| 515 | 					<string>support.constant.font-name.css</string> |
| 516 | 				</dict> |
| 517 | 				<dict> |
| 518 | 					<key>include</key> |
| 519 | 					<string>#numeric-values</string> |
| 520 | 				</dict> |
| 521 | 				<dict> |
| 522 | 					<key>include</key> |
| 523 | 					<string>#color-values</string> |
| 524 | 				</dict> |
| 525 | 				<dict> |
| 526 | 					<key>include</key> |
| 527 | 					<string>#string-double</string> |
| 528 | 				</dict> |
| 529 | 				<dict> |
| 530 | 					<key>include</key> |
| 531 | 					<string>#string-single</string> |
| 532 | 				</dict> |
| 533 | 				<dict> |
| 534 | 					<key>begin</key> |
| 535 | 					<string>(rect)\s*(\()</string> |
| 536 | 					<key>beginCaptures</key> |
| 537 | 					<dict> |
| 538 | 						<key>1</key> |
| 539 | 						<dict> |
| 540 | 							<key>name</key> |
| 541 | 							<string>support.function.misc.css</string> |
| 542 | 						</dict> |
| 543 | 						<key>2</key> |
| 544 | 						<dict> |
| 545 | 							<key>name</key> |
| 546 | 							<string>punctuation.section.function.css</string> |
| 547 | 						</dict> |
| 548 | 					</dict> |
| 549 | 					<key>end</key> |
| 550 | 					<string>(\))</string> |
| 551 | 					<key>endCaptures</key> |
| 552 | 					<dict> |
| 553 | 						<key>1</key> |
| 554 | 						<dict> |
| 555 | 							<key>name</key> |
| 556 | 							<string>punctuation.section.function.css</string> |
| 557 | 						</dict> |
| 558 | 					</dict> |
| 559 | 					<key>patterns</key> |
| 560 | 					<array> |
| 561 | 						<dict> |
| 562 | 							<key>include</key> |
| 563 | 							<string>#numeric-values</string> |
| 564 | 						</dict> |
| 565 | 					</array> |
| 566 | 				</dict> |
| 567 | 				<dict> |
| 568 | 					<key>begin</key> |
| 569 | 					<string>(format|local|url|attr|counter|counters)\s*(\()</string> |
| 570 | 					<key>beginCaptures</key> |
| 571 | 					<dict> |
| 572 | 						<key>1</key> |
| 573 | 						<dict> |
| 574 | 							<key>name</key> |
| 575 | 							<string>support.function.misc.css</string> |
| 576 | 						</dict> |
| 577 | 						<key>2</key> |
| 578 | 						<dict> |
| 579 | 							<key>name</key> |
| 580 | 							<string>punctuation.section.function.css</string> |
| 581 | 						</dict> |
| 582 | 					</dict> |
| 583 | 					<key>end</key> |
| 584 | 					<string>(\))</string> |
| 585 | 					<key>endCaptures</key> |
| 586 | 					<dict> |
| 587 | 						<key>1</key> |
| 588 | 						<dict> |
| 589 | 							<key>name</key> |
| 590 | 							<string>punctuation.section.function.css</string> |
| 591 | 						</dict> |
| 592 | 					</dict> |
| 593 | 					<key>patterns</key> |
| 594 | 					<array> |
| 595 | 						<dict> |
| 596 | 							<key>include</key> |
| 597 | 							<string>#string-single</string> |
| 598 | 						</dict> |
| 599 | 						<dict> |
| 600 | 							<key>include</key> |
| 601 | 							<string>#string-double</string> |
| 602 | 						</dict> |
| 603 | 						<dict> |
| 604 | 							<key>match</key> |
| 605 | 							<string>[^'") \t]+</string> |
| 606 | 							<key>name</key> |
| 607 | 							<string>variable.parameter.misc.css</string> |
| 608 | 						</dict> |
| 609 | 					</array> |
| 610 | 				</dict> |
| 611 | 				<dict> |
| 612 | 					<key>begin</key> |
| 613 | 					<string>(matrix(3d)?|perspective|(rotate|scale|translate)([XYZ]|3d)?|skew[XY]?)\s*(\()</string> |
| 614 | 					<key>beginCaptures</key> |
| 615 | 					<dict> |
| 616 | 						<key>1</key> |
| 617 | 						<dict> |
| 618 | 							<key>name</key> |
| 619 | 							<string>support.function.transform.css</string> |
| 620 | 						</dict> |
| 621 | 						<key>2</key> |
| 622 | 						<dict> |
| 623 | 							<key>name</key> |
| 624 | 							<string>punctuation.section.function.css</string> |
| 625 | 						</dict> |
| 626 | 					</dict> |
| 627 | 					<key>end</key> |
| 628 | 					<string>(\))</string> |
| 629 | 					<key>endCaptures</key> |
| 630 | 					<dict> |
| 631 | 						<key>1</key> |
| 632 | 						<dict> |
| 633 | 							<key>name</key> |
| 634 | 							<string>punctuation.section.function.css</string> |
| 635 | 						</dict> |
| 636 | 					</dict> |
| 637 | 					<key>patterns</key> |
| 638 | 					<array> |
| 639 | 						<dict> |
| 640 | 							<key>include</key> |
| 641 | 							<string>#numeric-values</string> |
| 642 | 						</dict> |
| 643 | 					</array> |
| 644 | 				</dict> |
| 645 | 				<dict> |
| 646 | 					<key>match</key> |
| 647 | 					<string>\!\s*important</string> |
| 648 | 					<key>name</key> |
| 649 | 					<string>keyword.other.important.css</string> |
| 650 | 				</dict> |
| 651 | 			</array> |
| 652 | 		</dict> |
| 653 | 		<key>rule-list</key> |
| 654 | 		<dict> |
| 655 | 			<key>begin</key> |
| 656 | 			<string>\{</string> |
| 657 | 			<key>beginCaptures</key> |
| 658 | 			<dict> |
| 659 | 				<key>0</key> |
| 660 | 				<dict> |
| 661 | 					<key>name</key> |
| 662 | 					<string>punctuation.section.property-list.begin.css</string> |
| 663 | 				</dict> |
| 664 | 			</dict> |
| 665 | 			<key>end</key> |
| 666 | 			<string>\}</string> |
| 667 | 			<key>endCaptures</key> |
| 668 | 			<dict> |
| 669 | 				<key>0</key> |
| 670 | 				<dict> |
| 671 | 					<key>name</key> |
| 672 | 					<string>punctuation.section.property-list.end.css</string> |
| 673 | 				</dict> |
| 674 | 			</dict> |
| 675 | 			<key>name</key> |
| 676 | 			<string>meta.property-list.css</string> |
| 677 | 			<key>patterns</key> |
| 678 | 			<array> |
| 679 | 				<dict> |
| 680 | 					<key>include</key> |
| 681 | 					<string>#comment-block</string> |
| 682 | 				</dict> |
| 683 | 				<dict> |
| 684 | 					<key>begin</key> |
| 685 | 					<string>(?&lt;![-a-z])(?=[-a-z])</string> |
| 686 | 					<key>end</key> |
| 687 | 					<string>$|(?![-a-z])</string> |
| 688 | 					<key>name</key> |
| 689 | 					<string>meta.property-name.css</string> |
| 690 | 					<key>patterns</key> |
| 691 | 					<array> |
| 692 | 						<dict> |
| 693 | 							<key>match</key> |
| 694 | 							<string>-(webkit|moz|o|ms|khtml)(-[A-Za-z]+)+\b</string> |
| 695 | 							<key>name</key> |
| 696 | 							<string>support.type.property-name.css</string> |
| 697 | 						</dict> |
| 698 | 						<dict> |
| 699 | 							<key>match</key> |
| 700 | 							<string>\b(zoom|z-index|y|x|writing-mode|wrap-through|wrap-flow|wrap|word-wrap|word-spacing|word-break|word|will-change|width|widows|white-space-collapse|white-space|white|weight|volume|voice-volume|voice-stress|voice-rate|voice-range|voice-pitch-range|voice-pitch|voice-family|voice-duration|voice-balance|voice|visibility|vertical-align|variant|user-select|up|unicode-bidi|unicode|trim|transition-timing-function|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|timing-function|text-wrap|text-underline-position|text-transform|text-space-collapse|text-shadow|text-replace|text-overflow|text-outline|text-orientation|text-justify|text-indent|text-height|text-emphasis-style|text-emphasis-position|text-emphasis-color|text-emphasis|text-decoration-style|text-decoration-skip|text-decoration-line|text-decoration-color|text-decoration|text-combine-upright|text-align-last|text-align|text|target-position|target-new|target-name|target|table-layout|tab-size|style-type|style-position|style-image|style|stroke|string-set|stretch|stress|stacking-strategy|stacking-shift|stacking-ruby|stacking|src|speed|speech-rate|speech|speak-punctuation|speak-numeral|speak-header|speak-as|speak|span|spacing|space-collapse|space|sizing|size-adjust|size|shape-outside|shape-margin|shape-inside|shape-image-threshold|shadow|setting-named-strings-string-set-pro|scroll-snap-type|scroll-snap-stop|scroll-snap-margin-top|scroll-snap-margin-right|scroll-snap-margin-left|scroll-snap-margin-inline-start|scroll-snap-margin-inline-end|scroll-snap-margin-inline|scroll-snap-margin-bottom|scroll-snap-margin-block-start|scroll-snap-margin-block-end|scroll-snap-margin-block|scroll-snap-margin|scroll-snap-align|scroll-padding-top|scroll-padding-right|scroll-padding-left|scroll-padding-inline-start|scroll-padding-inline-end|scroll-padding-inline|scroll-padding-bottom|scroll-padding-block-start|scroll-padding-block-end|scroll-padding-block|scroll-padding|rule-width|rule-style|rule-color|rule|ruby-span|ruby-position|ruby-overhang|ruby-merge|ruby-align|ruby|rows|row-gap|rotation-point|rotation|rotating|role|right|richness|rest-before|rest-after|rest|respond-to|resource|resolution|resize|reset|replace|repeat|rendering-intent|region-fragment|rate|radius|quotes|punctuation-trim|punctuation|property|profile|presentation-level|presentation|position|polar-origin|polar-distance|polar-angle|polar-anchor|pointer-events|point|play-state|play-during|play-count|pitch-range|pitch|phonemes|perspective-origin|perspective|pause-before|pause-after|pause|page-policy|page-break-inside|page-break-before|page-break-after|page|padding-top|padding-right|padding-left|padding-bottom|padding|pack|overhang|overflow-y|overflow-x|overflow-wrap|overflow-style|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|origin|orientation|orient|ordinal-group|order|opacity|offset|object-position|object-fit|numeral|new|nav-up|nav-right|nav-left|nav-index|nav-down|nav-dir|nav|name|moving|move-to|model|min-width|min-height|min|max-width|max-lines|max-height|max|mask-type|mask-source-type|mask-size|mask-repeat|mask-position|mask-origin|mask-image|mask-clip|mask-box-width|mask-box-source|mask-box-slice|mask-box-repeat|mask-box-outset|mask-box|mask|marquee-style|marquee-speed|marquee-play-count|marquee-direction|marquee|marks|marker-side|mark-before|mark-after|mark|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|list|lines|line-stacking-strategy|line-stacking-shift|line-stacking-ruby|line-stacking|line-snap|line-height|line-grid|line-break|line|lighting-color|level|letter-spacing|length|left|label|justify-self|justify-items|justify-content|justify|iteration-count|input-method-editor|inline-box-align|initial-value|initial-size|initial-letter|initial-before-align|initial-before-adjust|initial-after-align|initial-after-adjust|index|indent|increment|image-resolution|image-rendering|image-orientation|image|icon|hyphens|hyphenate-resource|hyphenate-lines|hyphenate-character|hyphenate-before|hyphenate-after|hyphenate|height|header|hanging-punctuation|grid-template-rows|grid-template-columns|grid-template-areas|grid-template|grid-rows|grid-row-start|grid-row-end|grid-row|grid-columns|grid-column-start|grid-column-end|grid-column|grid-auto-rows|grid-auto-flow|grid-auto-columns|grid-area|grid|gap|font-weight|font-variant-position|font-variant-numeric|font-variant-ligatures|font-variant-east-asian|font-variant-caps|font-variant-alternates|font-variant|font-synthesis|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|flow-into|flow-from|flood-opacity|flood-color|float-offset|float|flex-wrap|flex-shrink|flex-grow|flex-group|flex-flow|flex-direction|flex-basis|flex|fit-position|fit|filter|fill|family|empty-cells|emphasis|elevation|duration|drop-initial-value|drop-initial-size|drop-initial-before-align|drop-initial-before-adjust|drop-initial-after-align|drop-initial-after-adjust|drop|down|dominant-baseline|display-role|display-outside|display-model|display-list|display-inside|display|direction|delay|decoration-break|decoration|cursor|cue-before|cue-after|cue|crop|counter-set|counter-reset|counter-increment|counter|count|content|contain|columns|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|column-break-before|column-break-after|column|color-profile|color-interpolation-filters|color|collapse|clip-rule|clip-path|clip|clear|character|chains|caption-side|break-inside|break-before|break-after|break|box-suppress|box-snap|box-sizing|box-shadow|box-pack|box-orient|box-ordinal-group|box-lines|box-flex-group|box-flex|box-direction|box-decoration-break|box-align|box|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-length|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-boundary|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|bookmark-target|bookmark-state|bookmark-level|bookmark-label|bookmark|bleed|binding|bidi|before|baseline-shift|baseline|balance|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-break|background-attachment|background|backface-visibility|azimuth|attachment|appearance|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|all|alignment-baseline|alignment-adjust|alignment|align-self|align-last|align-items|align-content|align|after|adjust)\b</string> |
| 701 | 							<key>name</key> |
| 702 | 							<string>support.type.property-name.css</string> |
| 703 | 						</dict> |
| 704 | 					</array> |
| 705 | 				</dict> |
| 706 | 				<dict> |
| 707 | 					<key>begin</key> |
| 708 | 					<string>(:)\s*</string> |
| 709 | 					<key>beginCaptures</key> |
| 710 | 					<dict> |
| 711 | 						<key>1</key> |
| 712 | 						<dict> |
| 713 | 							<key>name</key> |
| 714 | 							<string>punctuation.separator.key-value.css</string> |
| 715 | 						</dict> |
| 716 | 					</dict> |
| 717 | 					<key>end</key> |
| 718 | 					<string>\s*(;|(?=\}))</string> |
| 719 | 					<key>endCaptures</key> |
| 720 | 					<dict> |
| 721 | 						<key>1</key> |
| 722 | 						<dict> |
| 723 | 							<key>name</key> |
| 724 | 							<string>punctuation.terminator.rule.css</string> |
| 725 | 						</dict> |
| 726 | 					</dict> |
| 727 | 					<key>name</key> |
| 728 | 					<string>meta.property-value.css</string> |
| 729 | 					<key>patterns</key> |
| 730 | 					<array> |
| 731 | 						<dict> |
| 732 | 							<key>include</key> |
| 733 | 							<string>#property-values</string> |
| 734 | 						</dict> |
| 735 | 					</array> |
| 736 | 				</dict> |
| 737 | 			</array> |
| 738 | 		</dict> |
| 739 | 		<key>selector</key> |
| 740 | 		<dict> |
| 741 | 			<key>begin</key> |
| 742 | 			<string>\s*(?=[:.*#a-zA-Z])</string> |
| 743 | 			<key>end</key> |
| 744 | 			<string>(?=[/@{)])</string> |
| 745 | 			<key>name</key> |
| 746 | 			<string>meta.selector.css</string> |
| 747 | 			<key>patterns</key> |
| 748 | 			<array> |
| 749 | 				<dict> |
| 750 | 					<key>match</key> |
| 751 | 					<string>\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|datalist|dd|del|details|dfn|dialog|div|dl|dt|em|eventsource|fieldset|figure|figcaption|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|label|legend|li|link|main|map|mark|menu|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|samp|script|section|select|small|span|strike|strong|style|sub|summary|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\b</string> |
| 752 | 					<key>name</key> |
| 753 | 					<string>entity.name.tag.css</string> |
| 754 | 				</dict> |
| 755 | 				<dict> |
| 756 | 					<key>captures</key> |
| 757 | 					<dict> |
| 758 | 						<key>1</key> |
| 759 | 						<dict> |
| 760 | 							<key>name</key> |
| 761 | 							<string>punctuation.definition.entity.css</string> |
| 762 | 						</dict> |
| 763 | 					</dict> |
| 764 | 					<key>match</key> |
| 765 | 					<string>(\.)[a-zA-Z0-9_-]+</string> |
| 766 | 					<key>name</key> |
| 767 | 					<string>entity.other.attribute-name.class.css</string> |
| 768 | 				</dict> |
| 769 | 				<dict> |
| 770 | 					<key>captures</key> |
| 771 | 					<dict> |
| 772 | 						<key>1</key> |
| 773 | 						<dict> |
| 774 | 							<key>name</key> |
| 775 | 							<string>punctuation.definition.entity.css</string> |
| 776 | 						</dict> |
| 777 | 					</dict> |
| 778 | 					<key>match</key> |
| 779 | 					<string>(#)[a-zA-Z][a-zA-Z0-9_-]*</string> |
| 780 | 					<key>name</key> |
| 781 | 					<string>entity.other.attribute-name.id.css</string> |
| 782 | 				</dict> |
| 783 | 				<dict> |
| 784 | 					<key>match</key> |
| 785 | 					<string>\*</string> |
| 786 | 					<key>name</key> |
| 787 | 					<string>entity.name.tag.wildcard.css</string> |
| 788 | 				</dict> |
| 789 | 				<dict> |
| 790 | 					<key>captures</key> |
| 791 | 					<dict> |
| 792 | 						<key>1</key> |
| 793 | 						<dict> |
| 794 | 							<key>name</key> |
| 795 | 							<string>punctuation.definition.entity.css</string> |
| 796 | 						</dict> |
| 797 | 					</dict> |
| 798 | 					<key>match</key> |
| 799 | 					<string>(:+)(after|before|first-letter|first-line|selection)\b</string> |
| 800 | 					<key>name</key> |
| 801 | 					<string>entity.other.attribute-name.pseudo-element.css</string> |
| 802 | 				</dict> |
| 803 | 				<dict> |
| 804 | 					<key>captures</key> |
| 805 | 					<dict> |
| 806 | 						<key>1</key> |
| 807 | 						<dict> |
| 808 | 							<key>name</key> |
| 809 | 							<string>punctuation.definition.entity.css</string> |
| 810 | 						</dict> |
| 811 | 					</dict> |
| 812 | 					<key>match</key> |
| 813 | 					<string>(:)((first|last)-child|(first|last|only)-of-type|empty|root|target|first|left|right)\b</string> |
| 814 | 					<key>name</key> |
| 815 | 					<string>entity.other.attribute-name.pseudo-class.css</string> |
| 816 | 				</dict> |
| 817 | 				<dict> |
| 818 | 					<key>captures</key> |
| 819 | 					<dict> |
| 820 | 						<key>1</key> |
| 821 | 						<dict> |
| 822 | 							<key>name</key> |
| 823 | 							<string>punctuation.definition.entity.css</string> |
| 824 | 						</dict> |
| 825 | 					</dict> |
| 826 | 					<key>match</key> |
| 827 | 					<string>(:)(checked|enabled|default|disabled|indeterminate|invalid|optional|required|valid)\b</string> |
| 828 | 					<key>name</key> |
| 829 | 					<string>entity.other.attribute-name.pseudo-class.ui-state.css</string> |
| 830 | 				</dict> |
| 831 | 				<dict> |
| 832 | 					<key>begin</key> |
| 833 | 					<string>((:)not)(\()</string> |
| 834 | 					<key>beginCaptures</key> |
| 835 | 					<dict> |
| 836 | 						<key>1</key> |
| 837 | 						<dict> |
| 838 | 							<key>name</key> |
| 839 | 							<string>entity.other.attribute-name.pseudo-class.css</string> |
| 840 | 						</dict> |
| 841 | 						<key>2</key> |
| 842 | 						<dict> |
| 843 | 							<key>name</key> |
| 844 | 							<string>punctuation.definition.entity.css</string> |
| 845 | 						</dict> |
| 846 | 						<key>3</key> |
| 847 | 						<dict> |
| 848 | 							<key>name</key> |
| 849 | 							<string>punctuation.section.function.css</string> |
| 850 | 						</dict> |
| 851 | 					</dict> |
| 852 | 					<key>end</key> |
| 853 | 					<string>\)</string> |
| 854 | 					<key>endCaptures</key> |
| 855 | 					<dict> |
| 856 | 						<key>0</key> |
| 857 | 						<dict> |
| 858 | 							<key>name</key> |
| 859 | 							<string>punctuation.section.function.css</string> |
| 860 | 						</dict> |
| 861 | 					</dict> |
| 862 | 					<key>patterns</key> |
| 863 | 					<array> |
| 864 | 						<dict> |
| 865 | 							<key>include</key> |
| 866 | 							<string>#selector</string> |
| 867 | 						</dict> |
| 868 | 					</array> |
| 869 | 				</dict> |
| 870 | 				<dict> |
| 871 | 					<key>captures</key> |
| 872 | 					<dict> |
| 873 | 						<key>1</key> |
| 874 | 						<dict> |
| 875 | 							<key>name</key> |
| 876 | 							<string>entity.other.attribute-name.pseudo-class.css</string> |
| 877 | 						</dict> |
| 878 | 						<key>2</key> |
| 879 | 						<dict> |
| 880 | 							<key>name</key> |
| 881 | 							<string>punctuation.definition.entity.css</string> |
| 882 | 						</dict> |
| 883 | 						<key>3</key> |
| 884 | 						<dict> |
| 885 | 							<key>name</key> |
| 886 | 							<string>punctuation.section.function.css</string> |
| 887 | 						</dict> |
| 888 | 						<key>4</key> |
| 889 | 						<dict> |
| 890 | 							<key>name</key> |
| 891 | 							<string>constant.numeric.css</string> |
| 892 | 						</dict> |
| 893 | 						<key>5</key> |
| 894 | 						<dict> |
| 895 | 							<key>name</key> |
| 896 | 							<string>punctuation.section.function.css</string> |
| 897 | 						</dict> |
| 898 | 					</dict> |
| 899 | 					<key>match</key> |
| 900 | 					<string>((:)nth-(?:(?:last-)?child|(?:last-)?of-type))(\()(\-?(?:\d+n?|n)(?:\+\d+)?|even|odd)(\))</string> |
| 901 | 				</dict> |
| 902 | 				<dict> |
| 903 | 					<key>captures</key> |
| 904 | 					<dict> |
| 905 | 						<key>1</key> |
| 906 | 						<dict> |
| 907 | 							<key>name</key> |
| 908 | 							<string>punctuation.definition.entity.css</string> |
| 909 | 						</dict> |
| 910 | 					</dict> |
| 911 | 					<key>match</key> |
| 912 | 					<string>(:)(active|hover|link|visited|focus)\b</string> |
| 913 | 					<key>name</key> |
| 914 | 					<string>entity.other.attribute-name.pseudo-class.css</string> |
| 915 | 				</dict> |
| 916 | 				<dict> |
| 917 | 					<key>captures</key> |
| 918 | 					<dict> |
| 919 | 						<key>1</key> |
| 920 | 						<dict> |
| 921 | 							<key>name</key> |
| 922 | 							<string>punctuation.definition.entity.css</string> |
| 923 | 						</dict> |
| 924 | 						<key>2</key> |
| 925 | 						<dict> |
| 926 | 							<key>name</key> |
| 927 | 							<string>entity.other.attribute-name.attribute.css</string> |
| 928 | 						</dict> |
| 929 | 						<key>3</key> |
| 930 | 						<dict> |
| 931 | 							<key>name</key> |
| 932 | 							<string>punctuation.separator.operator.css</string> |
| 933 | 						</dict> |
| 934 | 						<key>4</key> |
| 935 | 						<dict> |
| 936 | 							<key>name</key> |
| 937 | 							<string>string.unquoted.attribute-value.css</string> |
| 938 | 						</dict> |
| 939 | 						<key>5</key> |
| 940 | 						<dict> |
| 941 | 							<key>name</key> |
| 942 | 							<string>string.quoted.double.attribute-value.css</string> |
| 943 | 						</dict> |
| 944 | 						<key>6</key> |
| 945 | 						<dict> |
| 946 | 							<key>name</key> |
| 947 | 							<string>punctuation.definition.string.begin.css</string> |
| 948 | 						</dict> |
| 949 | 						<key>7</key> |
| 950 | 						<dict> |
| 951 | 							<key>name</key> |
| 952 | 							<string>punctuation.definition.string.end.css</string> |
| 953 | 						</dict> |
| 954 | 					</dict> |
| 955 | 					<key>match</key> |
| 956 | 					<string>(?i)(\[)\s*(-?[_a-z\\[[:^ascii:]]][_a-z0-9\-\\[[:^ascii:]]]*)(?:\s*([~|^$*]?=)\s*(?:(-?[_a-z\\[[:^ascii:]]][_a-z0-9\-\\[[:^ascii:]]]*)|((?&gt;(['"])(?:[^\\]|\\.)*?(\6)))))?\s*(\])</string> |
| 957 | 					<key>name</key> |
| 958 | 					<string>meta.attribute-selector.css</string> |
| 959 | 				</dict> |
| 960 | 			</array> |
| 961 | 		</dict> |
| 962 | 		<key>string-double</key> |
| 963 | 		<dict> |
| 964 | 			<key>begin</key> |
| 965 | 			<string>"</string> |
| 966 | 			<key>beginCaptures</key> |
| 967 | 			<dict> |
| 968 | 				<key>0</key> |
| 969 | 				<dict> |
| 970 | 					<key>name</key> |
| 971 | 					<string>punctuation.definition.string.begin.css</string> |
| 972 | 				</dict> |
| 973 | 			</dict> |
| 974 | 			<key>end</key> |
| 975 | 			<string>"</string> |
| 976 | 			<key>endCaptures</key> |
| 977 | 			<dict> |
| 978 | 				<key>0</key> |
| 979 | 				<dict> |
| 980 | 					<key>name</key> |
| 981 | 					<string>punctuation.definition.string.end.css</string> |
| 982 | 				</dict> |
| 983 | 			</dict> |
| 984 | 			<key>name</key> |
| 985 | 			<string>string.quoted.double.css</string> |
| 986 | 			<key>patterns</key> |
| 987 | 			<array> |
| 988 | 				<dict> |
| 989 | 					<key>match</key> |
| 990 | 					<string>\\.</string> |
| 991 | 					<key>name</key> |
| 992 | 					<string>constant.character.escape.css</string> |
| 993 | 				</dict> |
| 994 | 			</array> |
| 995 | 		</dict> |
| 996 | 		<key>string-single</key> |
| 997 | 		<dict> |
| 998 | 			<key>begin</key> |
| 999 | 			<string>'</string> |
| 1000 | 			<key>beginCaptures</key> |
| 1001 | 			<dict> |
| 1002 | 				<key>0</key> |
| 1003 | 				<dict> |
| 1004 | 					<key>name</key> |
| 1005 | 					<string>punctuation.definition.string.begin.css</string> |
| 1006 | 				</dict> |
| 1007 | 			</dict> |
| 1008 | 			<key>end</key> |
| 1009 | 			<string>'</string> |
| 1010 | 			<key>endCaptures</key> |
| 1011 | 			<dict> |
| 1012 | 				<key>0</key> |
| 1013 | 				<dict> |
| 1014 | 					<key>name</key> |
| 1015 | 					<string>punctuation.definition.string.end.css</string> |
| 1016 | 				</dict> |
| 1017 | 			</dict> |
| 1018 | 			<key>name</key> |
| 1019 | 			<string>string.quoted.single.css</string> |
| 1020 | 			<key>patterns</key> |
| 1021 | 			<array> |
| 1022 | 				<dict> |
| 1023 | 					<key>match</key> |
| 1024 | 					<string>\\.</string> |
| 1025 | 					<key>name</key> |
| 1026 | 					<string>constant.character.escape.css</string> |
| 1027 | 				</dict> |
| 1028 | 			</array> |
| 1029 | 		</dict> |
| 1030 | 	</dict> |
| 1031 | 	<key>scopeName</key> |
| 1032 | 	<string>source.css</string> |
| 1033 | 	<key>uuid</key> |
| 1034 | 	<string>69AA0917-B7BB-11D9-A7E2-000D93C8BE28</string> |
| 1035 | </dict> |
| 1036 | </plist> |