3.1 KiB
3.1 KiB
Contributing to animal-island-ui
感谢你对 animal-island-ui 的关注!欢迎提交 Issue 和 Pull Request。
提交 Issue
- 使用 GitHub Issues 提交 Bug 报告或功能建议
- Bug 报告请附上:复现步骤、预期行为、实际行为、浏览器/系统环境
- 功能建议请说明使用场景和期望的 API 设计
提交 Pull Request
- Fork 本仓库并基于
main创建分支 (git checkout -b feature/my-feature) - 编写代码并确保
npm run build通过 - 提交修改,遵循 Conventional Commits 格式:
feat: add xxx— 新功能fix: resolve xxx— Bug 修复docs: update xxx— 文档更新refactor: simplify xxx— 重构
- 推送到你的分支 (
git push origin feature/my-feature) - 创建 Pull Request,描述改动内容和动机
本地开发
# 克隆仓库
git clone https://github.com/guokaigdg/animal-island-ui.git
cd animal-island-ui
# 安装依赖
npm install
# 启动 Demo 开发服务器
npm run dev
# 构建组件库
npm run build
# 构建 Demo 站点
npm run build:demo
项目结构
src/
components/
Button/
Button.tsx # 组件实现
button.module.less # 样式(CSS Modules)
index.ts # 导出入口
...
styles/
variables.less # 全局 Less 变量(设计令牌)
index.less # 全局样式入口
index.ts # 库导出入口
demo/ # Demo 站点源码
新增组件规范
- 在
src/components/下创建同名目录,包含组件.tsx、组件.module.less、index.ts - 样式使用 Less CSS Modules,类名会自动生成为
animal-[local]-[hash] - 全局变量通过
@import variables.less自动注入,直接使用@primary-color等变量即可 - 在
src/index.ts中导出组件及类型 - 在
demo/中添加组件演示
设计令牌
组件库通过 CSS 自定义属性(--animal-*)支持运行时主题定制。
| 类别 | 变量前缀 | 示例 |
|---|---|---|
| 颜色 | --animal-*-color |
--animal-primary-color、--animal-error-color |
| 字体 | --animal-font-* |
--animal-font-size-base、--animal-font-family |
| 间距 | --animal-spacing-* |
--animal-spacing-sm(8px)、--animal-spacing-lg(16px) |
| 圆角 | --animal-border-radius-* |
--animal-border-radius-base(18px) |
| 阴影 | --animal-shadow-* |
--animal-shadow-base |
| 动画 | --animal-motion-* |
--animal-motion-duration-base(0.25s) |
| 尺寸 | --animal-height-* |
--animal-height-base(40px) |
覆盖示例:
:root {
--animal-primary-color: #19c8b9;
--animal-text-color: #827157;
--animal-bg-color: #f8f8f0;
}
License
MIT