@bettercms-ai/ui

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

BetterCMS block components + registry/renderer for rendering page block_json in React (dashboard builder preview + headless sites).

原始使用文档
文档目录8 节
  1. Design Philosophy
  2. Block Types
  3. Usage
  4. With a custom block renderer (e.g., admin app adds selectio…
  5. Adding new blocks
  6. Adding animation variants (post-MVP)
  7. Development
  8. Note on npm publishing

@bettercms-ai/ui

Published on npm as @bettercms-ai/ui.

Shared page-builder block components for BetterCMS. Contains presentation-only React components for the 7 core block types: Heading, Text, Image, Button, Spacer, Columns, and Video.

These components are intentionally dumb (presentational only) — no selection state, no toolbar, no inline editing. That logic lives in the admin app (bettercms-admin).

Design Philosophy

This package follows the shadcn/ui studio model:

  • Each block has multiple style variants and animation presets that can be composed.
  • Components are owned by you — copy, modify, extend freely.
  • The package is a starting point, not a locked dependency.
  • Animation and style variation work ships post-MVP.

Block Types

TypeComponentPurpose
headingHeadingH1–H3 text headings
textTextRich text / HTML content
imageImageImages with alt text & caption
buttonButtonCTA buttons with variants
spacerSpacerVertical spacing blocks
columnsColumnsMulti-column layouts with nested blocks
videoVideoYouTube, Vimeo, or native video embeds

Usage

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} />;
}

With a custom block renderer (e.g., admin app adds selection state)

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>
  );
}

Adding new blocks

  1. Create src/blocks/MyBlock.tsx
  2. Export from src/blocks/index.ts
  3. Add entry to src/registry.ts
  4. Update src/index.ts

Adding animation variants (post-MVP)

Each block should eventually expose:

  • animation prop (e.g., "fade-in", "slide-up", "stagger")
  • duration prop (ms)
  • delay prop (ms)

These are pre-defined via Tailwind keyframes in tailwind.config.ts.

Development

# 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

Note on npm publishing

Published to npm. Admin and web repos use their own local shadcn/ui copies for non-page-builder UI (Dialog, Sheet, Table, etc.); this package carries the page-builder blocks and renderer.

版本与发布记录

@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 是什么?

BetterCMS block components + registry/renderer for rendering page block_json in React (dashboard builder preview + headless sites).

如何安装 @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 和提交记录判断。