Changelog History
Page 1
-
v1.0.3 Changes
January 02, 2019๐ Fixed
overflow: visible hidden
minifying asoverflow:hidden
. Now it's left untouched. It's possible that there where other instances of this, which sould now be fixed.- quickcheck-instances upper bound not admitting version 0.3.19 (#5)
- Incorrect description for two flags in the usage info (when running
--help
). The descriptions for[email protected]
and-no-transform-function-min
were swapped.
โ Added
0๏ธโฃ Minification for properties with a pair of values whose second one defaults to the first when missing. For example:
overflow: clip clip
is minified tooverflow: clip
. This also properly interacts with property traits, i.e.overflow: visible visible
is properly minified tooverflow: unset
(sincevisible visible
is equivalent tovisible
, andvisible
is the initial value and overflow doesn't inherit, thusunset
). Among the properties for which this is now done are:border-bottom-left-radius
border-bottom-right-radius
border-top-left-radius
border-top-right-radius
overscroll-behavior
Property traits for
overscroll-behavior
and its longhands,overscroll-behavior-x
andoverscroll-behavior-y
.๐ Minification for
object-position
. This property's value is now parsed as a<position>
, allowing to apply all the minifications a<position>
allows.Minification for
text-emphasis-position
. This property now correctly utilizes its traits, e.g.text-emphasis-position: right over
minifies totext-emphasis-position: unset
.
-
v1.0.2 Changes
March 25, 2018โ Added
caret-color
andfont-display
to the property traits table, enabling their minification.border-radius
minification.- ๐ Parsing and minification of
<basic-shape>
.
๐ Improved
- Position minification
-
v1.0.2.1 Changes
August 28, 2018๐ Fixed
- ๐ Parser choking on CSS variables. (#3)
-
v1.0.1 Changes
December 30, 2017โ Added
Removing
all
andall and
in media query lists, sinceall
is assumed when not present. In other words, the following rules are equivalent:@media all {/*..*/} @media {/*..*/}
and so are these:
@media all and (min-width: 500px) {/*..*/} @media (min-width: 500px) {/*..*/}
Note that this applies to media query lists in at-import rules too.
Replacing the
url()
notation for a <string> when used in the@import
rule.Four pseudoelement minifications:
:nth-of-type(1)
-->:first-of-type
.:nth-last-of-type(1)
-->:last-of-type
.:nth-child(1)
-->:first-child
.:nth-last-child(1)
-->:last-child
.
[class~=x]
to.x
minification.
๐ Improved
- ๐ <position> parser, making hasmin around four times faster on stylesheets with many <position> values.
๐ Fixed
- Length's Eq instance, which would equate lengths with the same numerical value when one had an absolute unit, and the other relative, e.g. 1in and 1em.
- Escaped character conversion: converting characters would crash the program when:
1. The escaped character had more than 6 hexadecimal digits (6 is the specs maximum); E.g. `\aaaaaaa`. 2. The escaped character's numerical representation was out of the unicode range.
This is no longer the case.
-
v1.0 Changes
October 20, 2017โ Added
border-color-*
,border-width-*
andborder-style-*
longhands are now replaced by their shorthand, when the four corresponding longhands are present in a rule.- ๐
Style rules merging: merges pairs of rules that either have all the
same selectors, or all the same declarations. For it to be safe, it only does
so whenever two conditions don't meet:
- There is a rule in between with the same specificity
- This rule has a declaration that "clashes" (interferes) with one of the declarations of the rules to be merged.
By default it is enabled, but it can be disabled with
--no-rule-merging
(or using aConfig
withMergeRulesOn
).๐ Changed
- Replaced
--no-property-sorting
for--sort-properties
. Now Hasmin doesn't sort properties by default; sorting declarations became opt-in rather than opt-out. This is because:- Whether lexicographical sorting of properties aids compression varies a lot from stylesheet to stylesheet, for some files it helps, for others it hurts.
- The current implementation doesn't take into account all the possible interactions between properties, making it unsafe.
๐ Fixed
- ๐ Fixed non-exhaustive pattern bug introduced in 0.3.3
- ๐ Fixed parser choking with rules that contained a semicolon but no
declarations, e.g.
div { ; }
.
-
v0.3.3 Changes
October 18, 2017This version introduced a non-exhaustive pattern bug. Don't use it.
โ Added
- ๐ Simple merging of adjacent media queries (
@media
rules), e.g.:css @media all and (min-width: 24rem) { a { font-size: 1.2rem; } } @media all and (min-width: 24rem) { b { padding-left: .25rem; padding-right: .25rem; } }
๐ Gets merged into into:css @media all and (min-width: 24rem) { a { font-size: 1.2rem; } b { padding-left: .25rem; padding-right: .25rem; } } This closes [#2](https://github.com/contivero/hasmin/issues/2).
- ๐ Simple merging of adjacent media queries (
-
v0.3.3.1
October 28, 2017 -
v0.3.2 Changes
March 18, 2017- ๐ Fixed some dimensions minifying incorrectly.
- ๐ Fixed some Eq instances.
- ๐ Improved test coverage.
- <An+B> values data type modified to disallow invalid values. This makes the data type safer, also simplifying the Quickcheck
Arbitrary
instance.
-
v0.3.2.4 Changes
- ๐ Relaxed doctest upper bound once more, see stackage issue 2663.
-
v0.3.2.3 Changes
- โ Relaxed doctest upper bound.