- Fix: [CLI] Correct console output for Node 6.0
- Fix: Correct extname checks for Node 6.0
- Fix: Proper embedurl encoding for svg files with a hash.
- Fix: Validate this.dest before using path.extname.
- Fix: Update node-glob version.
- Fix: False-positive import loop with empty imported file.
- Feature: Added initial reference selector.
- Feature: New
embedurl()
bif with optional utf8 uncoding support for SVG. - Feature: New
index()
bif. - Feature: New
percentage()
bif. - Feature: New
slice()
bif, #2115. - Feature: Support for UTF-8 encoding of urls, #2084.
- Feature: Added
global
flag todefine()
function. - Feature:
match()
bif now returns the matched values instead of a boolean, #2109. - Feature: Added an optional
flags
argument tomatch()
bif, #2109. - Docs: Added basic “getting started” to Readme, #2073.
- Docs: Updated information about error reporting.
- Fix:
selectors()
now returns proper subselectors. - Fix: No more unneeded spaces with partial reference selector using ranges.
- Fix: Proper evaluating of the default arguments.
- Fix: Evaluate variables in current-media function.
- Fix: Validate regexp flags for
match
function. - Fix: Proper conditional assignment and "define" method.
- Fix: Proper relative paths in sourcemaps if --out flag is set to a filename.
- Fix: Proper errors with
--include-css
and--resolve-url
used concurrently. - Fix: [Evaluator] Support for function as a default argument for functions.
- Fix: [Lexer] Proper multiline comments inside multiline expressions.
- Fix: [JS API] Proper variables from options object inside expressions.
- Fix: [Renderer] No more caching of parsed AST for deps-resolver.
- Feature: Numeric partial references.
- Feature: Relative references.
- Feature: New
selectors()
bif. - Feature: Support for comma-separated lists as
selector()
's arguments. - Docs: Reworked contribution guidelines.
- Docs: Added Contributor Code of Conduct.
- Fix: Support for multiple consecutive parent references.
- Fix: Proper removal of parent references at the root when combinators are present.
- Fix: Don't add space before unknown units.
- Fix: Allow comma-separated lists in
@supports
value. - Fix: No more error message for "assertType" without parameter name.
- Fix: Proper middleware overlap function on windows. Thanks to #2029 by @bcomnes.
- Fix: Better absolute path detection for Windows. Thanks to #2033 by @mlohbihler.
- Refactoring: Moved bifs to separate files.
- Fix: Revert changes in "looksLikeSelector" method.
- Fix: Another parsing regression.
- Fix: A parsing regression.
- Fix: Correct line numbers in error messages for files with CSS comments.
- Fix: Better absolute urls detection.
- Fix: Added type assertions to "substr", "split" and "replace" bifs.
- Fix: Atrules parsing with a block at a new line.
- Fix: Bug with commented indented lines at the end of a file.
- Fix: Stylus error messages for Node 0.12+.
- Fix: A bug with arguments cloning.
- Feature: new url resolver without url checks (
--resolve-url-nocheck
). - Feature: New option to json bif ("leave-strings").
- Feature: New option to json bif ("optional").
- Feature: Adding utf-8 charset to inline sourcemap.
- Feature: allow inline CSS comments inside value.
- Fix: shouldn't fail to compile in strict mode, #1923.
- Fix: Paths should be normalized for windows support, #1954.
- Fix: Proper parsing of selector groups with placeholder and color-like ID.
- Fix: Proper import loop detection.
- Fix: Correct output of namespaces and charsets inside imports.
- Fix: Indented comments shouldn't cause errors.
- Fix: Proper way of parsing lists in "convert" bif.
- Fix: Proper comma escaping in an object interpolation.
- Fix: Allow no whitespace between keyframes name and the following curly brace.
- Fixed
;
at the end of blockless unknown at-rules. - Fixed float units convertion by
convert
bif.
- Added support for cascading extend.
- Added "transparent" as a named color.
- Added support for blockless unknown at-rules.
- Made math more strict.
- Fixed bug with extending nested placeholder selectors inside MQ.
- Fixed imports inside
@media
blocks. - Fixed url resolver to consider
--out
options. - Fixed parsing of multiple "else if" statements.
- Fixed an edge case with recursive extend.
- Fixed regression with nested media queries.
- Fixed parsing of nested comments.
- Fixed checking paths overlap if 'dest' is a function in middleware.
- Added
!optional
directive for extending, #1757. - Added
selector-exists
bif, #1758. - Added
remove
bif for removing items from hashes. - Added optional recursive hash merging, #1771.
- Added optional (
--hoist-atrules
flag)@import
and@charset
hoisting. - Added a way to output to specific file path with CLI, #1800.
- Fixed regression with using
@media
inside+cache
. - Fixed
resolve-url
for hash urls, #1778. - Fixed
mix
bif for differently transparent colors, #1792. - Fixed bug with postfix
&
without comma. - Fixed incorrectly imported functions defined in other files with nested @require.
- Fixed duplicated selectors when extending into placeholders with MQ.
- Fixed
filter: contrast()
error. - Fixed the cloning of cached nodes.
- Fixed incorrect filenames included in source maps, #1812.
- Fixed stripping of unsuppressed comments from nested blocks.
- Fixed build error for multiple files, #1813.
- Fixed error handling slightly.
- Fixed (throwing error) edge case of watching and printing at the same time, #1798.
- Fixed watch to log to std.err, #1796.
- Fixed indent in complex rules at CSS to Stylus conversion, #1808.
- Fixed regression with
block
keyword inside block mixin.
- Fixed regression #1727 + small fixes for #1717.
- Fixed nested selectors when using nested and bubbled media queries.
- Fixed issue when mixin's block is used as part of a property value.
- Fixed hardcoded
.styl
extension from CLI (addedextname
arg).
- Fixed an output order of nested media queries.
- Fixed regression with cached nodes.
- Fixed support for
Woff2
andWebP
mime-tipes, #1699.
- Added a way to use plugins in stylus.render options, #1697.
- Added LRU for memory caching.
- Now returning literal CSS on parser error when
--resolve-url
is set. - Now not showing JS stack trace for stylus'
error()
calls. - Fixed inconsistent source maps' field orders.
- Fixed bug with calling functions inside an inline loop.
- Fixed bug with nested media queries inside a mixin.
- Fixed bug with extending nested selector inside placeholder selector.
- Fixed bug with alpha variable for hsla/rgba.
- Fixed extending of rules inside unknown at-rules.
- Fixed incorrect merging of media queries using variables.
- Fixed bubbling for
@keyframes
. - Fixed incorrect
@supports
parsing. - Fixed
url()
support for@namespace
. - Fixed incorrect filename and column information for cached nodes.
- Fixed
--sourcemap-base
to be ignored when--out
is present. - Fixed outputting sourcemap log message when
--print
was present.
- Fixed sourcemap paths when
--out
flag is present, #1668. - Fixed the naming convention for maps:
.styl.map
=>.css.map
, #1668.
- Added basic sourcemaps support, #1655.
- Added info on columns for sourcemaps and better error reporting.
- Added
globals
andfunctions
keys to options object in JS API, #1653. - Added
rebeccapurple
named color. - Added
unicode-range
support (#1648). - Changed the behaviour of adding percents together to the more sane one, #1664.
- Fixed bug with property lookup inside mixin block (#1645).
- Fixed a bug with nested media queries inside mixins (#1643).
- Fixed an
@extend
inside@media
queries with multi-level selectors (#1658). - Fixed bug with cloning of an interpolated selector with comma (#1660).
- Fixed bug with nested media queries in conditionals.
- Fixed a bug with cached imports (#1641).
- Fixed
@css
literal that generatedu+0085
characters instead of newlines (#1663). - Fixed escaped comma (
\,
) inside hashes (#1666). - Fixed a string representation of HSLA node to preserve
%
(#1439). - Fixed incorrect position of inline comments (#1597).
- Fixed a bug with an apostrophe and a colon in a single-line comment (#1647).
- Fixed support for schema-less urls inside
url()
.
- Fixed comma-first multiline syntax, #1634.
- Fixed hsla arguments for different color functions, #1619.
- Fixed Bug with @media and placeholder selectors, #1625.
- Fixed bug with nested media queries, 1620.
- Fixed broken URL parsing for source and destination paths, #1613.
- Fixed treatment of unknown pseudo-elements, #1608.
- Fixed unit expression precedence error, #1611.
- Added support for anonymous functions, #1580.
- A lot of better color functions, #1526:
- Added support for two arguments for
hsla
. - Added component setters (
red
,hue
,alpha
etc.). - Added
luminosity
bif. - Added
blend
bif. - Added
contrast
bif. - Added
transparentify
bif.
- Added support for two arguments for
- Added
list-separator
bif, #1576. - Added symlinks support to CLI, #1577.
- Added idents and units coercion, #1605.
- Fixed
@keyframes
parsing issue. - Fixed parse error when
{
is on a new line in at-rules. - Fixed an issue with multiline parsing.
- Fixed another issue with cached imports, #1587.
- Fixed illegal unary "%", missing left-hand operand, #1586.
- Reverted #1527.
- Fixed parse error, #1582.
- Fixed regression with double writing of transparent mixin value, #1574.
- Fixed regression with a root reference in interpolated selectors, #1573.
- Added support for nested media queries, #1540.
- Added
convert
built-in function, #1545. - Added negative index values support for subscripts, #1564.
- Add short-circuit evaluation for logical operators, #1532.
- Fixed the dropped commas in splat arguments, #1525.
- Fixed double-writing the
@media
and other at-rules in mixins, #1535. - Fixed unit expression precedence error, #1537.
- Fixed comments inside the property expressions, #1538.
- Fixed handling of the
@css
andunquote
inside groups, #1527. - Fixed incorrect line numbers on errors, #1543.
- Fixed import cloning with cache, #1548.
- Fixed cloning to preserve
property.literal
, #1558. - Fixed bifs arguments cloning bug, #1560.
- Fixed bug with nested interpolated selectors with a comma, 1568.
- Fixed
current-property
ignored in property lookup, #1565. - Fixed
current-property
's value to be evaluated in the right context, #1562. - Fixed spaces and comments inside a hash declaration, #1554.
- Fixed aliases for transparent mixins, #1557.
- Fixed compilation fail when 'dest' path doesn't end with '/', #1541.
- Fixed bug with CSS to Stylus
@keyframes
converting, #1549.
- Fixed regression with
@require
and globbed paths inside functions, #1529.
- Added support for more CSS-like syntax variants: indented code blocks, closing curly brace on the same line with props etc (as now ignoring meaningless tokens while parsing), #1506.
- Added support for block-level
@import
and@require
, #1495. - Added hash values support in
@media
, #1504. - Added coercion for pt units, #1483.
- Added a way to escape
\
in a tag name, #1487. - Fixed trailing spaces and comments in the selector groups, #1499.
- Fixed comments in the selector parts (now ignoring them), #1517.
- Fixed bug with url string having a protocol, #1510.
- Fixed bug with
@scope
and complex selectors, #1505. - Fixed the recursion with the
display: block
inside block mixins, #1515. - Fixed bug with current-property and block mixins, #1512.
- Fixed bug with complex selectors in conditionals, #1500.
- Fixed bug with
@media
bubbling and conditionals, #1518. - Fixed bug with newlines and comments in conditionals, #1520.
- Fixed bug with the variable in the first line of mixin, #1502.
- Fixed but with the variable right after iterating over an empty list, #1503.
- Fixed bug with built-in function calls inside a hash assignment, #1488.
- Fixed bug with
*
selector first in the group, #1498. - Fixed unnecessary bubbling for
@keyframes
, #1490. - Fixed bug with undefined
filename
on keyframes, #1485.
- Major performance tuning and basic caching support, almost ⨉2 build time boost, #1428.
- Added basic support for most at-rules, #1464.
- Added
+cache
built-in mixin for caching the result of functions and mixins into placeholders, #1466. - Added
current-media()
bif that returns the string for the current media query, #1466. - Added
called-from
property in functions that contains the names of the functions from the call stack till the current one, #1466. - Added a way to escape commas and parent references inside selectors, #1413.
- Removed the never needed
-ms-
prefix for keyframes. - Fixed rendering of multiple selectors inside interpolation, #1413.
- Fixed regression with
only
keyword, #1460.
- Added better support for media queries — interpolations, expressions in values and more, #1453.
- Added
define
bif, #1382. - Add
--prefix
option for CLI and+prefix-classes
mixin, #1420. - Added
--deps
flag to list the dependencies of the compiled file and stylus.deps function, #1429. - Added support for multiple selectors in
@extend
, #1419. - Added the support of the hash objects to
define
, #1444. - Fixed some floating point problems in maths, #1339.
- Fixed the lost decimal part of units can when coercing from a string, #1387.
- Fixed bug with hash lookup when a property name is the same as a name of local variable, #1433.
- Fixed bug with the
+=
operator with strings, #1423. - Fixed a bug in recompiling of the files with
--watch
, #1435. - Fixed
default
value forcursor
property (Temporally removedefault
from the pseudo-classes list), #1438. - Fixed the rendering of empty
@keyframes
, #1442. - Fixed parseColor for single digit integers in rgb(a) strings, #1447.
- Fixed wrong named colors, #1450.
- Fixed bug with pseudo-elements as part of the nested selector with a class, #1415.
- Ignoring comments in REPL, #1390.
- Fixed bug with print of the line numbers when node has empty
nodes
array, #1412. - Fixed bug with first argument for defaulted arguments, #1407.
- Fixed compression of blocks with nested rules, #1396.
- Fixed bug with importing of files with
.css
in the dirname, #1385. - Fixed eaten whitespace after selector with a keyword, #1383.
- Added support for reverse ranges.
- Fixed bug with an expression as arguments of function call.
- Fixed bug with property lookup inside
@block
. - Fixed bug with parsing an attribute selector.
- Fixed bug with
add-property
inside function call. - Fixed compiling to a directory with
.styl
in the name. - Fixed bug with missed
mtime
in middleware imports. - Fixed an incorrect line number in multi-line group selectors.
- Fixed incorrect file path in win32 debug info, #1353.
- Fixed color functions to fallback into literal CSS functions, #1340.
- Fixed
@import
globbing with--watch
. - Fixed Bug with units as part of the selector.
- Fixed compiling with UTF-8 BOM.
- Added Icons, and reorganization of graphics folder, #1346.
- Added
@require
, #1287. - Added more lookup patterns for the
@import
and@require
. Support Node.js modules, #1316. - Added file globbing, #1306 and #1013.
- Added root reference, part of #1240.
- Added basic support for
@block
entity, #1290. - Added string support for
selector()
bif, #1279. - Added options as an optional argument for
use()
bif, #1297. - Added some new colors shortcuts: grayscale, complement, tint & shade, #1308.
- Fixed broken @media queries in logic blocks, #1289.
- Fixed function call inside block mixin is on the
block
variable pass, #1285. - Fixed bug with
if
and color in array check, #1301. - Fixed bug with list of color keywords as default argument, #1294.
- Fixed bug with property lookup in @media queries, #1315.
- Now using
css-parse
instead ofCSSOM
for converting CSS -> Stylus, #1307.
- Fixed regression for
selector
, #1278.
- Fixed property lookup in blocks, #1273.
- Fixed @extend in blocks, #1274.
- Fixed if-else-if-else, #1276.
- Fixed inaccessible local variable inside conditional which is inside a selector, #1267.
- Fixed some minor issues with
selector()
interpolation, #1259. - Fixed missing hashes in base64 converted urls, #1263.
- Fixed conditionals inside
@font-face
, #1268.
- Added basic block mixins (
+foo
) with block interpolation (block
), #1223. - Added
selector()
bif, #1249. - Added hash interpolation to blocks, #1202.
- Fixed parent reference in root context from returning
&
. - Fixed bug with double writing media blocks, 1ed44a81
- Fixed a lot of regressions after hashes, #1230, #1236, #1237, #1248.
- Fixed current-property to be available in function evaluation context, #1211.
- Fixed another regression, #1215.
- Fixed regression after the #1185, #1207.
- Fixed assign to hashes using dot, #1201.
- Fixed regression from the #1185.
- Fixed precedence of the subscript operator, #1189.
- Fixed imports in functions, #1192.
- Fixed compressing of time units, #1204.
- Allow multiple
end
event handlers + optional result css modification, #1180. - Added Support for proper hashes in json config, #1186.
- Allow functions accept object literal as an argument, #1184.
- Fixed another infinite loop (
a[
etc.), #1187. - Fixed bug in hashes subassigns with functions, #1181.
- Fixed "is" attribute selectors fail, #1185.
- Fixed another regression after #1150, #1183.
- Fixed parse error in conditional statement without
()
, #1178.
- Fixed other regressions after #1150, #1175.
- Fixed regression after #1150, #1172.
- Added basic hashes support, #1150.
- Allow to inject Evaluator via Renderer's options, #1149.
- Fixed infinite loop case, #1147.
- Fixed Bug with
else if match
, #1154. - Fixed schemaless absolute urls for
url
, #1148. - Fixed urls in windows 7 for
--relative-url
, #1156. - Fixed calculation inside
calc
CSS function, #1133. - Fixed parsing shorthand colors from json config, #1158.
- Fixed
push
not to modify the first element of another array, #1118. - Fixed property lookup from mixins, #1127.
- Fixed support for
src
anddest
in middleware, started tests for middleware #1143. - Fixed
--resolve-url
that removed tails from urls, #1126. - Fixed mime type for
.woff
, #1128. - Fixed
.toString
for undefined functions, #1119. - Fixed path overlap for non-string dest, #1115.
- Fixed
path.resolve
for nonœ-true resolveURL, #1116. - Fixed sync return in
stylus.render()
, #1138. - Fixed duplicate calls from
this.calling
, #1122.
- Added optional params to the json bif, #1102.
- Added
--print
option to print CSS to stdout, #1108. - Fixed json bif to return literals for colours, #875.
- Fixed include of the css files when
--resolve-url
is on, #1099. - Fixed error in negating variables, #1101.
- Fixed bug in
p
function, #1111. - Fixed tests under windows, #1105.
- Fixed regression after #1094, #1113.
- Fixed regression after #983, #1098.
- Fixed regression after #1090, #1094.
- Added
substr
,replace
andsplit
bifs, #1088. - Added possibility to provide functions to src and dest, #930.
- Added explicit expose for events, #898.
- Added blocking and css manipulation possibility within 'end' event, #923.
- Fixed unneeded code for imports, #1090.
- Fixed mtime for literal imports, #983.
- Fixed empty string as possible quote value for string node, #956.
- Fixed non-symmetrical src and dest paths in middleware, #1037.
- Fixed the support for progressive JPEGs in
image-size
, #1087.
- Added jpeg and svg support to image-size, #1083.
- Added
tan
trigonometric function, alsosin
andcos
now understanddeg
units. - Added fonts to data URI
url()
mimes, also the list of mimes is now configurable, #841, #1046. - Added base conversion for numbers, #714.
- Fixes extends from nested mixins, #1084.
- Fixes coercion error, #1082.
- Fixed the regression after #865.
- Added built-in
use()
function to extend Stylus from inside of.styl
files, #788. - Added optional resolver of relative urls, #1070.
- Fixes incorrect imports lookup inside function call, #1069.
- Fixes a lot of issues with trailing symbols in comments, #865.
- Fixes brace on a newline CSS code style.
- Some minor fixes to tmbundle: #975, #1033, #1034.
- Fixed the
exports.version
to always show an actual one.
- Added extendable placeholder selectors, #1014.
- Added optional argument to
image-size
function, #812. - Fixed inline comments after selectors, #862.
- Fixed a bug with empty block in CSS syntax, #712.
- fix issue on Windows where absolute path starts with two backslashes
- fix extends within a loop.
- fix: don't try to read absolute urls
- add sync api for #230 #691 #151
- fix unsuppressed comments in nested imports
- fix #911 Percentage calculation value not copied
- add support for rounding precision
- fix extends with parent reference. Closes #879
- fix importing of files with ".css" in the dirname
- fix #619 Support slash in media
- fix #819 Extends generate duplicate selectors
- fix #807 directory with
.styl
in the name and local install of stylus - fix #814 Add property function with media query
- fix #828 Add 'x' unit for image-set (synonym to dppx).
- fix #834 Percentage calculation not used when value is expression
- fix mozdocument nodes not getting visited during imports. Fixes #853
- add @-moz-document to the lexer and parser. Fixes #436
- add --import for issue #485
- fix @property lookup when a sibling is null
- fix 'limit' file size option that was broken in 61a2cf
- fix pseudo-selector properties. Closes #808
- add more features to the textmate bundle [paulmillr]
- add
json()
BIF for loading variables from JSON files [geddesign] - fix for #790 allow trailing colon, comma etc in // comments [geddesign]
- fix extend in mixin. Closes #747, #748 and #751
- fix @media cloning
- add suffix to
basename()
BIF - add
pathjoin()
BIF - add
basename()
BIF - add
dirname()
BIF - add
extname()
BIF - fix
@extend
in mixin. Closes #638
- Adding list of all css3 units
- Fixed CSS to stylus conversion
!important
support - Fix last rule being ignored if empty indents at the end of the file
- Fixes #425: Compiler hangs when the last property isn't followed by semicolon at the end of the document
- Fixes #435: Can't concat array inside url()
- Fixes #698: incorrect function call within for with named argument [Tõnis Tiigi]
- Fixes #676. Stylus incorrectly imports the .css files that are not in the same folder as the processed .styl file
- Added
add-property()
mixin support [jasonkuhrt] - Added % support for
fade-in()
andfade-out()
[jasonkuhrt] - Added % support to
rgba()
[jasonkuhrt] - Fixed
.import()
- previously failed to mixin
- any node. Closes #657
- Added BIF shift [gravof]
- Added BIF pop [gravof]
- Added support for @media bubbling properties [Ian MacLeod]
- Changed: strip trailing zeros [gravof]
- Added
make test-cov
- Added temporary multiline support.
- Added: allow for '%' unit type in the 'alpha' of rgba and hsla [jasonkuhrt]
- Updated cssom dep
- Removed growl dep. Closes #583
- Fixed BIF retval coercion
- Fixed issue #390, nested @media
- Added
mix()
BIF (docs needed) - Added: cast return values from js functions
- Fixed binops in mixin selectors. Closes #566
- Fixed
opposite-position()
pass through "center"`
- Added
Renderer
"end" event - Added: cast return value from js-functions
- Cleaned up documentation grammar etc [Zearin]
- Fixed postfix conditional cloning. Closes #535
- Fixed idents prefixed with several hyphens. Closes #536
- Fixed up the TextMate bundle syntax [ianstormtaylor]
- Fixed underscore in function identifier. Closes #524
- Fixed @extends inheritance bug. Closes #499
- Fixed 'lineno' global leak due to missing
new
[teppeis]
- Fixed
--watch
working on windows with a temporary hack [dciccale] - Fixed @extend with no properties. Closes #498
- Added: allow newlines in place of commas for keyframes
- Fixed: skip comment newlines between keyframe positions. Closes #504
- Fixed @keyframes support for multiple values. Closes #503
- Added
@extend
. Closes #149 - Added more syntax highlighting to TextMate bundle [paulmillr]
- Added
keys(pairs)
andvalues(pairs)
BIFs - Added JavaScript object coercion support
- Added JavaScript -> Stylus node coercion utilities
- Fixed
.define()
ing of functions - Fixed
stylus(1)
repl for 0.6.x
- Fixed literal / within function call. Closes #432
- Fixed space after
)
in selectors. Closes #449
- Added unit casting, ex:
(n * 5)%
. Closes #285
- Added global leak detection to the test suite
- Fixed two globals
- Fixed operator ident regression. Closes #292
- Added
--include-css
to literally include imported CSS. Closes #448 - Fixed coercion bug with expression. Closes #480
- Fixed middleware
mkdir -p
support
- Fixed
or
binop regression. Closes #475
- Fixed current-property with commas. Closes #472
- revert noop visitor methods, this breaks extensions
- Fixed css-style @page support
- Fixed @page block evaluation
- Fixed @font-face block evaluation [Suor]
- Added "include css" setting (need docs) to literally include imported css. Closes #448
- Added EOL escape. Related to #195
- Fixed tab support in lexical analysis (trailing colors etc). Closes #460
- Fixed "in" within selectors. Closes #458
- Added
spin()
BIF (same ascolor + 50deg
etc) - Removed "sys" require()s for 0.6.x
- Fixed sibling property lookup bug. Closes #452
- Fixed: retain original quote for strings
- Added property lookup bubbling support. Closes #446
- Added "indent spaces" compiler setting. Closes #445
- Allow node > 0.4.x < 0.7.0
- Fixed: allow function execution within @imports
- Added #n support (#e -> #eeeeee). Closes #430
- Added #nn support (#ef -> #efefef)
- Added support for rgb percentages.
- Fixed property rendering in blocks. Closes #440
- Added
@scope <selector>
feature to scope all subsequent selectors - Added list equality to the
!=
operator - Added list equality to the
==
operator - Added mkdir -p support to the middleware
- Changed:
!
coerces expression not the first value - Fixed Ternary boolean coercion. Closes #420
- Fixed @font-face @import regression. Closes #418
- Added
mkdir -p
support to the middleware - Added
@import url(string)
support. Closes #352 - Added
fade-in()
andfade-out()
BIFs - Adding prefixes for Opera and IE
- Fixed comments trailing @media. Closes #415 [guillermo]
- Fixed: Output from --help in stylus executable cut-off half way through
- Changed: treat -/+ operations with percentages as lighten()/darken(). Closes #401
- Fixed
String#coerce()
for Expressions
- Added
-U, --inline
to stylus(1) - Added
rem
support. Closes #395 - Fixed @charset semi-colon. Closes #400
- Fixed infinite loop in
Parser#function()
. Closes #393
- Added alias
:=
of?=
. Closes #389 - Removed auto-prefixing of pseudo element selectors. Closes #385
- Changed: when left-hand operand has no unit assign the right
- Fixed @keyframes with @import regression. Closes #372
- Fixed css @import within blocks regression. Closes #388
- Fixed unwrapping of property args expression. Closes #379
- Fixed @prop access scope issue, use closet block, not current
- Fixed @font-face. Closes #375
- Added pseudo-element vendor expansion support
- Added
@keyframe
expansion support. Closes #293 - Added support for arbitrary
@-VENDOR-keyframes
support - Added support for
@property
mixin property access Closes #363 - Added
/*!
support to comments to disable suppression - Changed: allow uses to append
.styl
when importing. Closes #366 - Fixed paren matching issue. Closes #368
- Fixed windows absolute path checking Added
utils.absolute(path)
- Fixed
Ident#clone()
with.property
flag - Fixed evaluation of expression when using @name. Closes #361
- Fixed
path.join()
usage inutils.lookup()
. Closes #356 - Fixed space after comment regression. Closes #360
- Adding
Renderer#get(option)
- Added the ability to reference property values with
@<name>
. Closes #344 - Changed comment output. css-style multi-line comments are preserved
- Fixed issue with bools in selectors. Closes #280
- Added firebug original file / line number mapping [parallel]
- Added support for
#rgba
and#rrggbbaa
color formats - Changed: fix alpha to a scale of 2
- Fixing function param check to allow for empty function arguments
- Fixed
lighten()
BIF 'lighten by %' function push color closer to white [cwolves] - Fixed cli plugin usage absolute paths, don't prepend the CWD [cpojer]
- Renaming 'import' to '_import' because import is a reserved word in node v0.5
- Added
PI
and-math-prop(name)
- Added
cos()
andsin()
- Added support for SVG data URIs [mhemesath]
- Rename variable "import" to "imported" [eegg]
- Added
js(str)
BIF - Fixed reserved keyword
import
withimported
- Added
@-webkit-keyframes
support. Closes #307 - Added gedit language-spec
- Changed: optional
growl
dep for stylus(1) - Changed:
require("stylus")
instead of../
for the mac app integration
- Fixed middleware handling of new and removed
@import
s [brandonbloom]
- Added Compile and Display CSS TextMate command (⌘B) [Daniel Gasienica]
- Fixed caching behavior for recompilation of files with changed imports [Brandon Bloom]
- Added padding for error linenos so they line up
- Improved unary op error messages
- Improved invalid
@keyframes
ident error msg - Fixed HSLA regression for operations resulting in a bool. Closes #274
- Fixed
arguments
issue with excluding defaults. Closes #272
- Fixed colors after
url()
call regression. Closes #270
- Fixed colors in
url()
. Closes #267 - Fixed selector without trailing comma containing selector token. Closes #260
- Added
-u, --use PATH
flag for utilizing plugins - Fixed
hsla.clampDegrees()
with negative values [Bruno Héridet]
- Added support for underscore in identifiers. Closes #247
- Fixed
@keyframe
block evaluation. Closes #252
- Fixed
0%
in@keyframes
from becoming0
when compressed. Closes #248
- Fixed issue with
^=
attr selector causing infinite loop. Closes #244 - Fixed multiple occurrences of
&
in selectors. Closes #243
- Fixed spaces around line-height shorthand. Closes #228
- Fixed
-{foo}
interpolation support. Closes #235
- Added
*prop: val
hack support (blueprint / html boilerplate etc parse fine now) - Added selector interpolation support
- Fixed "-" within interpolation. Closes #220
- Added
SyntaxError
andParseError
- Removed
stylus.parse()
- Fixed error reporting. Closes #44
- Fixed mutation of units when using unary ops. Closes #233
- Fixed regression. Closes #229
- Fixed issue with large selectors spanning several lines
- Added support for
Renderer#define(name, node)
to define a global
- Added
Renderer#use(fn)
. Closes #224 - Improved
utils.assertType()
error message; include param name
- Fixed: node.source and node.filename are writable
- Added / employed
Null#isNull
- Added / employed
Boolean#is{True,False}
- Removed all uses of
instanceof
- Removed all equality checks between singleton nodes
- Added
Arguments#clone()
- Added
push()
/append()
- Added
unshift()
/prepend()
BIFs
- Fixed: keyword args previously not evaluated
- Fixed: subpixel support
- Fixed bug preventing combinators (and other ops) in
@media
blocks. Closes #216 [reported by jsteenkamp]
- Added
Renderer#include(path)
. Closes #214 - Fixed
@import
path resolution bug. Closes #215 - Fixed optional keyword arg bug. Closes #212
- Fixed regression preventing commas from outputting
- Added
HSLA#add(h,s,l,a)
- Added
HSLA#sub(h,s,l,a)
- Added
RGBA#add(r,g,b,a)
- Added
RGBA#sub(r,g,b,a)
- Added
RGBA#multiply(n)
- Added
RGBA#divide(n)
- Added
HSLA#adjustHue(deg)
- Added
HSLA#adjustLightness(percent)
- Added
HSLA#adjustSaturation(percent)
- Added
linear-gradient()
example - Added
s(fmt, ...)
built-in; sprintf-like - Added
%
sprintf-like string operator, ex:'%s %s' % (1 2)
- Added
current-property
local variable - Added
add-property(name, val)
- Added the ability for functions to duplicate the property they are invoked within
- Added
[]=
operator support. Ex:fonts[1] = arial
,nums[1..3] = 2
- Added
-I, --include <path>
to stylus(1). Closes #206 - Added support for
50 + 25% == 75
- Added support for
rgba + 25%
to lighten - Added support for
rgba - 25%
to darken - Added support for
rgba - 25
to adjust rgb values - Changed: null now outputs "null" instead of "[Null]"
- Fixed hsl operation support, all operations are equivalent on rgba/hsla nodes
- Fixed degree rotation
- Added keyword argument support
- Added
Arguments
node, acts likeExpression
- Added
utils.params()
- Added
debug
option to stylus middleware - Added support for
hsl + 15deg
etc to adjust hue - Added special-case for percentage based
RGBA
operations (#eee - 20%
) - Changed: right-hand colors in operations are not clamped (
#eee * 0.2
) - Added support for
unit * color
(swaps operands) - Fixed color component requests on the opposite node type (ex red on hsla node)
- Fixed
Expression#clone()
to supportArguments
- Fixed issue with middleware where imports are improperly mapped
- Fixed mutation of color when adjusting values
- Fixed: coerce string to literal
- Removed {
darken
,lighten
}-by()
BIFs
- Removed a
console.log()
call
-
Fixed connect middleware
@import
support. Closes #168 The middleware is now smart enough to know when imports change, and will re-compile the target file. -
Changed middleware
compile
function to return theRenderer
(API change)
- Added
-i, --interactive
for the Stylus REPL (eval stylus expressions, tab-completion etc) - Added link to vim syntax
- Changed
p()
built-in to display parens - Changed
--compress -C
to-c
, and-css -c
is now-C
- Fixed: preserve rest-arg expressions. Closes #194
- Fixed
*=
in selector, ex[class*="foo"]
- Fixed
--watch
issue with growl, updated to 1.1.0. Closes #188 - Fixed negative floats when compressed. Closes #193 [reported by ludicco]
- Added postfix
for
-loop support. Ex:return n if n % 2 == 0 for n in nums
- Added support for several postfix operators
Ex:
border-radius: 5px if true unless false;
- Added
last(expr)
built-in function - Added
sum(nums)
built-in function - Added
avg(nums)
built-in function - Added
join(delim, vals)
built-in function - Added
Evaluator#{currentScope,currentBlock}
- Added multi-line function parameter definition support
- Changed:
0
is falsey,0%
,0em
,0px
etc truthy. Closes #160 - Fixed
for
implicit return value - Fixed
for
explicit return value - Fixed mixin property ordering
- Added
RGBA
node - Added
is a "color"
special-case, true forHSLA
andRGBA
nodes. Closes #180 - Performance; 2.5× faster compiles due to removing use of getters in
Parser
andLexer
(yes, they are really slow). - Removed
Color
node - Fixed stylus(1)
--watch
support due to dynamic@import
support. Closes #176
- Fixed: allow semi-colons for non-css syntax for one-liners
- Added
isnt
operator (same asis not
and!=
) - Added support for dynamic
@import
expressions - Added
@import
index resolution support - Added
light()
/dark()
BIFs - Added
compress
option for Connect middleware [disfated] - Changed: most built-in functions defined in stylus (
./lib/functions/index.styl
) - Fixed dynamic expressions in
url()
. Closes #105
- Fixed connect middleware for 0.4.x
- Added
is
andis not
aliases for==
and!=
- Added
@keyframes
dynamic name support - Fixed units in interpolation
- Fixed clamping of HSLA degrees / percentages
- Fixed RGBA -> HSLA conversion due to typo
- Added string -> unit type coercion support aka
5px + "10"
will give15px
- Added
warn
option Closes #152 Currently this only reports on re-definition of functions - Added
$
as a valid identifier character - Added
mixin
local variable for function introspection capabilities. Closes #162 - Fixed typo:
Unit#toBoolean()
is now correct - Fixed interpolation function calls. Closes #156
- Fixed mixins within Media node. Closes #153
- Fixed function call in ret val. Closes #154
- Fixed parent ref
&
mid-selector bug. Closes #148 [reported by visnu]
- Fixed
for
within brackets. Closes #146
- Fixed single-ident selectors. Closes #142
- Fixed cyclic
@import
with file of the same name. Closes #143
- Added stylus(1) growl support when using
--watch
- Added
@import
watching support to stylus(1). Closes #134 - Changed: stylus(1) only throws when
--watch
is not used - Fixed
darken-by()
BIF - Fixed
@import
literal semi-colon. Closes #140
- Fixed evaluation of nodes after a return. Closes #139
-
Added
stylus(1)
direct css to stylus file conversion [Mario] For example instead of$ stylus --css < foo.css > foo.styl
you may now either$ stylus --css foo.css
or provide a destination path$ stylus --css foo.css /tmp/out.styl
. -
Added postfix conditionals. Closes #74 Expressive ruby-ish syntax, ex:
padding 5px if allow-padding
.
- Added
in
operator.3 in nums
,padding in props
etc - Added
Expression#hash
, hashing all of the nodes in order - Added tests for conditionals with braces. Closes #136
- Fixed ids that are also valid colors. Closes #137
- Fixed spaces after
}
with css-style. Closes #131 - Fixed single-line css-style support. Closes #130
- Fixed mixin property ordering. Closes #125
- Added
lighten-by()
BIF - Added
darken-by()
BIF
- Added support for function definition braces
- Fixed issue with invalid color output. Closes #127
- Added css-style syntax support
- Fixed support for
*
selector within@media
blocks
- Fixed property disambiguation logic. Closes #117
You no longer need to add a trailing comma when
chaining selectors such as
td:nth-child(2)\ntd:nth-child(3)
- Added more assignment operators. Closes #77
+=
,-=
,*=
,/=
, and%=
- Fixed
--compress
when passing files for stylus(1). Closes #115 - Fixed bug preventing absolute paths from being passed to
@import
- Fixed
opposite-position()
with nested expressions, unwrapping - Fixed a couple global var leaks [aheckmann]
-
Added:
url()
utilizing general lookup paths. This means that{ paths: [] }
is optional now, as lookups will be relative to the file being rendered by default. -
Added
-w, --watch
support to stylus(1). Closes #113
- Added
opposite-position(positions)
built-in function - Added
image-lookup(path)
built-in function - Added
-o, --out <dir>
support to stylus(1) - Added
stylus [file|dir ...]
support - Added: defaulting paths to
[CWD]
for stylus(1) - Changed:
unquote()
usingLiteral
node - Changed: utilizing
Literal
in place of someIdent
s
- Added optional property colon support. Closes #110
- Added
--version
to stylus(1)
- Initial release