Chip
紧凑的标签或筛选项,可设为可移除,也以 Tag 导出。
DefaultFilledSmall outlineTag alias
astroreacttokens
导入
“导入”部分import { Chip, Tag } from "@pelagornis/page/components";示例
“示例”部分上方预览渲染的就是这个文件。把它复制到 src/components/ 即可开始使用。
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> );}在 MDX 中使用
“在 MDX 中使用”部分Chip 可以直接写在 .mdx 页面中。在 frontmatter 下方导入即可。它在服务器端渲染,不需要 client 指令。
---title: Example---
import { Chip } from "@pelagornis/page/components";
<Chip variant="filled">Astro</Chip><Chip variant="outline" size="sm">React</Chip>在 Markdoc 中使用
“在 Markdoc 中使用”部分pageMarkdoc() 会为这个组件注册 chip 标签。在 markdoc.config.mjs 中添加一次预设(见在 Markdoc 中使用),就能在任意 .mdoc 页面中使用该标签。
{% chip variant="filled" %}Astro{% /chip %}属性的名称和取值与 React props 相同。
变体
“变体”部分每个 variant prop 可接受的取值。
| Prop | 取值 |
|---|---|
variant | default outline filled |
size | sm md lg |
结构
“结构”部分组件的组成部分,以及每个部分渲染的 data-refineui 角色。
| 部件 | 角色 |
|---|---|
root | chip |
remove | chip-remove |
状态
“状态”部分组件会设置样式的状态。组件状态通过 data 属性暴露。
| 类型 | 状态 |
|---|---|
| 伪类 | focus-visible |
键盘
“键盘”部分组件获得焦点时处理的按键。
| 按键 | 动作 |
|---|---|
| Enter | activate |
| Space | activate |
参考
“参考”部分- 设计指南和令牌细节见 RefineUI · Chip。
- 通用规则见在 MDX 中使用和在 Markdoc 中使用。