これまでCSSフレームワークというものをほとんど使ったことがなかったのですが、そろそろ手を出そうかと思いFoundationというCSSフレームワークを使ってみました。
html、css、jsファイルで構成される静的バージョンもありますが、色・幅・余白などが緻密に計算されて構成されているFoundationではあまり使い勝手がいいとは言えません。
たとえば制作中にブロック間の余白をもっと狭くしたいと思っても、ブロック間の余白はブロック幅や内部のpaddingなどあちこちに影響を及ぼします。
せっかくCSSフレームワークを使うのですから、SassバージョンのFoundationを使いましょう。
何かを変更してもすべてその変更された値を元にCSSが再構築されますので、仕様変更にも柔軟に対応でき、メンテナンス性も高いです。
というわけで、Sass版Foundationを使ってサイト制作ができるようになるまでの手順をまとめました。
なお、Windows環境でSassのコンパイルにはGruntを使うという前提です。
ADs
Chocolatyを使うのが簡単です。Chocolatyを未インストールの方はコマンドプロンプトを管理者権限で開き、以下のコマンドをペーストしてください。
1 |
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin |
Chocolatyのインストールが終わったら、以下のコマンドでGit,Node.js,Rubyがまとめてインストールできます。
1 |
cinst git nodejs.install ruby |
bowerとgruntをインストールします。
ちなみに「npm」はNode.jsのコマンドです。
1 |
npm install -g bower grunt-cli |
Foundationの管理プログラムをインストールします。
管理プログラムと言っても、.scssファイルやGruntfile.jsなどをダウンロードして展開するだけのプログラムのようです。
1 |
gem install foundation |
ここまでの手順はこれまでFoundationによるサイト構築をやったことがない方のみが必要となります。
2案件目以降は、以降の手順だけでセットアップが可能です。
以下のコマンドをコマンドプロンプトに入力します。
1 |
foundation new projectName --libsass |
カレントフォルダ内に「projectName」というフォルダが作成され、その中にFoundationに必要なファイルが展開されます。名称は何でもかまいません。
上記コマンドの実行が完了すると、カレントフォルダ内に必要ファイル一式がダウンロードされます。
制作作業はそのフォルダ内のファイルを編集して進めていきます。
プロジェクトフォルダに移動し、gruntコマンドで監視を開始します。
1 |
cd projectName |
1 |
grunt |
これで.scssファイルを修正すると自動的に.cssにコンパイルされます。
このままではSassのコンパイルだけなのですが、Gruntfile.jsを修正することで Sassコンパイル→FTPアップロード→Live Reload のような使い方も可能です。
プロジェクトフォルダを見ると大量のファイルやフォルダがあって難しそうに感じてしまうのですが、手を入れるべきファイルは数個だけです。
index.html
基本となるレイアウトが見本がてら入力されていますので、HTMLを見ながら自分好みのレイアウトをつくっていくといいでしょう。
ただ静的HTMLでサイトを作成するケースも減ってきていると思いますので、現実的にはindex.htmlを元にWordPressのテーマをつくったりPHPにして使ったりすることになるでしょう。
scss/_settings.scss
このファイルはFoundationの基本となるフォーマットを定義しているファイルです。
文字サイズや余白、色などの基本情報はこの_settings.scss内に変数で定義されています。
たとえば、配色を変更したい場合は120行目あたり
1 2 3 4 5 6 |
// $primary-color: #008CBA; // $secondary-color: #e7e7e7; // $alert-color: #f04124; // $success-color: #43AC6A; // $warning-color: #f08a24; // $info-color: #a0d3e8; |
という記述がありますので、コメントアウトを外して色を定義します。
Sassなので基本色を変更すればborder-colorや文字の色など、影響がある部分はすべていい感じに変更されます。
あちこちを修正しなくていいのでとても便利ですね。
scssフォルダ内のapp.scssに追記してもいいのですが、別ファイルで定義したい場合は以下のように「@import」という記述をapp.scssに追記します。
1 2 3 4 5 |
@import "settings"; @import "foundation"; //scssフォルダ内に「style.css」というファイルを追加して専用のスタイルはこのファイルに書く場合 @import "style.scss"; |
@importはCSSの@importと同じく別ファイルを取り込む処理です。
Gruntfile.jsの中身を見ると分かりますが、デフォルトではSassコンパイルの対象はapp.scssのみとなっています。
なのでapp.scss内で完結するようにしないといけません。
便利だし手っ取り早いし事故(レイアウト崩れ)も起きないしいいのですが、外観を制御するためのクラスを大量に付加し、過剰なdivだらけのHTMLを書くのはちょっと抵抗が…。このへんは理想(美しいHTMLを書く)と現実(仕事をとっとと終わらせる)のトレードオフと言ったところでしょうか。
ADs
コメントはまだありません。