コンテンツにスキップ
Page

Chip

小さなラベルやフィルターです。削除可能にできます。Tag という名前でもエクスポートされます。

DefaultFilledSmall outlineTag alias
astroreacttokens
import { Chip, Tag } from "@pelagornis/page/components";

上のプレビューはこのファイルを描画したものです。src/components/ にコピーして使い始めてください。

src/components/ChipExample.tsx
import { useState } from "react";
import { Chip, Stack, Tag } from "@pelagornis/page/components";
export default function ChipDemo() {
const [filters, setFilters] = useState(["astro", "react", "tokens"]);
return (
<Stack gap="sizeMedium">
<Stack direction="row" gap="sizeSmall" wrap>
<Chip>Default</Chip>
<Chip variant="filled">Filled</Chip>
<Chip variant="outline" size="sm">
Small outline
</Chip>
<Tag variant="outline">Tag alias</Tag>
</Stack>
<Stack direction="row" gap="sizeSmall" wrap>
{filters.map((filter) => (
<Chip key={filter} onRemove={() => setFilters((current) => current.filter((item) => item !== filter))}>
{filter}
</Chip>
))}
</Stack>
</Stack>
);
}

Chip は .mdx ページにそのまま書けます。frontmatter の下でインポートしてください。サーバーで描画されるので、client ディレクティブは要りません。

src/content/docs/example.mdx
---
title: Example
---
import { Chip } from "@pelagornis/page/components";
<Chip variant="filled">Astro</Chip>
<Chip variant="outline" size="sm">React</Chip>

pageMarkdoc() がこのコンポーネントの chip タグを登録します。markdoc.config.mjs にプリセットを一度追加すれば(Markdoc で使うを参照)、どの .mdoc ページでもタグを書けます。

src/content/docs/example.mdoc
{% chip variant="filled" %}Astro{% /chip %}

属性の名前と値は React の props と同じです。

各 variant prop が受け付ける値です。

Prop値
variantdefault outline filled
sizesm md lg

コンポーネントを構成するパーツと、それぞれが描画する data-refineui のロールです。

パーツロール
rootchip
removechip-remove

コンポーネントがスタイルを当てる状態です。コンポーネントの状態は data 属性として公開されます。

種類状態
疑似クラスfocus-visible

フォーカスがあるときにコンポーネントが処理するキーです。

キー動作
Enteractivate
Spaceactivate