跳到正文
misoto22 design

图示

DiagramInspector 检查面板

读者刚刚选中的东西,写在图旁边。

来自@misoto22/design/diagrams

什么时候用它

一个节点大概能装八个词,再多它就不是节点了。超出这八个的——端口、归属团队、它参与的六条关系——都归这里。

示例

default

Service

API

FastAPI, behind the load balancer. Owns every read the cache misses.

Port
8000
Region
ap-southeast-2
Id
api
Relationships
  • fromCloudFrontHTTPS
  • toRedisread-through
  • toPostgresSQL

说明

读者刚刚选中的东西,写出来。

一张图里每个节点大概能装八个词,再多它就不是图、而是一份画了线的文档。超出这八个的一切——端口、归属团队、它是从哪个文件读出来的、它参与的那六条关系——都属于图旁边而不是图里面,而这里就是那个地方。

不是对话框,而且这是刻意的。检查面板是一个随选择变化的区域,不是一个模态。给它 role="dialog" 会为一个读者从未打开过的东西劫持焦点、索要关闭——他们点的是一个节点,面板是跟过来的。所以它是一个带 aria-live="polite" 的具名区域,这正是让读屏软件播报新选择、同时不把光标从读者手上的事情里抢走的做法。

关系带了 onSelect 时是真按钮,这就是这张图变得可用键盘导航的方式:读者可以一个邻居一个邻居地走完整张图,全程不碰那张画。

属性

DiagramInspector props
属性类型默认值说明
title必填string
actionsReactNode事实列表下方的按钮——复制链接、打开源码。
classNamestring
descriptionReactNode
eyebrowstring标题上方的引题——这个面板正在展示的是**哪一类**东西。
factsInspectorFact[][]
floatingboolean渲染成浮在界面之上的面板,而不是排在文档流里。
linksInspectorLink[][]
onClose() => void

无障碍

  • 是一个带 aria-live="polite" 的具名区域,不是对话框:读者点的是节点,他们没有“打开”任何东西,所以焦点从不被劫持或索要。
  • 关系带了 onSelect 时是真按钮,这样这张图就能用键盘一个邻居一个邻居地走下去。