webc.com 0.1.23 → 0.1.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +84 -24
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,49 +1,109 @@
1
- # 人工智能驱动的界面开发流程笔记
1
+ # WebC
2
2
 
3
- ## web 组件,支持无样式
3
+ 面向 AI 辅助开发设计的 Web Components 组件库与开发规范。
4
4
 
5
- 纯 web 组件,可适配全部前端框架。
5
+ [组件库在线预览](https://webc-zh.github.io)
6
6
 
7
- 组件样式和组件逻辑完全拆分。
7
+ ## 特性
8
8
 
9
- 可只引用组件的逻辑,然后自己写样式。
9
+ - **跨框架**:基于原生 Web Components 构建,兼容 React、Vue、Svelte、Solid 等前端框架。
10
+ - **无样式**:逻辑与样式解耦,支持仅引入逻辑以自定义样式。
11
+ - **免构建与构建双模式**:
12
+ - **免构建(CDN 模式)**:在浏览器中直接通过 CDN 引用 JS 与 CSS 文件。
13
+ - **构建模式(本地命令行)**:提供本地命令行工具,按需将组件源码集成至项目。
14
+ - **在线调试**:提供组件预览与“在线调试”入口,支持直接调试免构建组件。
10
15
 
11
- 同时支持无打包直接引用的使用方式,及配合 vite 等构建器打包的构建。
16
+ ## 快速上手
12
17
 
13
- 点击组件右上角的『在线调试』可以调试无打包的组件。
18
+ ### 1. CDN 引入(免构建模式)
14
19
 
15
- 如基于 vite 构建器打包项目,
20
+ 在免构建场景下,可通过 CDN 直接在浏览器中引用 JS 与 CSS 文件。
16
21
 
17
- ## 初衷
22
+ `Scroll`(虚拟滚动条)组件为例:
18
23
 
19
- 人工智能开发前端,比较大的问题是调试。
24
+ #### 使用 jsdelivr
20
25
 
21
- 虽然[谷歌反重力](https://antigravity.google) 之类的开发工具,有打开浏览器调试能力,但因为交互流程比较深、需要登录才能访问、需要后台准备数据等等,人工智能全自动浏览器调试流程经常被阻塞,无法继续。
26
+ ```html
27
+ <link href="//cdn.jsdelivr.net/npm/webc.site@0.1.23/Scroll.css" rel="stylesheet" />
28
+ <script type="module">
29
+ import "//cdn.jsdelivr.net/npm/webc.site@0.1.23/Scroll.js";
30
+ </script>
31
+ ```
22
32
 
23
- 为了加速开发,我建议的方案是:
33
+ #### 使用 npmmirror(中国大陆镜像源)
24
34
 
25
- 不在组件中直接调用后端接口读取数据,而是用异步回调的函数的方式,暴露给上层。
35
+ ```html
36
+ <link href="//registry.npmmirror.com/webc.site/0.1.23/files/Scroll.css" rel="stylesheet" />
37
+ <script type="module">
38
+ import "//registry.npmmirror.com/webc.site/0.1.23/files/Scroll.js";
39
+ </script>
40
+ ```
26
41
 
27
- 这样,就可以在 `Demo.svelte` 用假数据来展示组件的不同状态.
42
+ > [!TIP]
43
+ > **自定义 CSS 变量(重写样式与替换背景资源)**
44
+ > 如需重写默认样式,可引用前缀为 `_` 的样式文件(该文件不包含 `var.css` 声明):
45
+ >
46
+ > ```html
47
+ > <link href="//cdn.jsdelivr.net/npm/webc.site@0.1.23/_Scroll.css" rel="stylesheet" />
48
+ > ```
28
49
 
29
- 不再对后端数据状态有依赖。不需要登录,不需要在调试的之前,去后端准备数据。
50
+ ### 2. 构建模式
30
51
 
31
- 也方便调整样式之后,查看在不同状态下,组件是否呈现有问题。
52
+ 构建模式与免构建(CDN)模式特性对比:
32
53
 
33
- 具体方案,可以参考我的演示前端库 [webc-zh](https://github.com/webc-zh/webc-zh.github.io)。
54
+ - **免构建(CDN 模式)**:适用于无需开发环境配置、直接引用的轻量化场景。
55
+ - **构建模式**:支持摇树优化与按需引入以减少构建体积,并支持静态资源优化(如 SVG 资源内联与去重)。
34
56
 
35
- 组件库在线浏览 [GitHub Page](https://webc-zh.github.io)
57
+ 在构建项目中,可运行以下命令将组件源码引入本地:
36
58
 
37
- 这里我把前端组件,都拆分为独立的组件文件夹,每个文件夹包含了所有需要的资源(比如 svg 等)。
59
+ ```bash
60
+ bunx webc.add <组件名>
61
+ ```
38
62
 
39
- 如此做的好处是,可以类似[shadcn](https://ui.shadcn.com) 一样,实现按需添加。
63
+ 例如添加 `Scroll`(虚拟滚动条)组件:
40
64
 
41
- 比如, `./comDev.sh com/scroll`,就可以对滚动条进行单独的开发,调试。
65
+ ```bash
66
+ bunx webc.add Scroll
67
+ ```
42
68
 
43
- 调试默认会打开文件下的 `Demo.svelte` 作为调试入口。
69
+ #### 命令行工作原理
44
70
 
45
- 完整的开发提示词,可以参考 [.agents/skills/com/SKILL.md](.agents/skills/com/SKILL.md)
71
+ 1. **解析依赖**:查询 npm 注册表并解析 `webc.com` 包源。
72
+ 2. **源码集成**:下载包源并提取目标组件源码,编译输出至本地项目的 `lib/<组件名>` 目录。
73
+ 3. **样式处理**:将组件关联的 Stylus 代码编译为 CSS,并集成至公共样式。
46
74
 
47
- 谷歌反重力中 `/com ` 即可使用。
75
+ ### 3. SVG 资源优化 (`vite-plugin-svg-var`)
76
+
77
+ 在 Vite 构建配置中,配合使用 [vite-plugin-svg-var](https://www.npmjs.com/package/vite-plugin-svg-var) 插件优化 SVG 资源加载:
78
+
79
+ - **内容去重**:对 `public/svg` 目录下的 SVG 进行 MD5 哈希校验。内容相同的 SVG 文件仅生成单个 CSS 变量,避免资源冗余。
80
+ - **UTF-8 编码**:将 SVG 转为 UTF-8 编码的 `data:image/svg+xml` 并写入 CSS 变量,降低编码体积,提升压缩率。
81
+ - **替换与注入**:构建或开发阶段,插件在项目入口 JS(匹配 `/page/entry/**/*.js`)中注入 CSS 变量样式,并将 CSS/Stylus/Svelte 中引用的 `url("/svg/xxx.svg")` 替换为 `var(--xxxSvg)` 形式,减少网络请求。
82
+ - **热更新**:监听 `public/svg` 目录变动,在新增、修改或删除 SVG 文件时,重新计算 CSS 变量并触发热重载。
83
+
84
+ ## AI 驱动开发规范
85
+
86
+ ### 1. 状态与逻辑解耦
87
+
88
+ AI 智能体在通过自动化浏览器(如 Antigravity)进行界面调试时,常因交互链路长、鉴权限制以及对后端数据的依赖而导致调试中断。
89
+
90
+ 为提升 AI 开发效率,本项目采用以下设计规范:
91
+
92
+ - **数据流向上管理**:组件内部不直接调用后端接口,数据交互均通过异步回调函数向外暴露。
93
+ - **数据模拟**:在 `Demo.svelte` 中传入模拟数据,以展现组件在多种状态下的交互表现,免除鉴权及后端环境依赖。
94
+
95
+ ### 2. 组件架构与本地调试
96
+
97
+ 组件采用独立目录结构,每个组件文件夹内包含其全部的逻辑、样式及静态资源(如 SVG)。
98
+
99
+ - **按需添加**:支持通过命令行独立拉取组件。
100
+ - **隔离调试**:执行以下命令,针对指定组件启动开发服务,调试入口为该组件目录下的 `Demo.svelte`:
101
+ ```bash
102
+ ./comDev.sh com/<组件名>
103
+ ```
104
+
105
+ ### 3. 智能体提示词配置
106
+
107
+ 开发提示词配置参见 [.agents/skills/com/SKILL.md](.agents/skills/com/SKILL.md)。在谷歌反重力(Antigravity)环境下,使用 `/com` 命令即可调用。
48
108
 
49
109
  ![](https://i-01.eu.org/1779351273.avif)
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"webc.com","version":"0.1.23","description":"","keywords":[],"homepage":"https://webc-zh.github.io","license":"MulanPSL-2.0","author":"i18n.site@gmail.com","repository":{"type":"git","url":"git+https://github.com/webc-zh/webc-zh.github.io.git"},"bin":{"webc-i":"./cli.js"},"files":["./*"],"type":"module","exports":{"./*":"./*"},"scripts":{},"dependencies":{"@3-/read":"^0.1.4","stylus":"^0.64.0","tar":"^7.5.15","yargs":"^18.0.0"},"devDependencies":{}}
1
+ {"name":"webc.com","version":"0.1.25","description":"","keywords":[],"homepage":"https://webc-zh.github.io","license":"MulanPSL-2.0","author":"i18n.site@gmail.com","repository":{"type":"git","url":"git+https://github.com/webc-zh/webc-zh.github.io.git"},"bin":{"webc-i":"./cli.js"},"files":["./*"],"type":"module","exports":{"./*":"./*"},"scripts":{},"dependencies":{"@3-/read":"^0.1.4","ansis":"^4.3.0","stylus":"^0.64.0","tar":"^7.5.15","yargs":"^18.0.0"},"devDependencies":{}}