Stylusはスタイルシートのテンプレートエンジンです。変数や繰り返し、インポートなどをスタイルシートに組み込むことができます。便利!
Nodeでは、Expressでひな形を生成するとき、オプションを指定すると一緒についてきます。
$ express stylus_example -c stylus $ cd stylus_example && npm installStylusのファイルは、public/stylesheet/style.styl にあります。
body padding: 50px font: 14px "Lucida Grande", Helvetica, Arial, sans-serifa color: #00B7FFNodeを起動してStylusの出力結果を確認します。
$ node app.js Express server listening on port 3000 in development mode
http://localhost:3000/stylesheets/style.css にアクセスしてスタイルシートを確認します。
出力結果
body { padding: 50px; font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; } a { color: #00b7ff; }
Node起動時にStylusがstyle.stylファイルを解析し、style.cssに出力するという仕組みです。
既存アプリをStylusへ移行する
すでにExpressで作成済みのウェブアプリケーションでStylusを使えるようにするには、以下のように設定することで使用できます。$ npm install stylus $ vim app.js
app.configure(function(){ app.set('views', __dirname + '/views'); app.set('view engine', 'jade'); app.use(express.bodyParser()); app.use(express.methodOverride()); // 以下の一行を追加 app.use(require('stylus').middleware({ src: __dirname + '/public' })); app.use(app.router); app.use(express.static(__dirname + '/public')); });
$ vim public/stylesheets/styles.styl
body padding: 50px font: 14px "Lucida Grande", Helvetica, Arial, sans-serif a color: #00B7FF
連絡帳アプリをStylusに移行する
前回のエントリーで作成した連絡帳アプリにStylusを適用してみます。Stylusをグローバルインストールします。
$ npm install -g stylus /usr/local/bin/stylus -> /usr/local/lib/node_modules/stylus/bin/stylus stylus@0.22.4 /usr/local/lib/node_modules/stylus ├── growl@1.1.0 ├── mkdirp@0.0.7 └── cssom@0.2.1ローカルにもインストールします。
$ npm install stylus stylus@0.22.4 ./node_modules/stylus ├── growl@1.1.0 ├── mkdirp@0.0.7 └── cssom@0.2.1app.jsを修正します。
app.configure(function(){ ... app.use(require('stylus').middleware({ src: __dirname + '/public' })); ... });既存のスタイルシートをStylusに変換します。
$ stylus --css public/stylesheets/style.css public/stylesheets/style.styl $ vim public/stylesheets/style.stylstyle.styl
body padding: 50px font: 14px "Lucida Grande", Helvetica, Arial, sans-serifa color: #00B7FF既存のCSSファイルを削除します。
$ rm public/stylesheets/style.cssアプリを起動して動作を確認します。
これで移行が完了です。Node起動後、public/stylesheets/style.css ファイルが出力されていると思います。
スタイルシートが複数ある場合、すべてのCSSファイルに対して stylus --css hoge.css hoge.styl を指定します。
スタイルを修正してみます。
style.styl
... table border-collapse collapse width 100% td border 1px solid #999 padding 2pxこんな感じで簡単にかけます。
style.cssの出力はこんな感じです。
... table { border-collapse: collapse; width: 100%; } td { border: 1px solid #999; padding: 2px; }かなり綺麗に出力されています。
0 件のコメント:
コメントを投稿