すべてのボタンはボタンのプロパティにたいするデフォルト値を定義するボタンタイプ(button type)をもっています。ボタンタイプは、より汎用的なタイプから特化したタイプへと継承される階層構造で構成されており、特定のタスクにたいして特殊用途のボタンを簡単に定義できます。
name (シンボル)と呼ばれるボタンタイプを定義する。残りの引数はproperty
valueペアーのシーケンスを形成する。これはそのタイプのボタンにたいするデフォルトのプロパティ値を指定する(ボタンのタイプはキーワード引数:typeを使用してボタン作成時にそれをtypeプロパティに与えることによりセット可能)。
加えてnameがデフォルトプロパティ値を継承するボタンタイプ指定するためにキーワード引数:supertypeを使用できる。この継承はnameの定義時のみ発生することに注意。その後にsupertypeに行われた変更はsubtypeには反映されない。
define-button-typeを使用してボタンのデフォルトプロパティを定義するのは必須ではありません —
特定のタイプをもたないボタンはビルトインのボタンタイプbuttonを使用します —
が推奨しません。これを行うことにより通常はコードがより明快かつ効果的になるからです。