Home > Movable Type | XHTML CSS > MTで実践 - CSSのモジュール化による管理方法と遊び方

MTで実践 - CSSのモジュール化による管理方法と遊び方

Vicuna

1年ほど前からMAQUEというMovable Typeのテンプレートを配布しているのですが、利用者も増えて色々とフィードバックをもらい続けていたので、それを活かして新しいものを作りました。βテストも終わって細部を修正して正式リリースしたのでMTユーザーやMTに興味ある方はみてください。そして、それで実践したCSSファイルのモジュール化による管理方法とカスタマイズ方法について解説します。MTユーザーでない方もローカルで確認できるパッケージがあるのでよかったらいじくってみてくださいね。

Movable Typeのデフォルトソースを1から書き直し、シンプルで軽量、XHTML1.0 Strict DTD準拠です。基本的には1つのテンプレートソースに対して好みのスキンをあてこむ形で色々なデザインのウェブログが作れるようになっています。ごちゃごちゃしたソースとさよならしたい方にはもってこいです。構造的に無駄が無いので勉強中の方にこれを使ってXHTMLとCSSをいぢくり倒してほしい。みたいな。

mt.Vicuna専用Skin

スキンはまだプロトタイプとして用意したVegaAltairの2つしかありませんが、これにはちょっとした遊びがあって、1つのスキンで20種類ほどの機能的なレイアウトができるようになっています。(ほんとはもっとできるんだけど、実用的なものだけ紹介しています)

組み合わせを全部紹介するのは大変めんどうくさいので、ここでは一部を紹介します。

  • 2column

上記のような2カラムレイアウトはもちろん

  • 3column

3カラムから

  • 3column Type2

コンテンツ量が多いサイトで最近良く見かける右2本メニューもできます。

  • 3column Eye Catch Short

また、カスタマイズするユーザーを見ていたら、なんとかしてアイキャッチ画像を表示させようと苦戦する方もよくみかけるので、これらも簡単に表示できるようにしました。

  • 3column Eye Catch Mini

初期のレイアウトは可変幅で今話題(?)のエラスティックレイアウトになっていますが、3-layout.cssの調整でここらへんの大枠のレイアウトは簡単に変更できます。

もっと見たい方は以下のページを参照してください。

CSSに不慣れな方でも、このように複数用意されたレイアウトを簡単に切り替えられるように、bodyに付加するclass名での切り替え、CSSのモジュール化による管理、そしてコメントアウトを解除することによってモジュールがONになるという仕掛け(?)で設計しました。詳しくは以下のページを参照してください。

body class="single"とすると1カラム、doubleで2カラム、multiで3カラム(またはそれ以上)のレイアウトに パッ と切り替わります。

あれ、なんか遠くから声が聞こえてきたぞ

「1つとはいえ、XHTML文書に見栄えの名前がついたclassなんて書いているんじゃねえ氏ね」

だ、大丈夫です。そう感じた方ならこのようなclass名を使わないでも切り替えられるように、各テンプレートにはもういっこclassがくっついているので、これを利用して少し書き換えれば同様なレイアウトが組めます。これでひとつどうかお許し下さい。はぁはぁ。

CSSファイル構造とスタイルモジュール

レイアウトを含め、スキンにはカスタマイズに合わせて用意されたCSSファイルがスタイルモジュールとして最初から同梱されています。以下はプロトタイプスキンのCSSファイル構造です。

CSSファイル構造

  1. element.css
  2. common.css
  3. layout.css

のコアスタイル3つと4-module.cssがあり、4-module.cssには好みに合わせて使用できるスタイルモジュールを読み込むImport規則が記述されています。初期状態では全てのモジュールはコメントアウトされimportされませんので必要ない記述を読むということはしません。モジュールの読み込ませ方については先にあげたページに詳しく書きましたのでそちらを参照してください。

モジュール化の利点

CSSファイルを分けて管理する方法については 2xup - スタイルシートを分けて管理する方法をまとめるに詳しく書かれています。mt.Vicunaではこのように分割して管理する方法と、それをちょっと応用して第三者(テンプレートユーザーですね)が管理・カスタマイズしやすいような分割方法を実践しています。

製作者以外の第三者がWEBページの見栄えを大きく変えられるようにしなくてはいけないケースなんて稀だと思いますが、分割管理することで授かれる恩恵、ひいては構造から見栄えを切り離すことで生まれるPOWERというものを感じることができます。アンチCSS・テーブルレイアウト支持者はCSSのつまんないとこを突っついていないで、こういうとこをもっと見て欲しい。

各スタイルモジュールは必要なければ読み込まれないのでいくらでも作りこむことができ、開いているCSSファイルの記述はモジュールのことしか書かれていないのでとても見通しがいい。ただ、ファイル数が多くなってしまうのと、他のモジュールと衝突して組み合わせによってレイアウトが崩れないようにするのに苦労しましたが、扱いに慣れてくると かしこさ が 1 あがって 新しい脳内レイヤーができて利点ばっかり思いつくもんですね。ただ見栄えを完成させるだけでなく、どの要素がもっているスタイルなのかを深く考えることができるようになるとおもいます。ちょっと話がずれちゃうのでまた別のエントリーにでもするつもりですが、文書構造と見栄えがどういう繋がりを持っているかというのを考えるのはとても楽しいんですよ。1枚の完成図をCSSで再現させるという考え方でもいいですが、それができたら、じゃあもし各要素が正しい文書構造を保ったまま入れ替わったり、削除されたときも自然とかっこよくなる見栄えができるだろうか。って考えて作ると自然と文書の各要素と見栄えの繋がりが赤い糸のように浮かび上がってくるんですね。ロマンチックですね。なんか心までアツクなっちゃいましたけど、この記事はMTのテンプレートの記事ですので軌道修正しましょう。

他人がカスタマイズするサイトを製作って!

凄い難しいくて楽しい。以前配布していたテンプレートで失敗したなと思うのは、CSSによる縛りが強すぎた事でした。ユーザーのXHTMLとCSSの知識はいろいろなのですが、XHTMLを間違って記述してレイアウトが「なんかこれちょっと変じゃねえか?」となるのはまだ良いとして、正しいXHTMLを書いてそうなってしまうことが多かった。具体的には、予想していない要素を入れ子にすると気持ち悪い見栄えになるとかがありました。たいしたズレでもないけど、「うわーこのひとアソコにアレ入れちゃった! 予想外! 」ということが多かった。今回はそういったことが起こりづらいように設計してあるので、ユーザーが増えてくるのが楽しみです。

サブスキンモジュール

mt.Vicuna専用スキンにはもう1つ仕掛けがあって、サブスキンという配色設定用のモジュールが用意してあります。これはカスケードの末端に位置し、それまでの指定を簡単に上書きすることができるようになっています。(初期ではコメントアウトにより読み込まれていません)

CSSはちょっと苦手という人でもファイル内に記述されたコメントを見ながら調整することでスキンの見栄えを大きく変える事ができます。また、1つのモジュールとして独立し、ボックスに関するプロパティは書かれていないので、他人の作ったサブスキンモジュールを組み込むこともできます。mod_subSkinというフォルダに纏められていますので、例えばリストマークやポイント画像を使って装飾し、フォルダごと他人と共有するといった使い方もあります。他のモジュールとの組み合わせでもおかしくならない様にするには少し頭を使うかもしれませんが、角丸にするサブスキンというのも面白いかもしれないですね。

ローカルで作りこめるスキンセット

サーバーに置かれたページをCSSでカスタマイズするには、ローカルのCSSを編集し、アップロードして表示を確認するという繰り返しになるのでとても大変です。そこで、ローカルで各ページのXHTML構造を再現したhtmlファイルと、それらに適用されるCSSファイルをパッケージにして配布することにしました。

同梱されている確認用のhtmlページのソースは、ページ内のリンクが切られている等、細かい部分で実際のソースとは違いますが、これを使ってローカルでまずCSSを編集・調整し、手元のhtmlで確認、完成したらstyle-vegaフォルダをアップロードすればブログは同じ見栄えになるはずです。カスタマイザーは是非使ってください。

Movable Typeを設置するつもりが無いかたでも、ちょっとモジュール化ってどんなもんだろ?って人は落としていじくって遊んでみてください。意味わかんねーとならないように、mt.Vicuna - カスタマイズにドキュメント書きまくったので読んでもらえたら扱い方はわかるとおもいます。

他のCMSツールへの移植

mt.Vicuna ver.1.0で不具合が見つからなければ、スキンをもう少し充実させ、順次他のCMSツールへ移植することを考えています。

  1. WordPress
  2. FC2 Blog
  3. Serene Bach

といった順番で移植しようと考えていますが、僕はMT以外のCMSを触ったことがないので、手伝ってくれる方がいたら嬉しいです。といっても、共同作業ではなく、mt.VicunaのMTタグを置き換えてこれらのツールで動くように設置して下さったらそれを頂戴して調整するという、人間的に嫌われそうなかたちでのお願いです。

お礼らしいお礼はできませんが、配布サイトの全てのページの下部にスペシャルサンクスとして移植版を製作して下さった方のサイトへリンクを目立つよう設置し、ご希望ならば拙著「実践 Web Standards Design」を差し上げます。

では、Vicuna.jpをどうぞ宜しくお願いします。

Comments:12

Comment Form
カイバ 2007年3月16日 13:00

WordPress対応やってみたいです!
土日がんばってみようかと思います。

Milli 2007年3月16日 13:51

はじめまして。
Serene Bach と聞いて呼ばれていないのに飛び出てきました。
私も以前から Vicuna のような自在にカスタマイズ可能なテンプレートを作りたいと考えておりましたので、Vicuna の趣旨には大いに共感いたします。
何かご協力できることがありましたら是非お手伝いさせていただきたいと考えております。

# トラックバックが送信できませんでした :'(

additionaltime 2007年3月16日 13:59

はじめまして。
デザインが綺麗なブログでしたので以前から注目していました。
自分はWordPressを使っていますが、このような綺麗なテーマを作りたいと考えていました。 参考にさせていただき、これからも頑張ろうかと思いますが、カイバさんが仰るようにWordPressでこのテンプレートが使えたら非常にありがたいことです。

wu 2007年3月16日 17:25

カイバさんへ
カイバさんごめんなさい!真っ先になのりでてもらってとっても嬉しいのですが、やはり移植先のツールを普段から利用していて、そのツールのカスタマイズに慣れた方にやってもらいたいという気持ちがあります。もしユーザーからツール特有の質問があった時に対応できるようにしたいという理由からです。 m (_ .. _) m

Milliさんへ
はじめまして。サイトを拝見させていただきました。
とても素敵なテンプレートを配布されているんですね!
是非、Serene Bachへの移植をお願いいたします。
記事の通り、大したお礼はできませんが、宜しくお願い致します。

additonaltimeさんへ
はじめまして、書き込みありがとうございます!
WordPressはとても魅力的なツールですよね。少し触っただけでMTから移行したくなってしまい、なぜかそれが怖くなってインストールしたあと触れないでいます。 何故日本ではWPよりMTのほうが利用者多いのだろう?なんて思ったりもしちゃいます。
モジュール化でのスイッチという1つの管理方法の利点が伝えられたららタナボタです。 Vicuna.jpをちょくちょく覗いてくださいね。

MiniPan 2007年3月17日 08:23

はじめまして。
私は他のブログツールを利用しているのですが、
触ってみたくてローカル調整ファイルを落として遊んでみました。
CSSの分割管理の方法でもこういった形もあるんですね。
とても勉強になりました。ありがとうございます。

輝竜司 2007年3月17日 15:51

はじめまして、御本活用させていただいております!
ブログいじりの際には手放せなくなっております。

ところで、vicunaをNucleusに移植してみました。
http://www.mercuriuslab.com/test/
まだ大枠を移植しただけで、mtに無い機能に関しては一部非対応になっていますが、少しづつそのあたりも解消していきたいと思います。

もし宜しければ、vicunaの別CMS向けラインナップにNucleusも加えていただけませんか?Nucleusではスキンに手を入れて使うことがほとんどなので、vicunaのような構造が分かりやすく綺麗で、CSSでデザインの入れ替えが出来るスキン、是非あったらいいな、と常々思っていたんです。よろしくお願いいたします。

wu 2007年3月17日 19:10

MiniPanさん、こんにちは!
今回のように他人がカスタマイズするテンプレートスキンでは、こういった分割方法もアリだなーなんて思っています。

輝竜司さん、こんにちは!
書籍を読んでくださってありがとうございます!
>vicunaをNucleusに移植してみました。
すごいっすね! Nucleusに関して何もわからないのですが、
是非nucleus.Vicunaを作らせてください!!
MTにしかない機能で実装が難しいものは必要ないとおもいます。
逆に、他のツールにあってMTにない便利なものを実装できたらとも思いますが、Nucleusについて少し調べてみますね。
準備が出来次第輝竜司へご連絡いたします!
Nucleusについてわからないことなど、テストサイトへ書き込みする形で質問してよろしでしょうか?

輝竜司 2007年3月17日 21:10

有難うございます、私でよければお役に立てれば幸いです!
(とはいえ、コアの挙動などあまり突っ込んだことは分からないのですが…)
こちらでももっときちんとした形に移植を進めておきたいと思います。
>Nucleusについてわからないことなど、テストサイトへ書き込みする形で質問してよろしでしょうか?
よろしくお願いします、移植時のメモなど、必要な情報もなるべくテスト用ブログに集めておきますね。

カイバ 2007年3月17日 22:56

了解です。
しばらく自分の勉強に精を出すとします~

orz (3回目) 2007年3月18日 23:33

ども。
ローカル版のものを落としてみましたが、最初から必要のないモジュールがONになっていました。(おそらく手違いだと思いますが。

でもたしかにXHTML,CSSの構造は綺麗ですね。CSSに関しては知識が追いつかないという点もあるので、コーディングスタイルを真似てこれからさぐってみたいとおもいます(笑


XHTMLについては構造的にテンプレートとしての汎用性が維持されているという印象がありました。というのは、仕様に基づいた形で、タグの階層化のパターンが少ないですね。


CSSかいてみようかなー。

wu 2007年3月19日 03:07

あ、先ほど他の方からもご指摘をいただいて慌てて修正しました。その間に沢山ダウンロードされてしまったようですが、気にしないとしましょう。
いや、ごめんなさい。

XHTMLの設計については、文書構造から例外的なものを減らして単純化するところから考えましたので全体的にシンプルになりました。 といってもやっぱりテンプレートとして色々な方に使ってもらったりカスタマイズとやスキンの製作が負担にならないようにd要素選びには色々なものを天秤にかけましたけど。正しいマークアップが何通りかあったらもっとも簡単な構造のものをチョイス!ってかんじです。
是非CSSを書いてみてください。そしてできあがったら配布サイトに置かせてください! ( ^ё^ )

wu 2007年3月20日 18:26

bodyのクラスでレイアウト変えるのって小粋空間さんとこと同じなんですね。あちらのほうが早くから実践されてましたが。


Vicuna.jpは 小生意気空間 にしようかな。
(2分前に思いついて誰かにいいたくて誰もいなくてここにかいた。以上です)

Trackbacks:0

TrackBack URL for this entry
http://3ping.org/mt/mt-tb.cgi/82
Listed below are links to weblogs that reference
MTで実践 - CSSのモジュール化による管理方法と遊び方 from 3ping.org

Home > Movable Type | XHTML CSS > MTで実践 - CSSのモジュール化による管理方法と遊び方

Book

実践 Web Standards Design

拙著「実践 Web Standards Design」ではXHTMLやCSSの仕様からマークアップの手法・考え方をはじめ、レイアウトや実践的なWebサイト構築のワークフロー、そしてCSSを利用したさまざまな技術的Tipsを解説しています。

Products
Works

テクノスカレッジ 専門学校

mt.Vicuna x 専門学校

2009年度に向けた学院サイトを制作しました。

Search
Feeds

Return to page top