[PR]何かを探す前に無料占い:当たる!無料占い『スピリチュアルの館』

XUL チュートリアル - 10.3 - 新しいスキンを作る
戻る 内容 リファレンス 進む

XUL チュートリアル - 新しいスキンを作る

このセクションでは、簡単なスキンを作る方法を説明します。簡単にするため、これは「ファイル検索」ダイアログだけに適用するものにします。(このセクションでは、Mozilla の M14 ビルドを使っていると想定しています。)

簡単なスキン

下のイメージは、現在の「ファイル検索」ダイアログを示しています。これに適用できるスキンを作りましょう。通常、スキンは、すべてのアプリケーションに適用されますが、簡単にするため、「ファイル検索」ダイアログだけにフォーカスすることにします。この理由から、global.css ファイルではなく、findfile.css ファイルだけを変更することにします。

既にある findfile.css を、直接、変更して、その外見がどのようになるか確かめることもできますが、新しいスキンを別のディレクトリーに置くこともできます。Mozilla のスキンディレクトリーを見ると、現在のところ、そこには、インストール済みの追加スキンのためのディレクトリーと 'default' という名前のディレクトリーがあるだけです。新しいスキンを作るには、'skin' 内に追加のディレクトリーを加えるだけです。例えば、ここでのスキンディレクトリーは次のようなものでしょう。


chrome/findfile/skin/default
chrome/findfile/skin/forestgreen
chrome/findfile/skin/blueswayedshoes

新しいスキンのため、上のような findfile/skin サブディレクトリーを作ります。オリジナルの findfile.css をこのディレクトリーにコピーします。これを新しいスキンのための基礎として使いましょう。まず、どんな変更をしたいのか決めます。カラーの幾つかと、ボタンの境界、そしてチェックボックスのイメージを変更することにします。メニュー、ツールバー、タブパネル全般から始めましょう。

findfile.css に追加する以下のスタイルルールによって、外見は、下のイメージで示した様になります。

window > box {
  background-color: #CCCCCC;
}
  
menubar,toolbar,tabpanel {
  background-color: lightblue;
  border-top: 1px solid white;
  border-bottom: 1px solid #666666;
  border-left: 1px solid white;
  border-right: 1px solid #666666;
}

ウィンドウの内部にあるボックス (これは、実際は、ウィンドウの内容全体を囲んでいるものです) のカラーは、ライトグレーに変わりました。このグレーは、タブとウィンドウの底部で確認できます。3 つの要素 menubartoolbartabpanel は、ライトブルーで表示されています。これら 3 つの要素の境界は、微妙な 3D の外見となるよう変更されています。注意して見ると分かるでしょう。

('window > box' のための) 上の最初のルールは、ウィンドウの子供のボックスが別のカラーをもつよう指定しています。おそらく、これが最善策という訳ではないでしょう。実際には、これはスタイルシートを使って行なうべきです。そうすることにしましょう。このように XUL を変更することで、ボックスは、ウィンドウの最初の子供である必要はなくなります。

box.findfilesbox {
  background-color: #CCCCCC;
}

XUL:

<box class="findfilesbox" orient="vertical" flex="100%">
<toolbox>

次に、タブを変更しましょう。現在のところ、それは通常のボタンのような外見をしています。どのタブが現在選択されているのかはっきり分かりません。太字のテキストで示されているだけだからです。このため、それは注意を引くものになっていません。

tab {
  background-color: lightblue;
  -moz-border-radius: 8px 8px 0px 0px;
}
  
tab[selected="true"] {
  background-color: #CCCCCC;
  border-top: 1px solid #666666;
  border-bottom: 1px solid white;
  border-left: 1px solid #666666;
  border-right: 1px solid white;
}

2 つのルールによって、通常のタブの外見を変更しました。最初のルールによって、カラーをライトブルーにしています。2 番目のルールは、Mozilla の特殊なルールで、-moz-border-radius は、角の丸い境界を作ります。ここでは、上部の左右の角が 8 ピクセルの丸みになり、それ以外の角は 0 ピクセルの丸みになります。これは、丸みを付けないということです。これによって、タブはもっとタブらしくなります。

2 番目のルールセットは、selected 属性が true に設定されているタブだけに適用されます。このルールによって、選択されているタブは (その他のタブがライトブルーであるのに対して) ライトグレーで表示され、境界はくぼんで表示されるように変更されます。

ツールバーにある 2 つのボタンも、マウスをその上に動かすとボタンらしく見えますが、ボタンらしくありません。以下のスタイルルールを使うと、ツールバーのボタンは、もっとボタンらしくなります。パッディングを追加して、ボタンを少し大きくします。これがなければ、テキストは境界に対して押し広げられます。同じ理由から、マージンも追加しています。これによって、ボタンは、ツールバーの境界に対して押し広げられることはありません。

toolbar > button.borderless {
  border-top: 1px solid white;
  border-bottom: 1px solid #666666;
  border-left: 1px solid white;
  border-right: 1px solid #666666;
  margin: 2px;
  padding: 2px;
}

次に、下部にある 2 つのボタンを変更しましょう。ボタンは角を丸め、デフォルトボタンのイメージも変更することにします。

button.dialog {
  background-color: #bfbfbf;
  -moz-border-radius: 8px 8px 8px 8px;
}

button.dialog[default] {
  font-weight: bold;
  list-style-image: url("chrome://findfile/skin/defbutton.gif");
  padding-right: 0px;
}

最初のルールによって、ボタンの背景色を (ウィンドウの背景よりも少し濃い) グレーにします。境界の角度を変更し、ボタンの角が丸くなるようにしました。この値を増やすと、ボタンはもっと丸みを帯び、この値を減らすと、通常の外見に近くなります。

2 番目のルールセットは、デフォルトボタンのために使われています。ここでは、Find ボタンです。イメージの簡単な変更をしただけです。padding-right ルールは、ボタンにパッディングを適用するデフォルトの global.css の設定を上書きするのに使われています。

イメージも変更しましたが、2 番目のタブページにあるチェックボックスを描画するために使われているイメージも変更することにしましょう。

checkbox {
  list-style-image: url("chrome://findfile/skin/check-off.gif");
  padding-bottom: 2px;
}
  
checkbox[checked="true"] {
  list-style-image: url("chrome://findfile/skin/check-on.gif");
  margin-bottom: 2px;
}

イメージを変更した結果、もっとカラフルなチェックボックスになりました。マージンを適用したため、チェックボックスは互いに間隔を置いて表示されるようになりました。

最後に、スプリッターのカラーに小さな変更をして、タブパネルの周囲に多少のマージンを表示させます。

tabbox {
  margin: 4px;
}

splitter {
  background-color: #6699CC;
} 

grippy {
  min-width: 60px;
}

これらの変更を行なうと、「ファイル検索」ダイアログは、次のような外見になります。

見てお分かりのように、スタイルシートに簡単な変更を幾つか行なっただけで、「ファイル検索」ダイアログの外見は、まったく違ったものになりました。メニューや、ツールバーのグリッピー、最初のタブの入力要素の変更もできるでしょう。

グローバルスキンを作る

上で作ったスキンは単純なもので、「ファイル検索」ダイアログだけに適用されます。スキンに対して行なった変更の中には、すべてのアプリケーションに適用されるグローバルスキン (global.css) に置いてもよいものもあります。例えば、「ファイル検索」ダイアログのチェックボックスのイメージが他のウィンドウのものと違っていては少し変です。こうした変更は、実は、グローバルスタイルシートに移すべきでしょう。

CSS スタイルを findfile.css から global.css に移して、Mozilla のダイアログを幾つか見て下さい。(クッキービューアーがよい例です。) 追加したルールが採用されているのが分かるでしょう。例えば、タブの角は丸められ、選択したタブはくぼめられています。ダイアログ内のボタンの角も丸められています。ルールの中には、global.css 内に既にあるルールと衝突しているものもあります。例えば、'button.dialog' のためのルールは既に定義されています。そして、このための追加ルールを定義しました。グローバルスキンを変更する場合は、既にあるルールに変更をマージする必要があります。

スキンを付ける最善の方法は、個々のスタイルシートではなく、global.css で、外見に関連するスタイルルールを宣言することです。これには、カラー、フォント、一般的なウィジェットの外見が含まれます。(findfile.css などの) ローカルスキンファイルのどれかのカラーを変更した場合、ユーザーがグローバルスキンを変更すると、ダイアログの表示がおかしなものになってしまう場合があります。ユーザーがデフォルトスキンを使っているとは思わないで下さい。


(進む) 次のセクションでは、XUL アプリケーションを地域化対応 (localizable) する方法を説明します。

XUL チュートリアル - 10.3 - 新しいスキンを作る
戻る 内容 リファレンス 進む

[PR]在宅副業で驚きの高収入を獲得:バイクを買うためのお金を稼ごう