Progress Stepper
複数ステップの流れの進み具合を簡潔に示します。
- Account
- Profile
- Complete
インポート
「インポート」セクションimport { ProgressStepper, ProgressStepperList, ProgressStepperItem, ProgressStepperMarker, ProgressStepperLabel,} from "@pelagornis/page/components";上のプレビューはこのファイルを描画したものです。src/components/ にコピーして使い始めてください。
import { useState } from "react";import { ProgressStepper, ProgressStepperItem, ProgressStepperLabel, ProgressStepperList, ProgressStepperMarker,} from "@pelagornis/page/components";
const steps = ["Account", "Profile", "Complete"];
export default function ProgressStepperDemo() { const [step, setStep] = useState(2);
return ( <ProgressStepper value={step} onValueChange={setStep} className="w-full"> <ProgressStepperList> {steps.map((label, index) => ( <ProgressStepperItem key={label} value={index + 1}> <ProgressStepperMarker /> <ProgressStepperLabel>{label}</ProgressStepperLabel> </ProgressStepperItem> ))} </ProgressStepperList> </ProgressStepper> );}MDX で使う
「MDX で使う」セクションProgress Stepper は React の状態を共有する複数のパーツで構成されます。MDX に書いた子要素はそれぞれ別のアイランドとして描画されるため、パーツ同士がつながりません。上の例のように .tsx ファイルで組み立て、そのファイルをインポートしてください。
---title: Example---
import ProgressStepperExample from "../../components/ProgressStepperExample";
<ProgressStepperExample client:load />client:load はページの読み込み時にアイランドをハイドレートします。ページの下の方にあるコンテンツには client:visible を使ってください。
Markdoc で使う
「Markdoc で使う」セクションMarkdoc のタグは Astro コンポーネントを描画しますが、このコンポーネントにはクライアントの状態が必要です。例をハイドレートする .astro ファイルで包み、そのファイルをタグとして登録してください。
---import ProgressStepperExample from "../ProgressStepperExample";---
<ProgressStepperExample client:load />import { component, defineMarkdocConfig } from "@astrojs/markdoc/config";import starlightMarkdoc from "@astrojs/starlight-markdoc";import pageMarkdoc from "@pelagornis/page/markdoc";
export default defineMarkdocConfig({ extends: [starlightMarkdoc(), pageMarkdoc()], tags: { "progress-stepper-example": { render: component("./src/components/markdoc/ProgressStepperExample.astro"), selfClosing: true, }, },});{% progress-stepper-example /%}コンポーネントを構成するパーツと、それぞれが描画する data-refineui のロールです。
| パーツ | ロール |
|---|---|
root | progress-stepper |
fill | progress-stepper-fill |
item | progress-stepper-item |
label | progress-stepper-label |
list | progress-stepper-list |
list_wrap | progress-stepper-list-wrap |
marker | progress-stepper-marker |
track | progress-stepper-track |
コンポーネントがスタイルを当てる状態です。コンポーネントの状態は data 属性として公開されます。
| 種類 | 状態 |
|---|---|
| data-state | complete current upcoming |
- デザインのガイドとトークンの詳細は RefineUI · Progress Stepper を参照してください。
- 共通のルールは MDX で使う と Markdoc で使う を参照してください。