`height: 0`에서 `height: auto`로 트랜지션하는 건 CSS의 오래된 한계였습니다. 브라우저는 `auto`가 최종적으로 몇 px일지 렌더 전에는 모르기 때문에, 그 사이를 보간할 수 없었습니다. 그래서 아코디언 펼침 애니메이션은 `max-height`를 큰 값으로 잡는 눈속임이나 `grid-template-rows: 0fr↔1fr` 트릭, 혹은 JS로 `scrollHeight`를 재는 방법에 의존해 왔습니다.
`interpolate-size: allow-keywords`를 `:root`에 선언하면 브라우저가 `auto` 같은 키워드 값도 트랜지션 가능한 크기로 취급합니다. 그러면 `height: 0 → height: auto`에 `transition: height .3s`를 그냥 붙일 수 있습니다 — 실제 콘텐츠 높이가 얼마든 상관없이.
기본 지원은 caniuse/MDN baseline을 확인하세요. 미지원 브라우저에서는 `grid-template-rows: 0fr`↔`1fr` 트릭(아코디언 항목 참고)이나 JS로 `scrollHeight`를 측정하는 방법이 여전히 표준 대안입니다.
언제 쓰나
아코디언·펼침 패널을 grid 트릭이나 JS 측정 없이, 진짜 height 트랜지션으로 만들고 싶을 때.