コンテンツにスキップ
Page

Stack

間隔に spacing トークンを使う一方向の 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