Files
gitea-banana-theme/README.md
2025-10-11 09:48:42 +08:00

157 lines
4.5 KiB
Markdown

# Gitea Banana Theme
为 Gitea 提供一套现代化、美观的 Banana 风格主题。包含多种预设颜色方案,如基础的亮色、暗色和柔和暗色主题,以及为色盲用户设计的主题和粉色主题。主题通过 CSS 实现,并利用 Vite 和 Vanilla Extract 等工具进行构建。
## 安装
1. 在发布页下载最新的 CSS 主题文件放入 `gitea/public/assets/css` 目录下
2. 修改 `gitea/conf/app.ini`,并将 CSS 文件名去掉 `theme-` 的名称附加到 `[ui]` 下的 `THEMES` 末尾
3. 重启 Gitea
4. 在设置中查看主题
> [!IMPORTANT]
>
> 自动颜色主题需要亮色和暗色的主题文件
例: 主题文件名为 `theme-banana-modern-dark.css`,则添加 `banana-modern-dark``THEMES` 末尾
`gitea/conf/app.ini` 例:
```ini
[ui]
THEMES = gitea-auto, gitea-light, gitea-dark, banana-modern-auto, banana-modern-light, banana-modern-dark, banana-soft-dark
```
详细请查看 Gitea 文档
[Gitea docs](https://docs.gitea.com/next/administration/customizing-gitea#customizing-the-look-of-gitea)
## 技术栈
- **TypeScript**: 用于类型安全的 JavaScript 开发。
- **Vite**: 构建工具,提供快速的开发和构建体验。
- **Vanilla Extract**: 用于在 JavaScript/TypeScript 中编写 CSS 样式。
- **Lightning CSS**: 用于 CSS 转换和优化。
- **Linaria/WYW-in-JS**: 用于在 JavaScript 中编写 CSS。
## 开发指南
### 安装依赖
确保你已经安装了 Node.js 环境, 推荐使用 Node.js 20 或以上版本。
```bash
npm install
```
### 开发构建
构建开发版本(仅构建 `DEV_THEME` 环境变量指定的主题,或默认的 `dark` 主题):
```bash
npm run dev
```
### 生产构建
构建所有主题:
```bash
npm run build
```
构建过程会生成 CSS 文件到 `dist/` 目录。
### 代码检查和格式化
- 检查代码风格:
```bash
npm run lint
```
- 格式化代码:
```bash
npm run format
```
- 一键执行检查、格式化和构建:
```bash
npm run commit
```
## 截图
![banana-modern](screenshots/light.png)
## 贡献
欢迎提交 Issue 和 Pull Request 来帮助改进这个项目。
在提交 Issue 时,请根据问题类型选择合适的模板:
- 样式错误报告 (Style bug report)
- 功能请求 (Feature request)
- 核心错误报告 (Core bug report)
- 文档报告 (Doc report)
在提交 Pull Request 时,请确保:
1. 代码风格符合项目规范
2. 添加了必要的测试
3. 更新了相关文档
### 基本主题
```ini
THEMES = banana-modern-auto, banana-modern-light, banana-modern-dark, banana-auto, banana-light, banana-dark, banana-soft-dark
```
### 色盲主题 ( Beta )
```ini
THEMES = banana-colorblind-auto, banana-colorblind-light, banana-colorblind-dark
THEMES = banana-tritanopia-auto, banana-tritanopia-light, banana-tritanopia-dark
```
### 粉色主题
```ini
THEMES = banana-pink-auto, banana-pink-light, banana-pink-dark, banana-pink-soft-dark
```
## 自定义 CSS 变量
可以根据自己的偏好自定义主题的一部分样式
### 使用方法
在主题的 CSS 文件的头部或尾部添加以下代码
```css
:root {
--custom-clone-menu-width: 150px;
...
}
```
> [!IMPORTANT]
>
> 请确保在 `:root` 选择器中添加自定义变量,否则无法生效
>
> 变量之间用 `;` 分隔
>
> 建议自定义变量放在单独的文件中, 通过 shell 命令等方式追加到主题文件中
### CSS 变量
| 变量名 | 描述 | 默认 | Github | 推荐 | 最小 | 最大 |
| :-------------------------------- | :-------------------------- | :---- | :----- | :---- | :---- | :---- |
| --custom-branch-menu-width | 分支菜单的宽度 | 320px | 320px | 320px | Gitea | 640px |
| --custom-clone-menu-width | 克隆按钮的菜单宽度 | Gitea | 332px | 200px | 150px | 400px |
| --custom-user-menu-width | 用户菜单的宽度 | 192px | 256px | | Gitea | 320px |
| --custom-explore-repolist-columns | 探索页面的仓库列表列数 | 2 | 2 | 2 | | |
| --custom-explore-userlist-columns | 探索页面的用户/组织列表列数 | 3 | 1 | 2/3 | | |
| --custom-user-repolist-columns | 用户页面的仓库列表列数 | 2 | 2 | 1/2 | | |
| --custom-org-repolist-columns | 组织页面的仓库列表列数 | 1 | 1 | 1/2 | | |
| --custom-org-userlist-columns | 组织页面的用户列表列数 | 2 | 1 | 1/2 | | |