Files
animal-island-ui/CONTRIBUTING.md
T

95 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Contributing to animal-island-ui
感谢你对 animal-island-ui 的关注!欢迎提交 Issue 和 Pull Request。
## 提交 Issue
- 使用 [GitHub Issues](https://github.com/guokaigdg/animal-island-ui/issues) 提交 Bug 报告或功能建议
- Bug 报告请附上:复现步骤、预期行为、实际行为、浏览器/系统环境
- 功能建议请说明使用场景和期望的 API 设计
## 提交 Pull Request
1. Fork 本仓库并基于 `main` 创建分支 (`git checkout -b feature/my-feature`)
2. 编写代码并确保 `npm run build` 通过
3. 提交修改,遵循 [Conventional Commits](https://www.conventionalcommits.org/) 格式:
- `feat: add xxx` — 新功能
- `fix: resolve xxx` — Bug 修复
- `docs: update xxx` — 文档更新
- `refactor: simplify xxx` — 重构
4. 推送到你的分支 (`git push origin feature/my-feature`)
5. 创建 Pull Request,描述改动内容和动机
## 本地开发
```bash
# 克隆仓库
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 站点源码
```
## 新增组件规范
1.`src/components/` 下创建同名目录,包含 `组件.tsx``组件.module.less``index.ts`
2. 样式使用 Less CSS Modules,类名会自动生成为 `animal-[local]-[hash]`
3. 全局变量通过 `@import variables.less` 自动注入,直接使用 `@primary-color` 等变量即可
4.`src/index.ts` 中导出组件及类型
5.`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) |
覆盖示例:
```css
:root {
--animal-primary-color: #19c8b9;
--animal-text-color: #827157;
--animal-bg-color: #f8f8f0;
}
```
## License
MIT