- Raised php requirement to >= 7
- Added support for utf-8 markup in data-uri *.svg files. (@xerc)
- Fixed issue with phpini.memory_limit (@GalileoWebagentur)
- Updated vendor aliases.
- Raised php requirement to >= 5.6
- Removed
csscrush_version()
- Removed
csscrush_add_function()
(can use plugin instead). - Added
csscrush_plugin()
with simplified plugin api. - Added
import_path
option. Additional paths to search when resolving relative imports. - Added support for non-CSS declaration values via backticks (for custom property values).
- Custom properties
--*
now preserve case. - Updated vendor aliases.
- Moved loop plugin to core.
- Removed
@in
directive. - Removed
@settings
directive and its api. - Removed legacy IE plugins.
- Removed hsl2hex, initial, noise, rem, px2em, color and text-align plugins.
- Combined svg plugins (svg-gradients and svg).
- Removed
percent
function.
- Added simple value checking to
@ifset
. - Updated vendor aliases.
- Various fixes and under the hood improvements.
- Added support for function calls on media query lists.
- Added package.json for node package managers.
- Added
previous
/next
context keywords toquery()
function. - Removed legacy-flexbox plugin.
- Removed
disable
option. Renamedenable
option toplugins
, old name still supported. - Removing trace option (SASS debug-info is obsolete) and related functionality. CSS source maps are now well supported.
- Color functions now return nothing if the color argument is invalid.
- Improvements to logging and error reporting.
- Various bug fixes.
- Rule nesting now works without
@in
directives. - Added
csscrush_add_function()
as a simple way of adding custom functions without plugins. - Added alternative directive names:
@set
/@ifset
for@define
/@ifdefine
and@selector
for@selector-alias
. - Added support for a command line config file (
crushfile.php
). - Added
Util::readConfigFile()
method to enable easier configuration sharing between different workflows; esp. command-line and server. - Protocoled
@import
directives are now hoisted to the top of output. - Default output filename now uses
.crush.css
suffix only when outputting to the same directory as input. Otherwise a regular.css
suffix is used. - Updated vendor aliases.
- Removed math shorthand syntax.
- Deprecated
@in
directives. Supported until at-least 3.x. - Deprecated
@define
/@ifdefine
/@selector-alias
in favour of new directive names. Supported until at-least 3.x. - Deprecated the static api methods in favour of the
csscrush_*
functions. Supported until at-least 3.x.
- Added HHVM support (HHVM >= 2.4)
- Added Travis CI support.
- Added custom color keywords plugin.
- Added text-align plugin for polyfilling the direction sensitive text-align values, start and end.
- Added selector splat aliases which expand based on arguments.
- Added settings interface for plugins and CSS environment. Old variable based settings (as used in rem and px2em plugins) are now deprecated.
- Added library docs to repository.
- Added unit argument to the math function.
- Deprecated bare parens math e.g.
()
due to their use in developing CSS specs. - Removed
-ms-
gradient aliases. - Renamed plugin
hsl-to-hex
tohsl2hex
. - Updated plugin API.
- Improved feedback for command line watched files.
- Removed date modified from default boilerplate.
- Made git version available for use in boilerplates.
- Reported version now uses
git describe
style output if available. - Changed base IO class to use non-static methods.
- Numerous under the hood improvements.
- Raised PHP version requirement to PHP 5.3.1.
- Library code (excluding API functions) is now namespaced.
- Added loop plugin: For...in loops with lists and generator functions.
- Added ARIA plugin for working with aria roles states and properties.
- Added forms plugin: pseudo classes for working with forms.
- Removed legacy IE plugins (ie-clip, ie-filter, ie-min-height, rgba-fallback) and spiffing.
- Added parsing for single line variable definitions e.g.
@define col-width 30px;
- Added support for relative input/output file paths (based on the current excecuting script path).
- Added support for protocol-relative (//) URLs.
- Removed
csscrush_clearcache()
function – Its functionality can be easily replicated in plain PHP since all output files have a '.crush.css' file extension. - Removed
csscrush_globalvars()
function. Usecsscrush_set()
instead. - Added
stat_dump
option for saving stats and variables used to a file in json format. - Added
asset_dir
option for directing generated svg and image files. - Deprecated and removed the *-local.ini now there is a better ways of augmenting the default aliases.
- If
formatter
option is set will now override theminify
option (setting it to false) - Now using a PSR-3 compatible logging interface (default implementation can be overridden).
- Better error reporting for syntax errors.
- Various Bug fixes.
- Added source map support according to the Source Map v3 proposal (boolean option
source-map
). - Compile times are now 20-30% reduced.
- Added support for fragment calls within fragment definitions (Issue #48).
- Added check and recovery for overly conservative ini settings.
- The block nesting parent symbol can now be used multiple times (useful for adjacent/general sibling combinations).
- Command utility now supports the
trace
option. - Custom formatter callbacks have been simplified.
- Simplified the
csscrush_stat()
function signature. - Added command line utility alias for composer's vendor/bin directory.
- Removed Plugins.ini (use
csscrush_set()
instead). - Removed Prepend.css.
- Various refactoring for cleaner under-the-hood APIs.
- Added SVG plugin for defining and generating SVG files/data URIs in CSS.
- Added Canvas plugin for image generation and manipulation (requires GD extension).
- Added rem and px2em plugins.
- Added ease plugin for expanded easing keywords.
- Command line utility now has a
--watch
option for automatic compiling when a file is updated. vendor_target
option now accepts an array of targets.- Added
@name
in-rule directive for more robust rule referencing. - Added grouping for function aliases so multiple related functions (e.g. gradients) can now be applied to one value.
- Rule references previously looked for the closest previous match. This behaviour has been changed
to a 'last wins' match to be more consistent with the way CSS works. This may affect users of
@extend
or thequery()
function. - Added
-i
alias to--file
option for the command line utility. - Removed data-* properties.
- Nested rules that use the parent symbol (&) can now work in conjunction with the rooting symbol (^).
- Fixed issue with empty imported files not registering.
- Various bug fixes.
- Added noise plugin (noise/texture generating functions).
- Resolved issues #42 and #43.
- Fixed command line context option.
- Fixed error notice with no enabled plugins in Plugins.ini file.
- Updated aliases file.
- Added flexbox aliases for both 2009 and 2012 edition specs.
- Added a legacy-flexbox plugin for auto-generating the flexbox 2009 spec equivilant properties.
- Updated selector aliases to take arguments at runtime.
- Updated plugin API to use distinct "enable" and "disable" handlers.
disable
option is now resolved before theenable
option so you can easily disable all plugins and then specify the plugins you want to apply.- Added functions API for defining custom functions inside plugins.
- Improved gradient function aliasing to handle new angle keywords (to left, at center, etc.).
- Added svg-gradients plugin for simulating CSS3 gradients with data-uris.
- Added
formatter
option for un-minified output. Possible values (custom formatters can also be defined):- "block" (default) - Rules are block formatted.
- "single-line" - Rules are printed in single lines.
- "padded" - Rules are printed in single lines with right padded selectors. Custom formatters can also be defined.
- Added
newlines
option to set the style of newlines in output. Possible values:- "use-platform" (default)
- "unix"
- "windows" or "win"
- Updated command line utility to use the new options.
- Property/value aliases expanded and renamed as declaration aliases.
- Classes now loaded via an autoloader, also some other refactoring for moving towards PSR-0 compliance.
- Added selector aliasing with the
@selector-alias
directive. - Added
output_dir
option for specifying the destination of compiled files. - Added
doc_root
option for working around problems with server aliases or path rewrites. - Added viewport @-rule aliases.
debug
option renamed tominify
;debug
option will still work as before but is deprecated.minify
option takes an optional array of advanced minification parameters. Possible values:colors
- Expanded
trace
option to take an optional array of log parameters. Possible values:stubs
selector_count
errors
compile_time
- Added
CssCrush::stat
method to retrieve logged parameters. - Improved cross OS support.
- Improved minification.
- Major refactoring.
- Added
trace
option to output SASS compatible debug-info stubs for use with tools like FireSass. - Added
@ifdefine
directive for dynamically including/excluding parts of a CSS file based on the existence of variables. - Updated plugin API.
- Added options for enabling and disabling plugins at runtime.
- Added property sorter plugin.
- Added support for SASS-like @include/@extend syntax for invoking mixins and extends.
- Boilerplate option now accepts a filename string as a boilerplate template.
CssCrush::string
method now uses document_root as a default context for finding linked resources.- Updated command line appication.
- Updated aliases and initial value files.
- Fixed parsing issue introduced in 1.6.1.
- Resolved issues #34 and #35.
- Inheritance model improved to support adoption of pseudo classes and elements (see wiki).
- Added rule self-referencing function
this()
and complimentary data-* properties. - Added rule referencing function
query()
. - Added default value argument for variables.
- Added
hsl-adjust()
andhsla-adjust()
color functions. - Mixin and fragment
arg()
function can now be nested. - Commas are now optional when specifying arguments for most custom functions.
- Double-colon plugin moved to core.
- Option
rewrite_import_urls
now defaults to true.
- Refactoring.
- Fixed some test cases.
- Resolved issue #32.
CssCrush::inline
method now defaults to not printing a boilerplate.- Updated aliases file.
- Extended mixins to work with abstract rules and regular rules.
- Fixed issue with selector grouping and inheritance in combination.
- New feature: Rule inheritance / abstract rules.
- New feature: Block nesting.
- New feature: Mixins.
- New feature: Fragments.
- Abstracted IO interface.
- Added some error reporting.
- Added spiffing.css plugin.
CssCrush::tag
method now uses media type 'all' by default.- Updated alias and initial-value tables.
- Internal refactoring.
- Resolved issues #23, #24, #27, #28 and #29.
- Fixed bug with @import statement parsing.
- Some minor under the hood changes.
- Added command line application.
- Added
rewrite_import_urls
option - Ability to rewrite relative url references inside imported css files. - Added Prepend.css - Optionally prepend css to every input.
- Fix for issue #21.
- Reorganized aliases file with some additions.
- Initial-values updated.
- Updated
CssCrush::string
method to correctly handle import statements.
- Added initial-keyword plugin (shim for the CSS3 keyword).
- Added inline method (Issue #18).
- Added ability to escape declarations from aliasing or plugins by prefixing with tilde.
- Added procedural style public API to mirror the static class API.
- Deprecated
@variables
directive for@define
. @variables still supported for next few releases. - Adjusted color functions to accept a space delimiter (as well as comma) in the arguments list.
- Surpressed some benign PHP warning messages.
- Some internal cleaning up.
- Disabled IE6 min-height plugin by default.
- Improved color functions.
- Added
a-adjust()
function for altering a color's opacity. - Deprecated hsl-adjust function (you can use nested color functions instead).
- Added the ability to use local versions of alias and plugin files so pull updates don't clobber local settings.
- Added hook system for plugins.
- Plugins split into seperate files.
- Aliases and Plugins files renamed with '.ini' file extensions to be editor friendly.
- Added opacity plugin.
- Updated filter plugin.
- Fixed nested custom function parsing (issue #14).
- Added output_filename option.
- Added vendor_target option.
- Renamed 'macros' to the more general 'plugins' and split them into their own files.
- Removed superfluous outer containing directory (update your include paths).
- Fixed regression with absolute URL file imports (issue #12).
- Fixed minification bug (issue #13).
- Updated variable syntax.
- Fixed minification bug.
- Added support for svg and svgz data uris.
- Added animation shorthand alias.
- Added user-select alias.
- Added the public function
CssCrush::string
for processing raw strings of CSS. - Added color functions.
- Added aliases for IE10.
- File importer rewritten.
- Added support for global variables.
- Added support for variable interpolation within string literals.
- Added
CssCrush::tag
method for outputting an html link tag instead of returning a filename. - Added values aliases, dynamic 'runtime' variables.
- Added RGBA macro.
- Added IE clip macro.
- Added data uri function.
- Minor correction to WAMP support.
- Minor fix to rule API.
- Major refactoring.
- Custom functions.
- Optional boilerplate.
- Double colon syntax shim.
- Resolved document root issues.
- Minification improvements.
- Initial release.