An open API service indexing awesome lists of open source software.

https://github.com/hackycy/dragcraft

面向小程序装修场景的可视化页面搭建引擎。采用拖拽式物料编排,通过 Schema 驱动渲染,帮助业务方快速搭建小程序页面。
https://github.com/hackycy/dragcraft

diy low-code

Last synced: 22 days ago
JSON representation

面向小程序装修场景的可视化页面搭建引擎。采用拖拽式物料编排,通过 Schema 驱动渲染,帮助业务方快速搭建小程序页面。

Awesome Lists containing this project

README

          

# dragcraft

面向小程序装修场景的可视化页面搭建引擎。采用拖拽式物料编排,通过 Schema 驱动渲染,帮助业务方快速搭建小程序页面。

## 设计原则

- **可主题化 UI Shell**:组件包拥有 DOM 与必要结构样式,主题通过稳定 token 和精选 component/part/state 钩子定义视觉。
- 核心与 UI 解耦:`@dragcraft/core` 专注状态、命令与安全读取 facade;UI 侧读取优先走 `engine.state`,写入统一走 `engine.execute()`。
- 单一对外入口:业务方仅需使用 `@dragcraft/designer`。
- 开箱即用:`@dragcraft/themes` 提供完整 Standard 工作台主题,一行 import 获得结构与视觉样式。
- 可扩展:左栏物料、中间画布容器、画布节点、右栏表单均支持扩展。

## 快速开始

```typescript
// 1. 导入工作台主题(二选一)
import '@dragcraft/themes' // 默认 Standard:紧凑、企业蓝调的产品工作台
// import '@dragcraft/themes/material' // Google Material 3

// 2. 导入设计器
import { createDesigner, DcDesigner } from '@dragcraft/designer'
```

## 快速理解

- 外部接入:引入 `@dragcraft/designer` + `@dragcraft/themes`。
- 读写边界:读取 schema 与交互状态优先使用 `engine.state`,schema 写入必须执行 core command。
- 左栏:物料分组 + 可自定义物料项渲染。
- 中栏:支持容器壳自定义(仅容器)+ 拖拽高亮态。
- 右栏:Schema 表单,Tab 分为全局配置与 widget 配置。
- 高级主题:导入 `@dragcraft/themes/structure`,再基于公开主题契约实现完整视觉配方。

## 文档

- [`docs/`](./docs/): 面向接入者的文档站点
- [`.github/architecture/`](./.github/architecture/): 面向维护者的架构文档

## Packages

| Package | Architecture |
| ------- | ------------ |
| `@dragcraft/core` | [Schema 与 Core Engine](./.github/architecture/02-schema-and-core.md) |
| `@dragcraft/designer` | [Designer 与 Renderer](./.github/architecture/03-designer-and-renderer.md) |
| `@dragcraft/renderer` | [Designer 与 Renderer](./.github/architecture/03-designer-and-renderer.md) |
| `@dragcraft/form-generator` | [Form 与配置系统](./.github/architecture/04-form-and-configuration.md) |
| `@dragcraft/fields-ant-design-vue` | [物料、字段与工具包](./.github/architecture/05-widgets-fields-and-utils.md) |
| `@dragcraft/widgets` | [物料、字段与工具包](./.github/architecture/05-widgets-fields-and-utils.md) |
| `@dragcraft/themes` | [主题与设备容器](./.github/architecture/06-themes-and-device-frames.md) |
| `@dragcraft/device-frames` | [主题与设备容器](./.github/architecture/06-themes-and-device-frames.md) |
| `@dragcraft/icons` | [包职责索引](./.github/architecture/07-package-reference.md) |
| `@dragcraft/utils` | [包职责索引](./.github/architecture/07-package-reference.md) |

## License

[MIT](./LICENSE) License © [hackycy](https://github.com/hackycy)