(3 files +1-4, 20kb)
@ This is a multi-part HUGE commit. It is, basically, due to my realizing that the current SVN was so much behind my CSS rewrites that it was more buggy than my local install.
+ Added support for the virtual keyword in WeCSS. It allows you to specify a CSS selector that is to be inherited by other rules, but that shouldn't appear itself in the final file. If no other selectors inherit it, then it'll be safely removed. (Class-CSS.php)
! Fixed an incredibly annoying bug that was fixed through a half-arsed attempt back in revision 562, where the generated CSS could sometimes be very different from what was expected, depending on the rule's position in the file. The problem lied in the fact that the sorting wasn't done correctly, and on top of that, WeCSS needed to do extra sorting on the target list. (Class-CSS.php)
- Got rid of the value list (deg, px, mm...) in the math plugin for WeCSS, because I realized that several new value types had been introduced since I last touched it, and I don't want to spend my life on this. So from now on, it'll only be checking for strings between 2 and 4 characters located right after a number. Seems to work well enough... (Class-CSS.php)
+ Added proper support for animation/transition/transform properties in CSS3. (Subs-Cache.php, Class-CSS.php)
+ Added support for unprefixed gradients. I'd recommend the use of angles to indicate the direction, because Wedge will automatically convert the angle between versions. (Class-CSS.php)
* Moved prefixer code from Subs-Cache to Class-CSS, because it's directly linked to the CSS preprocessor, rather than the cache system. (Subs-Cache.php, Class-CSS.php)
+ Added support for browser versions in macros, CSS filenames or CSS conditions (e.g. in skin.xml), and adapted IE to use the new system. The agent is now 'ie' rather than an exact version number, and CSS filenames should have index.ie.css instead of index.ie6.css for instance. The good news is, you can now easily say "IE7 or later" (ie[7-]), "IE7, IE8 or IE9" (ie[7-9]), "up to IE7" (ie[-7]) and just "IE" (ie, yep.) iOS devices will now use the iOS version as the browser version, rather than the browser version itself, because the information it gives away is more important. If you're wondering, the main reason for doing all of this was to allow for the prefixer plugin to determine precisely whether or not the current browser accepts a prefix. (Load.php, Subs-Cache.php)
+ Added an automatic cache purge function that gets called every month to remove files older than a month ago. This should allow for old browser versions to naturally disappear from the file list and avoid stressing the filesystem when accessing the cache folder. (Subs-Cache.php)
+ Added a 'hacks' file category (final name TBA) to the main CSS list, which is executed right after 'index' and 'sections', allowing skins to override an 'index' category file without having to use the 'sections' category name. If you know what I mean... If you don't, don't fret, just use 'hacks' instead of 'index' for skins if you want to be on the safe side. (Subs-Cache.php)
* Moved a couple of files around. (buttons.png, grad250.png, grad700.png)
@ Note on virtuals: this is still (very slightly) buggy, in that it seems to delete the entries in some situations, even if they're inherited. This should be easy enough to fix, as it's reproduceable on the .grad40 class. Not for now though...