@bettercms-ai/ui

中文文档
0.27.0发布于 2026/11/02TypeScriptES Module近 30 天下载 3179

在React中渲染页面块 json(dashboard builder preview + 无头站点)的更好CMS块组件 + register/ refer.

中文使用文档
文档目录8 节
  1. 设计哲学
  2. 块类型
  3. 使用量
  4. 带有自定义块渲染器( 如 admin app 添加选择状态)
  5. 添加新块
  6. 添加动画变体(后MVP)
  7. 发展
  8. 关于 npm 出版的说明

翻译:

Npm上公布为 @bettercms-ai/ui。 。 。 .

共享页面构建器块组件用于BetterCMS. 包含 7 个核心块类型的演示文稿仅反应组件: 标题, (中文(简体) ), 文本, (中文(简体) ), 图像, (中文(简体) ), 按钮, (中文(简体) ), 空间器, (中文(简体) ), 列数,以及 视频。 。 。 .

这些组成部分是故意的 哑巴 (只介绍)——没有选择状态,没有工具栏,没有内含编辑. 这种逻辑存在于管理应用程序中(bettercms-admin) (中文(简体) ).

设计哲学

此套件跟随 shadcn/ui工作室 模式 :

  • 每个街区都有 多样式变体 财务报告和审定财务报表 动画预设 它可以组成.
  • 组件归你所有——复制,修改,自由延伸.
  • 包是一个 起点,而不是锁定的依赖.
  • 动画和风格变化工作船 后MVP。 。 。 .

块类型

类型构成部分目的
headingHeadingH1-H3 文本标题
textText丰富文本 / HTML 内容
imageImage带有其它文本标题的图像( C)
buttonButton带有变体的 CTA 按钮
spacerSpacer垂直间距块
columnsColumns有嵌入区块的多栏布局
videoVideoYouTube、Vimeo或本地视频嵌入

使用量

import { BlocksRenderer } from "@bettercms-ai/ui";
import type { ContentBlock } from "@bettercms-ai/types";

// Use with @bettercms-ai/types block JSON
const blocks: ContentBlock[] = [
  { type: "heading", id: "1", props: { text: "Hello", level: 1 } },
  { type: "text",   id: "2", props: { html: "<p>Welcome!</p>" } },
];

export function Page() {
  return <BlocksRenderer blocks={blocks} />;
}

带有自定义块渲染器( 如 admin app 添加选择状态)

import { BlockRenderer } from "@bettercms-ai/ui";

function AdminCanvas({ block, isSelected, onSelect }) {
  return (
    <div
      onClick={() => onSelect(block.id)}
      className={isSelected ? "ring-2 ring-primary" : ""}
    >
      <BlockRenderer block={block} />
    </div>
  );
}

添加新块

  1. 创建 src/blocks/MyBlock.tsx
  2. 导出自 src/blocks/index.ts
  3. 添加条目到 src/registry.ts
  4. 更新 src/index.ts

添加动画变体(后MVP)

每个区块最终应暴露:

  • animation 道具(例如, "fade-in", (中文(简体) ), "slide-up", (中文(简体) ), "stagger"(中文(简体) )
  • duration 螺旋桨(毫秒)
  • delay 螺旋桨(毫秒)

这些是通过 Tailwind 键框在 tailwind.config.ts。 。 。 .

发展

# Install dependencies (run from backend root)
bun install

# Type-check
bun run --filter @bettercms-ai/ui typecheck

# Add a new shadcn/ui component
cd packages/ui && npx shadcn@latest add -p ../../ button

关于 npm 出版的说明

发布至npm. 管理器和网页重置器使用自己的本地shadcn/ui拷贝用于非页面构建器UI(Dialog, Sheet, Table等);这个包搭载了页面构建器块和渲染器.

版本与发布记录

@bettercms-ai/ui 共发布 33 个版本,首次发布于 2026/06/30;过去 12 个月发布了 33 个版本。

版本发布日期距今
0.27.0latest2026/11/026 天前
0.26.02026/10/2514 天前
0.25.02026/10/2414 天前
0.24.02026/10/2415 天前
0.21.02026/10/2415 天前
0.23.12026/10/2415 天前

关于 @bettercms-ai/ui 的常见问题

@bettercms-ai/ui 是什么?

在React中渲染页面块 json(dashboard builder preview + 无头站点)的更好CMS块组件 + register/ refer.

如何安装 @bettercms-ai/ui?

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

@bettercms-ai/ui 支持 TypeScript 吗?

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

@bettercms-ai/ui 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@bettercms-ai/ui 可以商用吗?

@bettercms-ai/ui 使用 未声明 许可。package.json 没有声明许可证。没有许可证的代码默认保留全部权利,商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括,不构成法律意见,请以许可原文为准。

@bettercms-ai/ui 的下载量有多少?

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

@bettercms-ai/ui 还在维护吗?

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