├── PlaceholderThemes └── CSS3.css ├── Languages.xml ├── Contents └── Info.plist ├── TextActions └── Snippets.xml ├── README.markdown ├── license ├── CodeSenseProviders └── CSS3.xml ├── Syntaxes └── CSS3.xml └── CodeSenseLibraries └── CSS3.xml /PlaceholderThemes/CSS3.css: -------------------------------------------------------------------------------- 1 | /* 2 | @theme CSS Placeholder 3 | @placeholder css 4 | */ 5 | 6 | 7 | css.id.selector { color: #fc9218; } 8 | css.class.selector { color: #ff509d; } 9 | css.pseudo.class.selector { color: #97b66f; } -------------------------------------------------------------------------------- /Languages.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CSS3.sugar 5 | CSS3 properties 6 | Maurice Kühlborn 7 | de.minimalweb.Sugar.CSS3 8 | 0.1 9 | git://github.com/minimalweb/CSS3.sugar.git 10 | 11 | -------------------------------------------------------------------------------- /Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | CSS3 9 | CFBundleIdentifier 10 | de.minimalweb.Sugar.CSS3 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | CSS 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleSignature 18 | ???? 19 | CFBundleVersion 20 | 1.1 21 | 22 | 23 | -------------------------------------------------------------------------------- /TextActions/Snippets.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Header CSS Comment 6 | 18 | head 19 | css 20 | 21 | 22 | 23 | @group CSS Comment 24 | 30 | group 31 | css 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /README.markdown: -------------------------------------------------------------------------------- 1 | CSS3 Sugar 2 | =========== 3 | 4 | This sugar adds autocompletion for native and browser specific CSS3 properties as well as an overall enhanced CSS support. 5 | 6 | 7 | CSS3 Features 8 | ============= 9 | 10 | * gradients 11 | * multi columns 12 | * rgb, rgba, hsl, hsla 13 | * pseudo classes and elements 14 | * CSS-Animations (incomplete) 15 | * transforms (incomplete) 16 | * transitions (incomplete) 17 | 18 | 19 | General Enhancements 20 | ==================== 21 | 22 | * Enhanced CSS-Syntax zones (e.g. id, class and pseudo selectors) 23 | 24 | 25 | Install using Git 26 | ================= 27 | 28 | Open Terminal.app 29 | 30 | cd ~/Library/Application\ Support/Espresso/Sugars/ 31 | git clone git://github.com/minimalweb/CSS3.sugar.git 32 | 33 | 34 | Install manually 35 | ===================== 36 | 37 | Download the source and uncompress it. Rename the resulting folder to `CSS3.sugar` and put it in `YourHomeFolder/Library/Application Support/Espresso/Sugars/`. 38 | 39 | 40 | 41 | TODO 42 | ==== 43 | 44 | * media queries 45 | * background-size (browser-specifics) 46 | * reflections 47 | * webfonts 48 | 49 | 50 | Not ready yet: 51 | ============== 52 | 53 | * 3D transforms -------------------------------------------------------------------------------- /license: -------------------------------------------------------------------------------- 1 | CSS3.sugar was created by Maurice Kühlborn (http://minimalweb.de) 2 | and is released under MIT license 3 | 4 | Permission is hereby granted, free of charge, to any person 5 | obtaining a copy of this software and associated documentation 6 | files (the "Software"), to deal in the Software without 7 | restriction, including without limitation the rights to use, 8 | copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the 10 | Software is furnished to do so, subject to the following 11 | conditions: 12 | 13 | The above copyright notice and this permission notice shall be 14 | included in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 18 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 20 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 21 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 22 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 23 | OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /CodeSenseProviders/CSS3.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | css > property-name:capture(name) + property-value - punctuation.separator + *:not(container.support.function.misc.css), css > property-name:capture(name) + property-value > punctuation.terminator 12 | de.minimalweb.css3.property.${name} 13 | [a-zA-Z0-9-]* 14 | [^:]| 15 | 16 | 17 | 18 | 19 | css > property-name[text='background'] + property-value - punctuation.separator + *:not(container.support.function.misc.css), css > property-name[text='background'] + property-value > punctuation.terminator, css > property-name[text='background-image'] + property-value - punctuation.separator + *:not(container.support.function.misc.css), css > property-name[text='background-image'] + property-value > punctuation.terminator, css > property-name[text='border-image'] + property-value - punctuation.separator + *:not(container.support.function.misc.css), css > property-name[text='border-image'] + property-value > punctuation.terminator, css > property-name[text='-moz-border-image'] + property-value - punctuation.separator + *:not(container.support.function.misc.css), css > property-name[text='-moz-border-image'] + property-value > punctuation.terminator, css > property-name[text='-webkit-border-image'] + property-value - punctuation.separator + *:not(container.support.function.misc.css), css > property-name[text='-webkit-border-image'] + property-value > punctuation.terminator 20 | de.minimalweb.css3.property.url-values 21 | [a-zA-Z0-9-]* 22 | [^:]| 23 | 24 | 25 | 26 | 27 | css > property-name[text='color'] + property-value - punctuation.separator, css > property-name[text='color'] + property-value > punctuation.terminator, css > property-name[text='background-color'] + property-value - punctuation.separator, css > property-name[text='background-color'] + property-value > punctuation.terminator, css > property-name[text='background'] + property-value - punctuation.separator, css > property-name[text='background'] + property-value > punctuation.terminator, css > property-name[text='border'] + property-value - punctuation.separator, css > property-name[text='border'] + property-value > punctuation.terminator, css > property-name[text='border-color'] + property-value - punctuation.separator, css > property-name[text='border-color'] + property-value > punctuation.terminator 28 | de.minimalweb.css3.property.color-values 29 | [a-zA-Z0-9-]* 30 | [^:]| 31 | 32 | 33 | 34 | 35 | css > property-name[text='background-clip'] + property-value - punctuation.separator, css > property-name[text='background-clip'] + property-value > punctuation.terminator, css > property-name[text='-moz-background-clip'] + property-value - punctuation.separator, css > property-name[text='-moz-background-clip'] + property-value > punctuation.terminator, css > property-name[text='-webkit-background-clip'] + property-value - punctuation.separator, css > property-name[text='-webkit-background-clip'] + property-value > punctuation.terminator, css > property-name[text='background-origin'] + property-value - punctuation.separator, css > property-name[text='background-origin'] + property-value > punctuation.terminator 36 | de.minimalweb.css3.property.clipping-values 37 | [a-zA-Z0-9-]* 38 | [^:]| 39 | 40 | 41 | 42 | 43 | property-list.css, property-list.css > property-name, property-list.css > property-value punctuation.separator 44 | de.minimalweb.css3.properties 45 | [a-zA-Z0-9-]+ 46 | 47 | 48 | 49 | 50 | css 51 | de.minimalweb.css3.classes.pseudo 52 | de.minimalweb.css3.elements.pseudo 53 | (:)[a-zA-Z0-9-]* 54 | (,|.|#|\s|{|^) 55 | 56 | 57 | 58 | 59 | css 60 | de.minimalweb.css3.at-rules 61 | (@){1}([a-zA-Z0-9-]*) 62 | (^) 63 | 64 | 65 | 66 | 67 | property-list.css, property-list.css > property-name, property-list.css > property-value punctuation.separator 68 | de.minimalweb.css3.browser-specific-properties 69 | (^|;|{)\s*([a-zA-Z0-9-]+) 70 | (:|\s|}|^) 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /Syntaxes/CSS3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | /\*\s+@group\s 6 | \*/ 7 | 8 | \*/ 9 | 10 | .* 11 | 12 | 13 | 14 | 15 | /\*\s+@end\s+.*\*/ 16 | 17 | 18 | 19 | 20 | ((@)charset) 21 | 22 | 23 | 24 | 25 | ;|$ 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | ((@)import\b)\s* 35 | 36 | 37 | 38 | 39 | \s*(;|$) 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | (url)(\()\s* 48 | 49 | 50 | 51 | 52 | \s*(\))\s* 53 | 54 | 55 | 56 | 57 | 58 | 59 | [^)]+ 60 | 61 | 62 | 63 | 64 | [^;$]+ 65 | 66 | 67 | 68 | 69 | 70 | ((@)media)\s+([\w\s,]*)\s* 71 | 72 | 73 | 74 | 75 | 76 | (?<=}) 77 | 78 | 79 | 80 | 81 | 82 | 83 | \{ 84 | 85 | 86 | 87 | \} 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | (?=[:.*#a-zA-Z@]) 98 | (?=\{) 99 | 100 | 101 | 102 | (#[-_a-zA-Z0-9@]*) 103 | 104 | 105 | (\.[-_a-zA-Z0-9@]*) 106 | 107 | 108 | (:{1,2}[-_a-zA-Z@]*) 109 | 110 | 111 | 112 | 113 | 114 | \{ 115 | 116 | 117 | 118 | \} 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | (?<![-a-zA-Z])(?=[-a-zA-Z]) 133 | 134 | 135 | $|(?![-a-zA-Z]) 136 | 137 | 138 | 139 | 140 | (:)\s* 141 | 142 | 143 | 144 | \s*(;|(?=\})) 145 | 146 | 147 | 148 | 149 | 150 | (-|\+)?\s*[0-9]+(\.[0-9]+)? 151 | 152 | 153 | (?<=[\d])(px|pt|cm|mm|in|em|ex|pc|deg)\b|% 154 | 155 | 156 | (#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b 157 | 158 | 159 | 160 | 161 | 162 | 163 | (rgb|rgba|hsl|hsla|url|attr|counter|counters|linear\-gradient)\s*(\() 164 | 165 | 166 | 167 | 168 | (\)) 169 | 170 | 171 | 172 | 173 | 174 | 175 | (\b0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\s*,\s*)(0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\s*,\s*)(0*((1?[0-9]{1,2})|(2([0-4][0-9]|5[0-5])))\b) 176 | 177 | 178 | 179 | \b([0-9]{1,2}|100)\s*%,\s*([0-9]{1,2}|100)\s*%,\s*([0-9]{1,2}|100)\s*% 180 | 181 | 182 | (#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\b 183 | 184 | 185 | 186 | [^'") \t]+ 187 | 188 | 189 | 190 | 191 | \!\s*important 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | // 201 | 202 | 203 | $ 204 | 205 | 206 | 207 | /\* 208 | 209 | 210 | 211 | \*/ 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | " 221 | 222 | 223 | 224 | " 225 | 226 | 227 | 228 | 229 | \\. 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | ' 238 | 239 | 240 | 241 | ' 242 | 243 | 244 | 245 | 246 | \\. 247 | 248 | 249 | 250 | 251 | 252 | -------------------------------------------------------------------------------- /CodeSenseLibraries/CSS3.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | \s*(;)? 6 | $0(?1::;) 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | (\s*:)|[^:] 23 | (?1::(${1:bg-position angle}, ${2:color-stop}, ${3:color-stop})$4) 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | (\s*:)|[^:] 33 | (?1::(${1:bg-position angle}, ${2:color-stop}, ${3:color-stop})$4) 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | (\s*:)|[^:] 43 | (?1::(${1:type}, ${2:bg-position angle}, from(${3:color}), to(${4:color})${5:color-stop(${6:position}, ${7:color})})$8) 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | (\s*:)|[^:] 203 | (?1::: $0;) 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | (\s*:)|[^:] 245 | (?1::(${1:../images/})$2) 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | (\s*:)|[^:] 257 | (?1::: $0;) 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | ($1) 365 | 366 | 367 | 368 | 369 | ($1) 370 | 371 | 372 | 373 | 374 | ($1) 375 | 376 | 377 | 378 | 379 | ($1) 380 | 381 | 382 | 383 | 384 | ($1) 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 | 404 | --------------------------------------------------------------------------------