@property

編集

@propertyは、CSSカスタムプロパティ(変数)に型、初期値、継承の動作などのメタデータを定義するために使用されるCSSのルールです。このルールを用いることで、カスタムプロパティの挙動をより詳細に制御でき、ブラウザが型チェックや初期値の適用を行えるようになります。

構文

編集

基本的な@propertyの構文は以下の通りです:

@property --<カスタムプロパティ名> {
  syntax: '<値の型>';
  inherits: <true || false>;
  initial-value: <初期値>;
}
  • --<カスタムプロパティ名>: 定義するカスタムプロパティの名前。必ず--で始める必要があります。
  • syntax: プロパティで許容される値の型を指定するための[CSS値構文](https://www.w3.org/TR/css-values-4/)。
  • inherits: このプロパティが継承可能かどうかを指定します(trueまたはfalse)。
  • initial-value: このプロパティのデフォルト値。

使用例

編集

基本的なカスタムプロパティの定義

編集
@property --primary-color {
  syntax: '<color>';
  inherits: false;
  initial-value: #ff0000;
}

この例では、--primary-colorというカスタムプロパティを定義し、以下を指定しています:

  • 許容値: 色(<color>)。
  • 継承: 継承しない(false)。
  • 初期値: 赤(#ff0000)。

このカスタムプロパティは、以下のように使用できます:

div {
  background-color: var(--primary-color);
}

数値型のカスタムプロパティ

編集
@property --spacing {
  syntax: '<length>';
  inherits: true;
  initial-value: 10px;
}

この例では、--spacingというプロパティを定義し、以下を指定しています:

  • 許容値: 長さ(<length>)。
  • 継承: 継承する(true)。
  • 初期値: 10px。

これにより、次のように使用できます:

.box {
  padding: var(--spacing);
}

注意事項

編集
  • @propertyを使用する際、指定するプロパティ名は必ず--で始まる必要があります。
  • ブラウザサポート: @propertyは一部の最新ブラウザ(例: Chromium系ブラウザ)でのみサポートされています。他のブラウザでは無視されるため、フォールバックのスタイルを用意することが推奨されます。
  • 定義されていないカスタムプロパティを使用すると、デフォルトではinitial-valueが適用されます。
ブラウザ対応状況
ブラウザ サポート
Google Chrome サポートあり (85以降)
Microsoft Edge サポートあり
Firefox 未サポート
Safari 未サポート

最新のブラウザ対応状況はCan I Useで確認してください。

関連情報

編集

@propertyを活用することで、カスタムプロパティの動作をより精密に制御し、信頼性の高いスタイリングが可能になります。特に型や初期値を厳密に管理したい場合に有用です。