- 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 paramter 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