{"id":51747785,"url":"https://github.com/hackycy/dragcraft","last_synced_at":"2026-07-18T21:40:40.964Z","repository":{"id":337765518,"uuid":"1142916468","full_name":"hackycy/dragcraft","owner":"hackycy","description":"面向小程序装修场景的可视化页面搭建引擎。采用拖拽式物料编排，通过 Schema 驱动渲染，帮助业务方快速搭建小程序页面。","archived":false,"fork":false,"pushed_at":"2026-07-18T15:05:48.000Z","size":2443,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-18T21:40:10.254Z","etag":null,"topics":["diy","low-code"],"latest_commit_sha":null,"homepage":"https://hackycy.github.io/dragcraft/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hackycy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-27T01:50:16.000Z","updated_at":"2026-07-18T15:05:57.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/hackycy/dragcraft","commit_stats":null,"previous_names":["hackycy-collection/dragcraft","hackycy/dragcraft"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hackycy/dragcraft","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackycy%2Fdragcraft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackycy%2Fdragcraft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackycy%2Fdragcraft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackycy%2Fdragcraft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hackycy","download_url":"https://codeload.github.com/hackycy/dragcraft/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hackycy%2Fdragcraft/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35632492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-18T02:00:07.223Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["diy","low-code"],"created_at":"2026-07-18T21:40:40.236Z","updated_at":"2026-07-18T21:40:40.956Z","avatar_url":"https://github.com/hackycy.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dragcraft\n\n面向小程序装修场景的可视化页面搭建引擎。采用拖拽式物料编排，通过 Schema 驱动渲染，帮助业务方快速搭建小程序页面。\n\n## 设计原则\n\n- **可主题化 UI Shell**：组件包拥有 DOM 与必要结构样式，主题通过稳定 token 和精选 component/part/state 钩子定义视觉。\n- 核心与 UI 解耦：`@dragcraft/core` 专注状态、命令与安全读取 facade；UI 侧读取优先走 `engine.state`，写入统一走 `engine.execute()`。\n- 单一对外入口：业务方仅需使用 `@dragcraft/designer`。\n- 开箱即用：`@dragcraft/themes` 提供完整 Standard 工作台主题，一行 import 获得结构与视觉样式。\n- 可扩展：左栏物料、中间画布容器、画布节点、右栏表单均支持扩展。\n\n## 快速开始\n\n```typescript\n// 1. 导入工作台主题（二选一）\nimport '@dragcraft/themes'              // 默认 Standard：紧凑、企业蓝调的产品工作台\n// import '@dragcraft/themes/material'  // Google Material 3\n\n// 2. 导入设计器\nimport { createDesigner, DcDesigner } from '@dragcraft/designer'\n```\n\n## 快速理解\n\n- 外部接入：引入 `@dragcraft/designer` + `@dragcraft/themes`。\n- 读写边界：读取 schema 与交互状态优先使用 `engine.state`，schema 写入必须执行 core command。\n- 左栏：物料分组 + 可自定义物料项渲染。\n- 中栏：支持容器壳自定义（仅容器）+ 拖拽高亮态。\n- 右栏：Schema 表单，Tab 分为全局配置与 widget 配置。\n- 高级主题：导入 `@dragcraft/themes/structure`，再基于公开主题契约实现完整视觉配方。\n\n## 文档\n\n- [`docs/`](./docs/): 面向接入者的文档站点\n- [`.github/architecture/`](./.github/architecture/): 面向维护者的架构文档\n\n## Packages\n\n| Package | Architecture |\n| ------- | ------------ |\n| `@dragcraft/core` | [Schema 与 Core Engine](./.github/architecture/02-schema-and-core.md) |\n| `@dragcraft/designer` | [Designer 与 Renderer](./.github/architecture/03-designer-and-renderer.md) |\n| `@dragcraft/renderer` | [Designer 与 Renderer](./.github/architecture/03-designer-and-renderer.md) |\n| `@dragcraft/form-generator` | [Form 与配置系统](./.github/architecture/04-form-and-configuration.md) |\n| `@dragcraft/fields-ant-design-vue` | [物料、字段与工具包](./.github/architecture/05-widgets-fields-and-utils.md) |\n| `@dragcraft/widgets` | [物料、字段与工具包](./.github/architecture/05-widgets-fields-and-utils.md) |\n| `@dragcraft/themes` | [主题与设备容器](./.github/architecture/06-themes-and-device-frames.md) |\n| `@dragcraft/device-frames` | [主题与设备容器](./.github/architecture/06-themes-and-device-frames.md) |\n| `@dragcraft/icons` | [包职责索引](./.github/architecture/07-package-reference.md) |\n| `@dragcraft/utils` | [包职责索引](./.github/architecture/07-package-reference.md) |\n\n## License\n\n[MIT](./LICENSE) License © [hackycy](https://github.com/hackycy)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackycy%2Fdragcraft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhackycy%2Fdragcraft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhackycy%2Fdragcraft/lists"}