UNPKG

react-aspect-ratio

Version:

React Component to maintain a consistent width-to-height ratio (aspect ratio), preventing cumulative layout shift.

35 lines (29 loc) 586 B
[style*="--aspect-ratio"] > img { height: auto; } [style*="--aspect-ratio"] { position: relative; } [style*="--aspect-ratio"] > :first-child { position: absolute; top: 0; left: 0; height: 100%; width: 100%; } [style*="--aspect-ratio"]::before { content: ""; display: block; width: 100%; } @supports not (aspect-ratio: 1/1) { [style*="--aspect-ratio"]::before { height: 0; padding-bottom: calc(100% / (var(--aspect-ratio))); } } @supports (aspect-ratio: 1/1) { [style*="--aspect-ratio"]::before { aspect-ratio: calc(var(--aspect-ratio)); } }