php-sassでSCSSをコンパイル
SCSS(SASS)はスタイルシートを書くことができるCSSメタ言語です。
SCSSを使うことでCSSをより効率的で可読性の高い記述にできます。
SCSSからCSSを生成するためにはSCSSコンパイラにかける必要があるのですが、これをPHPで実行できるライブラリがphp-sassです。
composerでインストールします。
PHPは
SCSSは一通りの構文を試してみます。
フォルダ構成はこんな感じです。
開発者が個々にSCSSコンパイラを導入する必要がないため簡単にSCSSを導入できそうです。
SCSSを使うことでCSSをより効率的で可読性の高い記述にできます。
SCSSからCSSを生成するためにはSCSSコンパイラにかける必要があるのですが、これをPHPで実行できるライブラリがphp-sassです。
composerでインストールします。
composer require panique/php-sass
PHPファイルとSCSSファイルを用意します。
<?php
require 'vendor/autoload.php';
if($_SERVER['SERVER_NAME'] == 'localhost') {
SassCompiler::run("scss/", "css/");
}
?>
<html>
<head>
<link rel="stylesheet" href="css/style.css" type="text/css">
</head>
<body>
<div class="main">
<p class="rotate">hello php-sass</p>
</div>
</body>
</html>
SassCompiler::run()
メソッドを呼び出して、SCSSの入力先とCSSの出力先を指定するだけです。
// 変数
$font-stack: Helvetica, sans-serif;
$color: #fff;
$back-color: #BF4080;
body {
font: 100% $font-stack;
color: $color;
background-color: $back-color;
}
@import "base"; // インポート
// コメント(コンパイル後残らない)
%message { /* コメント(コンパイル後も残る) */
font-size: 10px * 3; // オペレーター
text-align: center;
}
// ネスト
.main {
p {
// 継承
@extend %message;
margin-top: 100px;
}
}
// ミックスイン
@mixin transform($property) {
-webkit-transform: $property;
-ms-transform: $property;
transform: $property;
}
.rotate { @include transform(rotate(30deg)); }
フォルダ構成はこんな感じです。
/
├───index.php
├───vendor/
├───scss/
│ style.scss
│ base.scss
└───css/
実行するとCSSが出力されてスタイルが適用されます。
body {
font: 100% Helvetica, sans-serif;
color: #fff;
background-color: #bf4080;
}
.main p {
/* コメント(コンパイル後も残る) */
font-size: 30px;
text-align: center;
}
.main p {
margin-top: 100px;
}
.rotate {
-webkit-transform: rotate(30deg);
-ms-transform: rotate(30deg);
transform: rotate(30deg);
}
ディスカッション
コメント一覧
まだ、コメントがありません