Aspect ratio
A layout component that ensures content maintains a consistent aspect ratio, providing a reliable way to preserve proportional dimensions across different layouts. It is particularly useful for scenarios like embedding media or designing responsive elements, where maintaining a specific shape is essential for visual harmony and adaptability.
Props
aspect-ratio: number
The aspect ratio, can be a formula such as "16 / 9".
Slots
default
The contents of the element.
Examples
Basic
A basic aspect ratio.
16:9
<template>
<FluxAspectRatio :aspect-ratio="16 / 9">
<FluxPane style="align-items: center; display: flex; justify-content: center;">
16:9
</FluxPane>
</FluxAspectRatio>
</template>
<script
setup
lang="ts">
import { FluxAspectRatio, FluxPane } from '@flux-ui/components';
</script>Video placeholder
A 16:9 placeholder commonly used for video thumbnails.
<template>
<Preview>
<FluxAspectRatio
:aspect-ratio="16 / 9"
style="width: 100%; max-width: 480px; background: var(--surface-active); border-radius: var(--radius); overflow: hidden">
<FluxStack
is-centered
style="height: 100%">
<FluxIcon
name="play"
:size="48"/>
</FluxStack>
</FluxAspectRatio>
</Preview>
</template>
<script
setup
lang="ts">
import { FluxAspectRatio, FluxIcon, FluxStack } from '@flux-ui/components';
</script>