Aspect Ratio
A media frame that preserves its width-to-height ratio.
- Navegadores
- Chrome 123+Firefox 121+Safari 17.5+
- Nivel
- 0
- Tamaño comprimido
- 268 B
- Presupuesto de diseño forzado
- 0 ms
- Presupuesto de axe
- 0
- Compatible con SSR
- Sí
- Contrato publicado
- Entorno de pruebas
Zona de pruebas
16:9 · Cover
Ejemplos
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
| Prop | Tipo | Predeterminado | Descripción |
|---|---|---|---|
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. |
Teclado
| Tecla | Acción |
|---|
Accesibilidad
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.
Puntos de estilo
data-uiify-aspect-ratiodata-part="content"--uiify-aspect-ratio