Limited support 注意が必要。一部のブラウザのみ対応。プロダクション利用は慎重に判断すること。

概要

通常の calc() では使用できない height や width のキーワード値(auto、fit-content、min-content、max-content)を計算式に含められます。例えば calc-size(fit-content, size / 2) のようにキーワードサイズの半分を指定できます。height: auto へのアニメーションなど、従来CSSだけでは不可能だった表現を実現する革新的な関数です。

対応ブラウザ

デスクトップ

Chrome 129+
Edge 129+
Safari 未対応
Firefox 未対応

モバイル

Chrome Android 129+
Safari iOS 未対応
Firefox Android 未対応

基本構文

CSS
.panel {
  height: calc-size(auto, size);
  transition: height 0.3s;
}
.panel.collapsed {
  height: 0;
}

実務での使いどころ

  • height: auto へのスムーズなアニメーション

    calc-size(auto) を使って、従来不可能だった自動高さへのCSSトランジションを実現し、アコーディオンUIなどを簡潔に実装できます。

注意点

  • 現在Chrome/Edgeのみの対応で、SafariとFirefoxでは未サポートです。プロダクション使用には十分なフォールバックが必要です。

アクセシビリティ

  • アコーディオンなどの開閉アニメーションに使用する場合、prefers-reduced-motion を考慮し、モーション設定に応じてアニメーションを無効化してください。