コンテンツにスキップ

Stylus

出典: フリー教科書『ウィキブックス(Wikibooks)』

概要

[編集]

Stylusは、効率的でエレガントなCSSの記述を可能にする動的スタイルシート言語です。Node.js環境で動作し、豊富な機能と柔軟な構文により、CSSの生産性を大幅に向上させます。

インストールと設定

[編集]

Node.jsでのインストール

[編集]
npm install stylus -g

基本的な使用方法

[編集]
stylus input.styl -o output.css

基本構文

[編集]

セレクタとプロパティ

[編集]

Stylusは通常のCSSのような記法と、インデントベースの簡略記法の両方をサポートします:

// 通常の記法
.container {
  width: 100%;
  padding: 20px;
}

// 簡略記法
.container
  width 100%
  padding 20px

変数

[編集]

変数を使用してスタイルを定義できます:

primary-color = #3498db

.button
  background-color primary-color
  &:hover
    background-color darken(primary-color, 10%)

高度な機能

[編集]

ミックスイン

[編集]

再利用可能なスタイルブロックを定義できます:

border-radius(n)
  -webkit-border-radius n
  -moz-border-radius n
  border-radius n

.button
  border-radius(5px)

演算子

[編集]

数値の計算や色の操作が可能です:

.container
  width 100% - 20px
  margin (10px * 2)
  background lighten(#000, 50%)

制御構文

[編集]

条件分岐

[編集]
support-ie = true

if support-ie
  .container
    zoom 1
else
  .container
    clear both

繰り返し

[編集]
for i in 1..5
  .col-{i}
    width (i * 20%)

関数とヘルパー

[編集]

組み込み関数

[編集]
  • rgba()
  • darken()/lighten()
  • unit()
  • type()

カスタム関数

[編集]
calculate-width(columns)
  return columns * (100% / 12)

.col-6
  width calculate-width(6)

インポートとモジュール化

[編集]

ファイルのインポート

[編集]
@import 'variables'
@import 'mixins'
@import 'components/*'

モジュール構成

[編集]
  • base/
  • components/
  • layouts/
  • utils/

ベストプラクティス

[編集]

コード整理

[編集]
  • 変数名の命名規則
  • ミックスインの適切な使用
  • ファイル構成の最適化

パフォーマンス

[編集]
  • ネストの深さを制限
  • 不要な演算の回避
  • 効率的なセレクタの使用

デバッグとトラブルシューティング

[編集]

デバッグ方法

[編集]
  • inspect()関数の使用
  • コンパイルエラーの解釈
  • ソースマップの活用

よくある問題

[編集]
  • スコープの問題
  • 優先順位の衝突
  • ブラウザ互換性

プラグインとツール

[編集]

主要なプラグイン

[編集]
  • stylus-loader (webpack用)
  • gulp-stylus
  • grunt-contrib-stylus

エディタサポート

[編集]
  • VS Code拡張
  • Sublime Text用パッケージ
  • WebStorm/IntelliJ IDEA統合

メディアクエリ =

[編集]

レスポンシブデザイン

[編集]
$tablet = 768px
$desktop = 1024px

@media (min-width: $tablet)
  .container
    width 750px

@media (min-width: $desktop)
  .container
    width 970px

プリプロセッサ機能

[編集]

ネスト

[編集]
.article
  h1
    font-size 2em
    &:hover
      color #000
  p
    line-height 1.6

パフォーマンス最適化

[編集]

コンパイルオプション

[編集]
  • 圧縮
  • ソースマップ生成
  • キャッシュの活用

バージョン互換性

[編集]

破壊的変更

[編集]

主要なバージョン間の変更点と移行ガイド

コミュニティリソース

[編集]

ドキュメント

[編集]
  • 公式ガイド
  • チュートリアル
  • サンプルプロジェクト

サポート

[編集]
  • GitHubイシュー
  • コミュニティフォーラム
  • Stack Overflow