@filekit-studio/diagram

中文文档
1.0.10发布于 2026/11/08MITTypeScriptESM + CJS近 30 天下载 2242

用于 @ filekit- studio/sketch 的解析图-as-Code & JSON 图表编译器

中文使用文档
文档目录8 节
  1. 安装
  2. 需要的样式表导入
  3. 快速启动
  4. 1. 声明 <Diagram /> 构成部分
  5. 2. 方案汇编 diagramToSketch (中文(简体) )
  6. 3. 渲染 Excalidraw JSON 文件
  7. <Diagram /> 推荐参考
  8. 许可证

@ filekit- studio/ diagram (英语)

声明式图表- as- Code & JSON 图形编译器 @filekit-studio/sketch。 。 。 .

npm version License: MIT

文档 二. 支助 快速启动指南 二. 支助 现场播放

@filekit-studio/diagram 让您直接从React 和 Next.js 中的 JSON 或 Diagram-as-Code 中生成和渲染出美丽的手绘白板、建筑图和流程图.

  • 需要零坐标:提供节点,边缘,和集群——决定式DAG布局引擎位置并自动对齐一切.
  • 纹理美学: 电源 @filekit-studio/sketch,使有机的手拉式形状,粗糙的填充,以及磁接头箭头.
  • 寻找出行障碍和走廊:正弦肘行会自动在外形上绕行而无需通过中间服务.
  • 潜入隧道:被曲折的行会自动变成形状下有细微破碎的X射线路径.
  • 方向流动: 支持从左到右 ()LR),从上到下(TB页:1RL),和从下到下BT) (中文(简体) ).
  • 解析原生: 从 .excalidraw schema文件和元素阵列.
  • 100% 客户端:零服务器呼叫,零跟踪,工作全部下线.

安装

bun add @filekit-studio/diagram @filekit-studio/sketch
# or
npm install @filekit-studio/diagram @filekit-studio/sketch
# or
pnpm add @filekit-studio/diagram @filekit-studio/sketch

需要的样式表导入

导入根版式中的自定义样式表( E)app/layout.tsx 或者说 pages/_app.tsx:

import '@filekit-studio/diagram/styles.css'
// or: import '@filekit-studio/sketch/styles.css'

零 CSS 漏报: 所有样式都严格限定在下面 .fk-sketch-root。导入此样式表永远不会与您的应用程序的全球 CSS 、 字体或 Tailwind 配置相冲突 .


快速启动

1. 声明 <Diagram /> 构成部分

'use client'

import React from 'react'
import { Diagram, type DiagramData } from '@filekit-studio/diagram'
import '@filekit-studio/diagram/styles.css'

const architecture: DiagramData = {
  title: 'Cloud Payment Pipeline',
  direction: 'LR',
  nodes: [
    {
      id: 'client',
      label: 'Client Browser\n(React / Next.js)',
      shape: 'rectangle',
      color: 'indigo',
      badge: 'FRONTEND',
    },
    {
      id: 'gateway',
      label: 'API Gateway',
      description: 'Kong / Cloudflare',
      shape: 'rounded',
      color: 'blue',
    },
    {
      id: 'auth',
      label: 'Auth Service',
      description: 'JWT / OAuth2',
      shape: 'diamond',
      color: 'amber',
    },
    {
      id: 'db',
      label: 'Primary Database\n(PostgreSQL)',
      shape: 'cylinder',
      color: 'emerald',
      badge: 'STORAGE',
    },
  ],
  edges: [
    { from: 'client', to: 'gateway', label: 'HTTPS POST' },
    { from: 'gateway', to: 'auth', label: 'Verify Token' },
    { from: 'auth', to: 'db', label: 'SQL Query' },
  ],
  groups: [
    {
      id: 'backend',
      label: 'Internal VPC Cluster',
      nodeIds: ['gateway', 'auth', 'db'],
      color: 'indigo',
    },
  ],
}

export default function ArchitectureDoc() {
  return (
    <div className="w-full h-[500px] rounded-xl overflow-hidden border">
      {/* Automatically inherits dark/light mode and sets contrast */}
      <Diagram
        data={architecture}
        mode="viewer"
        autoFit={true}
        showCopyButton={true}
        copyFormat="elements" // 'elements' for 1-click Ctrl+V paste into Whiteboard, 'image' for PNG, or 'json'
        showZoomControls={true}
      />
    </div>
  )
}

2. 方案汇编diagramToSketch(中文(简体) )

如果您想要将图表 JSON 编译为 SketchDocument 以保存、变异或导出 :

import { diagramToSketch } from '@filekit-studio/diagram'

const sketchDoc = diagramToSketch(architecture, {
  direction: 'LR',
  nodeSpacing: 80,
  rankSpacing: 220,
})

console.log(sketchDoc.elements) // Array of SketchBoardElement objects

3. 渲染 Excalidraw JSON 文件

import { Diagram } from '@filekit-studio/diagram'
import excalidrawFile from './diagram.excalidraw.json'

export function ExcalidrawViewer() {
  return (
    <div className="w-full h-[600px]">
      <Diagram data={excalidrawFile} mode="viewer" autoFit={true} />
    </div>
  )
}

<Diagram /> 推荐参考

Prop类型默认说明
dataDiagramData | string所需经费图表规格对象或JSON字符串.
mode'viewer' | 'editor''viewer'显示模式:清洁医生取景器或全白板工作室.
direction'TB' | 'BT' | 'LR' | 'RL''LR'DAG自动放出引擎的流程方向.
theme'light' | 'dark' | 'system''system'颜色主题模式 。 自动检测活动网站暗模式 .
canvasBackgroundstring'#f0f4f8'十六进制背景颜色覆盖( H)#121214 )),阴暗模式下.
gridStyle'grid' | 'dots' | 'cross' | 'none''dots'Canvas网格图案.
autoFitbooleantrue装入容器的缩放和中心元素 .
interactivebooleantrue允许点击并拖入相轮缩放.
showCopyButtonbooleantrue显示 1 单击剪贴板导出按钮 .
copyFormat'elements' | 'image' | 'json''elements''elements' ctrl+V 粘贴为 Sketch 白板, 'image' 用于巴布亚新几内亚,或 'json'。 。 。 .
showZoomControlsbooleantrue显示最小浮动缩放百分比和 +编号 :-编号 :Fit 控制系统.
layoutOptionsDiagramLayoutOptions{}间距微调nodeSpacing, (中文(简体) ), rankSpacing、边际和垫地.
uiConfigSketchUIConfig{}用于所有54个UI控制和菜单(编辑模式)的 Granular toggle旗.
controllerRefRef<SketchController>undefined参考必要的控制器方法zoomToFit, (中文(简体) ), zoomIn, (中文(简体) ), zoomOut(见a/c.5/49/70,附件).

许可证

麻省理工学院 文件 Kit 工作室

版本与发布记录

@filekit-studio/diagram 共发布 12 个版本,首次发布于 2026/10/25;过去 12 个月发布了 12 个版本。

版本发布日期距今
1.0.10latest2026/11/086 天前
1.0.92026/11/077 天前
1.0.82026/11/068 天前
1.0.72026/11/0410 天前
1.0.62026/11/0212 天前
1.0.52026/10/2817 天前

关于 @filekit-studio/diagram 的常见问题

@filekit-studio/diagram 是什么?

用于 @ filekit- studio/sketch 的解析图-as-Code & JSON 图表编译器

如何安装 @filekit-studio/diagram?

在项目目录运行 npm install @filekit-studio/diagram,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(>=18.0.0)、react-dom(>=18.0.0)、@filekit-studio/sketch(>=1.1.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@filekit-studio/diagram 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@filekit-studio/diagram 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@filekit-studio/diagram 可以商用吗?

@filekit-studio/diagram 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@filekit-studio/diagram 的下载量有多少?

根据 npm 官方下载统计,@filekit-studio/diagram 在 2026/10/15 – 2026/11/13 这 30 天内被下载 2,242 次,日均约 75 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@filekit-studio/diagram 还在维护吗?

最新版本 1.0.10 发布于 2026/11/08(6 天前);至今共发布 12 个版本,其中过去 12 个月发布了 12 个;首次发布于 2026/10/25。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。