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