正因有stylus可執(zhí)行性,Stylus才能將自身轉(zhuǎn)換成CSS.
Usage: stylus [options] [command] [< in [> out]] [file|dir ...] Commands: help <prop> Opens help info for <prop> in your default browser. (OS X only) Options: -u, --use <path> Utilize the stylus plugin at <path> -i, --interactive Start interactive REPL -w, --watch Watch file(s) for changes and re-compile -o, --out <dir> Output to <dir> when passing files -C, --css <src> [dest] Convert CSS input to Stylus -I, --include <path> Add <path> to lookup paths -c, --compress Compress CSS output -d, --compare Display input along with output -f, --firebug Emits debug infos in the generated css that can be used by the FireStylus Firebug plugin -l, --line-numbers Emits comments in the generated CSS indicating the corresponding Stylus line -V, --version Display the version of Stylus -h, --help Display help information
stylus讀取自stdin輸出到stdout, 因此,如下例:
$ stylus --compress < some.styl > some.css
在終端機(jī)上嘗試Stylus,書寫下面的內(nèi)容,然后為__EOF__按下CTRL-D:
$ stylus body color red font 14px Arial, sans-serif
stylus亦接受文件和目錄。例如,一個(gè)目錄名為css將在同一目錄編譯并輸出.css文件。
$ stylus css
下面的將會(huì)輸出到./public/stylesheets:
$ stylus css --out public/stylesheets
或一些文件:
$ stylus one.styl two.styl
為了開發(fā)的目的,你可以使用linenos選項(xiàng)發(fā)出指令在生成的CSS中顯示Stylus文件名以及行數(shù)。
$ stylus --line-numbers <path>
或是firebug選項(xiàng),如果你想使用firebug的FireStylus擴(kuò)展。
$ stylus --firebug <path>
如果你想把CSS轉(zhuǎn)換成簡(jiǎn)潔的Stylus語(yǔ)法,可以使用--css標(biāo)志。
通過(guò)標(biāo)準(zhǔn)輸入輸出:
$ stylus --css < test.css > test.styl
輸出基本名一致的.styl文件。
$ stylus --css test.css
輸出特定的目標(biāo):
$ stylus --css test.css /tmp/out.styl
在OS X上,stylus help <prop>會(huì)打開你默認(rèn)瀏覽器并顯示給定的<prop>屬性的幫助文檔。
$ stylus help box-shadow
Stylus REPL (Read-Eval-Print-Loop)或“殼層交互(Interactive Shell)”允許你直接在終端機(jī)上把玩Stylus的表達(dá)式。
注意只有表達(dá)式可以生效,而不是選擇器之類。為了簡(jiǎn)單,我們添加-i或--interactive標(biāo)志:
$ stylus -i
> color = white
=> #fff
> color - rgb(200,50,0)
=> #37cdff
> color
=> #fff
> color -= rgb(200,50,0)
=> #37cdff
> color
=> #37cdff
> rgba(color, 0.5)
=> rgba(55,205,255,0.5)
本例我們將使用nibStylus插件來(lái)說(shuō)明它的CLI使用。
假設(shè)我們有如下的Stylus, 其導(dǎo)入nib并使用nib的linear-gradient()方法:
@import 'nib'
body
background: linear-gradient(20px top, white, black)
我們是使用stylus(1)通過(guò)標(biāo)準(zhǔn)輸入輸出試圖渲染的第一個(gè)東西可能就像下面這樣:
$ stylus < test.styl
這可能會(huì)生成如下的錯(cuò)誤,因?yàn)镾tylus不知道去哪里找到nib.
Error: stdin:3 1| 2| > 3| @import 'nib' 4| 5| body 6| background: linear-gradient(20px top, white, black)
對(duì)于簡(jiǎn)單應(yīng)用Stylus API們的插件,我們可以添加查找路徑。通過(guò)使用--include或-I標(biāo)志:
$ stylus < test.styl --include ../nib/lib
現(xiàn)在生成內(nèi)容如下。您可能注意到了,gradient-data-uri()以及create-gradient-image()以字面量形式輸出了。這是因?yàn)?,?dāng)插件提供JavaScript API的時(shí)候,光暴露插件的路徑是不夠的。但是,如果我們僅僅想要的是純粹Stylus nib函數(shù),則足夠了。
body {
background: url(gradient-data-uri(create-gradient-image(20px, top)));
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(1, #000));
background: -webkit-linear-gradient(top, #fff 0%, #000 100%);
background: -moz-linear-gradient(top, #fff 0%, #000 100%);
background: linear-gradient(top, #fff 0%, #000 100%);
}
因此,我們需要做的是使用--use或-u標(biāo)志。其會(huì)找尋node模塊(有或者沒(méi)有.js擴(kuò)展名)路徑,這里的require()模塊或調(diào)用style.use(fn())來(lái)暴露該插件(定義js函數(shù)等)。
$ stylus < test.styl --use ../nib/lib/nib
生成為:
body {
background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAUCAYAAABMDlehAAAABmJLR0QA/wD/AP+gvaeTAAAAI0lEQVQImWP4+fPnf6bPnz8zMH358oUBwkIjKJBgYGNj+w8Aphk4blt0EcMAAAAASUVORK5CYII=");
background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), color-stop(1, #000));
background: -webkit-linear-gradient(top, #fff 0%, #000 100%);
background: -moz-linear-gradient(top, #fff 0%, #000 100%);
background: linear-gradient(top, #fff 0%, #000 100%);
}
更多建議: