Changes

Release History

Version Date Description
0.9.30 28.12.2022 bugfix
0.9.29 07.11.2020 more dimensions, new format option and bugfixes
0.9.28 07.10.2020 calc() and var() support, java 1.8
0.9.27 23.03.2019 Bugfix
0.9.26 22.07.2018 Code cleanup
0.9.25 27.01.2018 Code cleanup, performance, useSourceStringValues format option
0.9.24 31.10.2017 Bugfixes
0.9.23 01.06.2017 Bugfixes
0.9.22 23.02.2017 Bugfixes
0.9.21 08.01.2017 Nested media rule support, bugfixes, documentation
0.9.20 23.07.2016 Bugfixes, documentation
0.9.19 24.05.2016 Apache2 license, Bugfixes, documentation
0.9.18 27.10.2015 Bugfixes, Improved output formating
0.9.17 16.08.2015 Bugfixes
0.9.16 03.06.2015 Formated output support, Bugfixes, improved UnitTest suite
0.9.15 25.03.2015 Media query support, Bugfixes
0.9.14 08.05.2014 Bugfixes and parser cleanup
0.9.13 20.01.2014 Bugfixes
0.9.12 07.01.2014 Bugfixes, rewritten function support for CSS3.
0.9.11 08.10.2013 CSS parser bugfix for pseudo conditions.
0.9.10 13.09.2013 Release with more CSS3 parser bugfixes and the usual code cleanup.
0.9.9 16.02.2013 Release with new CSS3 parser, some bugfixes and more code cleanup.
0.9.8 25.10.2012 Release with one bugfix and more code cleanup.
0.9.7 24.04.2012 Release with lots of bugfixes.
0.9.6 25.10.2011 Long-overdue release with lots of bugfixes.
0.9.5 27.03.2008 Long-overdue release with lots of bugfixes.
0.9.4 22.11.2004  
0.9.3 ?  
0.9.2 ?  
0.9.1 ?  
0.9.0 ?  
0.1.4 ?  

Release 0.9.30 – 28.12.2022

Type Changes By
Fix Unknown rule values are printed as ems instead of em. rbri

Release 0.9.29 – 07.11.2020

Type Changes By
Add New CSSFormat setting useSingleQuotes to force the usage of single quotes instead of double quotes. Fixes 6. rbri
Add Support for the dimensions 'ch', 'vw', 'vh', 'vmin' and 'vmax' added (CSS3). rbri
Fix Minus sign no longer supported inside unknown dimensions (CSS3). This fixes a problem when parsing calc terms without whitespace around the minus like in calc(42vh-16.4em). rbri

Release 0.9.28 – 07.10.2020

Type Changes By
Update var() support added. Thanks to Christian Morgner. rbri
Update JDK 1.8 is now required. rbri
Update calc() support added. Thanks to Christian Morgner. rbri

Release 0.9.27 – 23.03.2019

Type Changes By
Fix Avoid scientific notation when converting float back to strings. Fixes 86. rbri

Release 0.9.26 – 22.07.2018

Type Changes By
Update Some code cleanup done. rbri

Release 0.9.25 – 27.01.2018

Type Changes By
Update JavaCC updated to version 7.0.3. rbri
Add New format option useSourceStringValues. Fixes 85. rbri
Update Many of the instanceof/cast operations removed from the parser to improve performance rbri

Release 0.9.24 – 31.10.2017

Type Changes By
Update INCOMPATIBLE CHANGE: GeneralAdjacentSelectorImpl (~) type changed from SAC_ANY_NODE_SELECTOR to SAC_DIRECT_ADJACENT_SELECTOR rbri
Update Do not include maven meta information in the jar file. rbri
Add A first simple implementation of the CSS2Properties interface added to CSSStyleDeclarationImpl. rbri

Release 0.9.23 – 01.06.2017

Type Changes By
Fix Preserve double colons used by pseudo selectors (CSS3). Fixes 77. rbri

Release 0.9.22 – 23.02.2017

Type Changes By
Fix Rewritten handling of comma separated property values. No all types are processed correctly. rbri
Fix Improved error handling; no longer skip the whole style sheet in case the first chars are not parsable (CSS3, CSS21). Fixes 73. rbri

Release 0.9.21 – 08.01.2017

Type Changes By
Update Introduce a common interface SACParser for all parsers. rbri
Fix To improve tool support the parser now has an option to accept the infamous star hack. When switching this on, the star hack no longer generates an error. Instead of that the rule is processed (the rule has the star as part of the name!). For more details have a look at the com.steadystate.css.parser.SACParserCSS3Test.starHackSupport() test case (CSS3, CSS21). Fixes 62. rbri
Fix Improved error handling for declarations having unexpected content at end. The parser now skips the invalid content and processes the next declaration instead of skipping to the next rule (CSS3, CSS21). Fixes 70. rbri
Fix Improved handling of charset rules not placed at the beginning. There is now a dedicated error message for this situation and the parser skips only the charset rule (CSS3, CSS21). Fixes 69. rbri
Fix Missing unicode range support added (CSS3). Fixes 68. rbri
Fix Nested media rules are now supported (CSS3). Fixes 67. rbri

Release 0.9.20 – 23.07.2016

Type Changes By
Fix CSSValueImpl.getStringValue() no longer throws an exception for rgba values. Fixes 66. rbri
Update Simplify the generated code for faster processing. rbri
Fix Improved error handling for broken css files. The parser now skips in some cases only to the next rbrace instead of ignoring the whole rest of the document. Fixes 64. rbri
Fix Take care of line breaks in strings when building the text back from the model. Fixes 61. rbri

Release 0.9.19 – 24.05.2016

Type Changes By
Update Now licensed under the Apache License, Version 2.0. rbri
Fix Page selector support added (CSS3). Fixes 60. rbri
Fix Units are no longer removed when parsing an unsupported at rule. Fixes 61. rbri
Fix Support old IE style gradient definitions (filter: progid:DXImageTransform.Microsoft.gradient(...)). Fixes 49. rbri
Update JavaCC updated to version 6.1.2. rbri
Add New format option propertiesInSeparateLines. rbri
Update Rect definitions without comma are also valid. rbri
Fix Incorrect Free Software Foundation address fixed. Fixes 57. rbri

Release 0.9.18 – 27.10.2015

Type Changes By
Update At some places the parser inserts synthetic universal selectors (*). Starting with this version a special class (SyntheticElementSelectorImpl) is used for these selectors. As a result, the output (toString, getCssText) no longer contains an extra '*' (if not explicit defined in the input) rbri
Fix CSSStyleSheet.insertRule when taking the rule from an existing rule and the rule contains ':not'. Fixes 56. rbri
Update MediaQuery.isOnly() and MediaQuery.isNot() added. rbri
Update MediaList.getMediaText now outputs the whole media query rbri
Update Colon is no longer part of the text output of empty properties. rbri

Release 0.9.17 – 16.08.2015

Type Changes By
Fix Encoding of the input stream was ignored when the input stream was set up with a byte stream. rbri
Update Minor parser code optimizations and more unit tests. rbri

Release 0.9.16 – 03.06.2015

Type Changes By
Add Support for getCssText(CSSFormat) added to start supporting various output format options. Fixes 54. rbri
Add Missing impl of com.steadystate.css.dom.CSSUnknownRuleImpl.setCssText(String) added. rbri
Fix Possible NPE in com.steadystate.css.dom.CSSImportRuleImpl.getCssText() fixed. rbri
Fix Possible NPE in com.steadystate.css.dom.CSSFontFaceRuleImpl.getCssText() fixed. rbri
Fix Wrong null handling in com.steadystate.css.dom.CSSCharsetRuleImpl.getCssText() fixed. getCssText() now returns also the semicolon, because this is part of the rule per spec. rbri
Fix Possible NPE in com.steadystate.css.dom.CSSPageRuleImpl.getCssText() fixed. rbri
Update Attribute 'ident' removed from class CSSPageRuleImpl. rbri
Update Minor updates to the documentation. rbri
Fix If a rule contains the same property twice, the CSSStyleDeclarationImpl methods getPropertyDeclaration, getPropertyValue, getPropertyCSSValue, getPropertyPriority, and setProperty are now returning (or updating) the latter one instead of the first one. Fixes 51. rbri

Release 0.9.15 – 25.03.2015

Type Changes By
Simple 'Getting started' document added. rbri
Fix CSS3 parser now supports media queries. Fixes 40. rbri
Fix No longer skip the following declarations if a css star hack (http://en.wikipedia.org/wiki/CSS_filter#Star_hack) was used (CSS21 and CSS3). Fixes 50. rbri
Fix Bunch of fixes for the unicode handling implemented. rbri
Fix Some internal lexer cleanup for CSS21 and CSS3 parser. rbri

Release 0.9.14 – 08.05.2014

Type Changes By
Fix Fix the error processing for expression 'filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);'. This is an old IE6 syntax; CSSParser will handle this as error but the parsing will continue directly after this. Fixes 46. rbri
Fix Fix the skipping of invalid rules. As a result, the parser now recognizes following expressions inside the same declaration instead of jumping to the next declaration. rbri
Fix Many small fixes for the parser; remove some unused variables and correct some statement order. rbri

Release 0.9.13 – 20.01.2014

Type Changes By
Fix Only simple selectors are valid as parameter for the :not pseudo class (CSS3). rbri
Fix Whitespace before the includes operator was not handled correctly (e.g.[rel ~=val]) (CSS3). rbri
Fix Fix the toString method for functions to insert a blank at the right places (CSS3). Fixes 45. rbri

Release 0.9.12 – 07.01.2014

Type Changes By
Fix Parsing of functions rewritten, now we have working support for functions with parameters calculated by functions (CSS3). Fixes 44. rbri
Fix Processing of the rect(), counter(), counters() and rgb() function parameter fixed (CSS2, CSS21, CSS3). Fixes 41. rbri
Fix Processing of the attr() function parameters fixed (CSS2, CSS21, CSS3). rbri
Fix NPE fixed if duplicate pseudo selector found (CSS2, CSS21, CSS3). rbri
Fix Some NPE fixed for class CSSStyleDeclarationImpl. More unit tests written. Fixes 42. Thanks to Ahmed Ashour. rbri

Release 0.9.11 – 08.10.2013

Type Changes By
Fix CSS2/CSS21/CSS3: Fix selector parsing for more than one pseudo condition. rbri

Release 0.9.10 – 13.09.2013

Type Changes By
Fix CSS2/CSS21/CSS3: Permit comments and whitespace before the @charset rule. Fixes 39. rbri
Fix CSS3: Support dimensions (20px, 40deg) as function arguments. rbri
Fix Fix the string representation of many function arguments. rbri
Fix CSS3: support double colon notation for pseudo selectors. Fixes 37. rbri
Fix CSS3: When parsing pseudo function arguments now the (inner) whitespace is preserved. rbri

Release 0.9.9 – 16.02.2013

Type Changes By
Fix Simplified unit parsing for CSS21 and CSS3. Maybe this makes the parser a bit faster. rbri
Fix Parser.parseSelectors(InputSource) now handles leading whitespace properly. rbri
Fix Improved parsing of the lang selector. rbri
Add @font-face support added to CSS3. rbri
Add CSS3 parser added (patch from Ahmed Ashour). rbri
Fix DescendantSelectorImpl#toString() takes PseudoElementSelectors into account. Fixes 35. rbri
Fix com.steadystate.css.dom.CSSValueImpl.getPrimitiveType() returns wrong type for Hz and KHz. rbri
Class CSS2Properties removed (spec: A conformant implementation of the CSS module is not required to implement the CSS2Properties interface). rbri

Release 0.9.8 – 25.10.2012

Type Changes By
Fix More code cleanup work done. rbri
Fix Minor pom.xml fixes. rbri
Fix AttributeconditionImpl.getSpecified() now returns false if no value specified (like '[rel]'). rbri
Fix More unit tests added. Unused code removed. rbri

Release 0.9.7 – 24.04.2012

Type Changes By
Fix Fix handling of escaped colons in id selectors like '#form\:elem'. rbri
Fix Possible number format exception when parsing dimensions fixed. rbri
Update Result of LexicalUnit.toString() is now cached for performance. rbri
Fix Fix for some null handling in LexicalUnit. rbri
Add Many tests written for LexicalUnit. rbri
Fix RectImpl now expects and processes the four coordinates in the correct (top, right, bottom, left) order. rbri
Fix Some more fixes for sanity checks done in CSSStyleSheet.insertRule. rbri
Fix Improved message output in class DOMExceptionImpl. rbri
Fix CSSStyleSheet.deleteRule now throws a DOMException if the given index is out of bounds (instead of an IndexOutOfBoundsException). rbri
Fix CSSStyleSheet.insertRule now takes care of incorrect rules. If the rule (to be added) parsing failes, insertRule now throws an exception (instead of adding a null as rule). rbri

Release 0.9.6 – 25.10.2011

Type Changes By
Fix CSS 2.1 parser now ignores any '@import' rule that occurs inside a block (see http://www.w3.org/TR/CSS2/syndata.html#at-rules). JUnit tests added. rbri
Fix Parser hang with missing semicolon fixed. Fixes 32. rbri
Fix Method com.steadystate.css.parser.LexicalUnitImpl.createAttr(LexicalUnit, LexicalUnit) removed. The impl was broken. You can use the method com.steadystate.css.parser.LexicalUnitImpl.createAttr(LexicalUnit, String) instead. Fixes 24. rbri
Fix Improved error handling for methods parseStyleDeclaration, parseRule, parseSelectors, parsePropertyValue, parsePriority and parseMedia in class AbstractSACParser. All CSSParseException are now catched and processed by the error handler. rbri
Fix Class TestCSSParseException removed. rbri
Fix Another unescaping problem fixed. Fixes 29. rbri
Update Class CSOMParser now takes care of the system property 'org.w3c.css.sac.parser'. The effect is, that the class uses the same parser as long as this property is unchanged. You can change the property from the outside (System.setProperty()) or by calling the CSOMParser(Parser) constructor. rbri
Update Default parser changed from CSS2 to CSS21. rbri
Fix Always check for EOF if skipping something. Fixes 27. rbri
Fix Improved error handling for incorrect rules. Fixes 18. rbri
Fix Ignore leading and trailing whitespace in method com.steadystate.css.dom.CSSStyleSheetImpl.insertRule(String, int). Fixes 26. rbri
Add Many more JUnit tests added. waldbaer
Add Locatable and friends added. waldbaer
Add Many equals and hashCode implementations added. waldbaer
Fix String parser was too greedy. Fixes 33. waldbaer
Fix Wrong processing of some chars. Fixes 22. waldbaer
Update Major updates on the grammars. waldbaer
Update JavaCC (and the maven plugin) updated. Fixes 33. waldbaer

Release 0.9.5 – 27.03.2008

Type Changes By
Remove Removed the deprecated classes com.steadystate.css.CSS2Parser, com.steadystate.css.RGBColorImpl and com.steadystate.css.HexColor.
Fix Correctly unescape escaped characters in strings. Fixes 11. sdanig
Fix CSSStyleDeclarationImpl.getCssText() fixed to not return curly braces (as per the spec). Fixes 20. sdanig
Remove Removed unused class ParseException (one of two classes with this name). Fixes 15. sdanig
Update Updated the minimum required Java version to Java 5. sdanig
Remove Removed the W3C DOM and SAC classes, using instead the classes in the JDK and the official SAC JAR. sdanig
Update Moved build system to Maven 2. sdanig
Add Added parseMedia() to SACParser. sdanig
Update Modified CSSOMParser to allow parser creation within the sandbox. sdanig
Remove JavaCC-generated files removed from the repository. sdanig
Update css2.jj renamed to SACParser.jj. sdanig
Add Initial JUnit tests added. sdanig

Release 0.9.4 – 22.11.2004

Type Changes By
Add Ant buildfile added. davidsch

Release 0.9.3 – ?

Type Changes By
Fix Fixed a bug in the '@page' rule where a space after an identifier or a pseudo page caused a parser exception.

Release 0.9.2 – ?

Type Changes By
Update Made several modifications to provide JDK 1.1 compatability.
Fix Fixed a bug that caused negative floating-point values to be excessively trimmed.

Release 0.9.1 – ?

Type Changes By
Update Updated the SAC to version 1.2.
Update Updated the CSSOM to comply with the W3C recommendation.
Update Made the CSSOM serializable.

Release 0.9.0 – ?

Type Changes By
Update Implemented the SAC (Simple API for CSS).
Update Converted the CSS DOM to be implemented on top of the SAC.

Release 0.1.4 – ?

Type Changes By
Fix Fixed case-sensitivity bug in ASTStyleDeclaration.
Update Renamed methods in ASTMediaList to bring it into line with CR-DOM-Level-2-20000510.
Update Reduced the number of states in the lexer to simplify matters and to aid with improved handling of invalid statements.