Aspect Ratio
A media frame that preserves its width-to-height ratio.
- المتصفحات
- Chrome 123+Firefox 121+Safari 17.5+
- الفئة
- 0
- الحجم المضغوط
- 268 B
- ميزانية التخطيط القسري
- 0 ms
- ميزانية axe
- 0
- متوافق مع SSR
- نعم
- العقد المنشور
- بيئة الاختبار
المختبر
16:9 · Cover
أمثلة
Square
The default ratio is 1. A square frame crops a landscape image at the sides.
import { AspectRatio } from "@gunkin/uiify";
<AspectRatio>
<img src="/mountains.svg" width="640" height="400" alt="An amber sun above blue mountain ridges" />
</AspectRatio>Portrait
Set ratio to 4 / 5 for a portrait frame. The image keeps its proportions while filling the frame.
import { AspectRatio } from "@gunkin/uiify";
<AspectRatio ratio={4 / 5}>
<img src="/mountains.svg" width="640" height="400" alt="An amber sun above blue mountain ridges" />
</AspectRatio>Contain
Apply .uncropped { object-fit: contain; } to keep the whole image visible. The optional skin supplies the frame background.
import { AspectRatio } from "@gunkin/uiify";
<AspectRatio ratio={16 / 9}>
<img className="uncropped" src="/mountains.svg" width="640" height="400" alt="An amber sun above blue mountain ridges" />
</AspectRatio>API
AspectRatio
| الخاصية | النوع | افتراضي | الوصف |
|---|---|---|---|
ratio | number | 1 | Positive finite width divided by height. Invalid numbers fall back to 1. When omitted, the CSS custom property can set the ratio. |
children | ReactNode | — | Content placed inside the frame. Intrinsic content cannot enlarge the frame. |
className | string | — | Class applied to the frame root. |
style | CSSProperties | — | Native root styles, including --uiify-aspect-ratio when ratio is omitted. |
ref | Ref<HTMLElement> | — | Ref forwarded to the rendered root element. |
as | ElementType | "div" | Native element or component used for the root. |
render | ReactElement | ((props, state) => ReactElement) | — | Replace the rendered root while preserving its props, ref and identity marker. |
لوحة المفاتيح
| المفتاح | الإجراء |
|---|
إمكانية الوصول
Static layout adds no role, focus target or keyboard behavior. Give meaningful images alt text; keep captions outside the frame. Required behavior CSS preserves the ratio even when children have intrinsic dimensions. Optional styles fill images with object-fit: cover; use contain to show the entire image.
نقاط التنسيق
data-uiify-aspect-ratiodata-part="content"--uiify-aspect-ratio