组件
层叠布局 Stack
Stack:按名称选择间距。命名档位映射到间距阶梯,相邻元素用一个设计令牌分隔,不使用临时 margin。
#基础用法
First
Second
Third
<script setup lang="ts">
import { Stack } from "@bysages/vue";
</script>
<template>
<!-- Siblings held apart by one named step — the default `md`. -->
<Stack class="w-full">
<div class="border border-border bg-surface-3 px-3 py-2 text-sm">First</div>
<div class="border border-border bg-surface-3 px-3 py-2 text-sm">Second</div>
<div class="border border-border bg-surface-3 px-3 py-2 text-sm">Third</div>
</Stack>
</template>
none
…
xs
…
sm
…
md
…
lg
…
xl
…
<script setup lang="ts">
import { Stack } from "@bysages/vue";
const steps = ["none", "xs", "sm", "md", "lg", "xl"] as const;
</script>
<template>
<div class="grid w-full gap-4">
<Stack v-for="step in steps" :key="step" :gap="step">
<div class="border border-border bg-surface-3 px-3 py-2 text-sm">{{ step }}</div>
<div class="border border-border bg-surface-3 px-3 py-2 text-sm">…</div>
</Stack>
</div>
</template>
First
Second
Third
<script setup lang="ts">
import { Stack } from "@bysages/vue";
</script>
<template>
<Stack direction="row" class="w-full">
<div class="border border-border bg-surface-3 px-3 py-2 text-sm">First</div>
<div class="border border-border bg-surface-3 px-3 py-2 text-sm">Second</div>
<div class="border border-border bg-surface-3 px-3 py-2 text-sm">Third</div>
</Stack>
</template>
Item 1
Item 2
Item 3
Item 4
Item 5
Item 6
Item 7
Item 8
<script setup lang="ts">
import { Stack } from "@bysages/vue";
</script>
<template>
<!-- A row that has run out of room lays its overflow down a line. -->
<div class="w-96">
<Stack direction="row" wrap>
<div v-for="n in 8" :key="n" class="border border-border bg-surface-3 px-3 py-2 text-sm">
Item {{ n }}
</div>
</Stack>
</div>
</template>
#属性
#Stack
Stack:按名称选择间距。命名档位映射到间距阶梯,相邻元素用一个设计令牌分隔,不使用临时 margin。
| 属性 | 类型 | 默认值 | 描述 |
|---|---|---|---|
direction | String | "column" | — |
gap | String | "md" | — |
wrap | Boolean | false | — |
align | String | undefined | — |
justify | String | undefined | — |