Stepper
タイトルと説明を持つ番号付きのステップです。
- InstallAdd the package
- ConfigureRegister the plugin
- WriteAdd pages
インポート
「インポート」セクションimport { Stepper, StepperList, StepperItem, StepperIndicator, StepperTitle, StepperDescription, StepperSeparator,} from "@pelagornis/page/components";上のプレビューはこのファイルを描画したものです。src/components/ にコピーして使い始めてください。
import { Fragment, useState } from "react";import { Stepper, StepperDescription, StepperIndicator, StepperItem, StepperList, StepperSeparator, StepperTitle,} from "@pelagornis/page/components";
const steps = [ { title: "Install", description: "Add the package" }, { title: "Configure", description: "Register the plugin" }, { title: "Write", description: "Add pages" },];
export default function StepperDemo() { const [step, setStep] = useState(1);
return ( <Stepper value={step} onValueChange={setStep} className="w-full"> <StepperList> {steps.map((item, index) => ( <Fragment key={item.title}> {index > 0 && <StepperSeparator />} <StepperItem value={index}> <StepperIndicator>{index + 1}</StepperIndicator> <StepperTitle>{item.title}</StepperTitle> <StepperDescription>{item.description}</StepperDescription> </StepperItem> </Fragment> ))} </StepperList> </Stepper> );}MDX で使う
「MDX で使う」セクションStepper は React の状態を共有する複数のパーツで構成されます。MDX に書いた子要素はそれぞれ別のアイランドとして描画されるため、パーツ同士がつながりません。上の例のように .tsx ファイルで組み立て、そのファイルをインポートしてください。
---title: Example---
import StepperExample from "../../components/StepperExample";
<StepperExample client:load />client:load はページの読み込み時にアイランドをハイドレートします。ページの下の方にあるコンテンツには client:visible を使ってください。
Markdoc で使う
「Markdoc で使う」セクションMarkdoc のタグは Astro コンポーネントを描画しますが、このコンポーネントにはクライアントの状態が必要です。例をハイドレートする .astro ファイルで包み、そのファイルをタグとして登録してください。
---import StepperExample from "../StepperExample";---
<StepperExample 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: { "stepper-example": { render: component("./src/components/markdoc/StepperExample.astro"), selfClosing: true, }, },});{% stepper-example /%}コンポーネントを構成するパーツと、それぞれが描画する data-refineui のロールです。
| パーツ | ロール |
|---|---|
root | stepper |
content | stepper-content |
description | stepper-description |
indicator | stepper-indicator |
item | stepper-item |
list | stepper-list |
separator | stepper-separator |
separator_fill | stepper-separator-fill |
separator_rail | stepper-separator-rail |
separator_track | stepper-separator-track |
title | stepper-title |
コンポーネントがスタイルを当てる状態です。コンポーネントの状態は data 属性として公開されます。
| 種類 | 状態 |
|---|---|
| data-state | complete current upcoming |
キーボード
「キーボード」セクションフォーカスがあるときにコンポーネントが処理するキーです。
| キー | 動作 |
|---|---|
| Enter | activate |
| Space | activate |
- デザインのガイドとトークンの詳細は RefineUI · Stepper を参照してください。
- 共通のルールは MDX で使う と Markdoc で使う を参照してください。