跳转到内容
Page

Stack

用间距令牌控制间隔的单向 flex 布局。

Vertical stackChildren are spaced with a spacing token.
Row with space between
import { Stack } from "@pelagornis/page/components";

上方预览渲染的就是这个文件。把它复制到 src/components/ 即可开始使用。

src/components/StackExample.tsx
import { Button, Stack, Text } from "@pelagornis/page/components";
export default function StackDemo() {
return (
<Stack gap="sizeLarge" className="w-full">
<Stack gap="sizeXXSmall">
<Text variant="subtitleMd">Vertical stack</Text>
<Text variant="bodySm">Children are spaced with a spacing token.</Text>
</Stack>
<Stack direction="row" gap="sizeSmall" align="center" justify="between">
<Text variant="bodyMd">Row with space between</Text>
<Stack direction="row" gap="sizeSmall">
<Button variant="outline">Cancel</Button>
<Button variant="primary">Save</Button>
</Stack>
</Stack>
</Stack>
);
}

Stack 可以直接写在 .mdx 页面中。在 frontmatter 下方导入即可。它在服务器端渲染,不需要 client 指令。

src/content/docs/example.mdx
---
title: Example
---
import { Button, Stack } from "@pelagornis/page/components";
<Stack direction="row" gap="sizeSmall" align="center">
<Button variant="outline">Cancel</Button>
<Button variant="primary">Save</Button>
</Stack>

pageMarkdoc() 会为这个组件注册 stack 标签。在 markdoc.config.mjs 中添加一次预设(见在 Markdoc 中使用),就能在任意 .mdoc 页面中使用该标签。

src/content/docs/example.mdoc
{% stack direction="row" gap="sizeSmall" align="center" %}
{% button variant="outline" %}Cancel{% /button %}
{% button variant="primary" %}Save{% /button %}
{% /stack %}

属性的名称和取值与 React props 相同。

组件的组成部分,以及每个部分渲染的 data-refineui 角色。

部件角色
rootstack