Compare commits

...

14 Commits

Author SHA1 Message Date
lutinglt
b42b1d9543 去除头像圆角 2025-01-09 11:20:10 +08:00
lutinglt
2f303c70cf 仓库页面时间列绝对时间字体优化 2024-12-28 16:05:49 +08:00
lutinglt
d087fc16d7 提交页面默认字体修改 2024-12-28 00:29:26 +08:00
lutinglt
605a9e0d65 打包字体 2024-12-28 00:07:35 +08:00
lutinglt
70e65ec687 同步 Github 分支列表样式(超还原) 2024-12-27 23:05:05 +08:00
lutinglt
330e4945fd 微调下拉菜单边框阴影 2024-12-27 21:47:04 +08:00
lutinglt
c9534f7a81 微调下拉菜单的选项间隔 2024-12-27 21:02:48 +08:00
lutinglt
9180be8744 修复输入框圆角 2024-12-27 18:06:07 +08:00
lutinglt
9124c83876 Update README.md 2024-12-27 14:27:09 +08:00
lutinglt
73052da7f2 引入 fontface 2024-12-27 14:20:43 +08:00
lutinglt
5a203804be 下拉菜单样式同步 Github 2024-12-27 12:30:21 +08:00
lutinglt
3489fc94c2 折叠项观测小优化 2024-12-27 00:16:28 +08:00
lutinglt
e9d2b62b0e 优化设置界面折叠项的显示效果 2024-12-26 17:13:36 +08:00
lutinglt
f357ee4181 修复仓库提交和Runner日志的一致性问题 2024-12-24 22:24:32 +08:00
22 changed files with 248 additions and 33 deletions

4
.github/release.md vendored
View File

@@ -1,3 +1 @@
提交查看页面增加了提交之间的间隔 去除头像圆角
隐藏仓库文件列表头部最后一次提交的 SHA
其他一些细节优化

View File

@@ -21,15 +21,18 @@ jobs:
- name: Build theme - name: Build theme
run: | run: |
npm install npm install
npm run build:theme-fonts
mv dist css
npm run build:theme npm run build:theme
tar -czf dist/theme-github-fonts.tar.gz css fonts
- uses: actions/upload-artifact@v4 - uses: actions/upload-artifact@v4
with: with:
name: theme-github name: theme-github
path: dist/theme-github.css path: dist/*
- name: Create release - name: Create release
run: | run: |
export TZ=Asia/Shanghai export TZ=Asia/Shanghai
TAG="v${{ inputs.gitea_version }}-$(date +%Y%m%d-%H%M)" TAG="v${{ inputs.gitea_version }}-$(date +%Y%m%d-%H%M)"
gh release create "$TAG" dist/theme-github.css --notes-file .github/release.md -t $TAG gh release create "$TAG" dist/* --notes-file .github/release.md --draft -t $TAG
env: env:
GH_TOKEN: ${{ github.token }} GH_TOKEN: ${{ github.token }}

View File

@@ -4,8 +4,8 @@
字体说明: 字体说明:
- UI 默认字体 [Maple Hand](https://github.com/subframe7536/maple-font/tree/other-resources/cn-resource/maple-hand) & [VictorMono Nerd Font](https://github.com/ryanoasis/nerd-fonts/releases/download/v3.3.0/VictorMono.zip) & [汉仪正圆](https://www.hanyi.com.cn/productdetail.php?id=2913) (优先匹配左侧, 需要系统包含相应字体) - UI 默认字体 [Maple Hand](https://github.com/subframe7536/maple-font/tree/other-resources/cn-resource/maple-hand) & [VictorMono Nerd Font](https://github.com/ryanoasis/nerd-fonts/releases/download/v3.3.0/VictorMono.zip) (优先匹配 `Maple Hand`, 需要系统包含相应字体)
- Actions 日志默认字体 VictorMono 优先 - Actions 日志默认字体 `VictorMono` 优先
> Victor Mono 相比其他等宽字体更为紧凑, 可以减少换行 > Victor Mono 相比其他等宽字体更为紧凑, 可以减少换行
@@ -24,6 +24,23 @@ THEMES = gitea-dark, github
详细请查看 Gitea 文档 [Gitea docs](https://docs.gitea.com/next/administration/customizing-gitea#customizing-the-look-of-gitea) 详细请查看 Gitea 文档 [Gitea docs](https://docs.gitea.com/next/administration/customizing-gitea#customizing-the-look-of-gitea)
### 集成字体
如果不想手动在系统安装字体, 可以将字体放入 Gitea 中, 在访问时拉取字体文件
>[!CAUTION]
>
> 不推荐此行为, 字体文件较大, 且一些字体粗细样式可能会有缺失
>
> 页面会在加载完字体后切换字体
1. 在发布页下载最新的 `theme-github-fonts.tar.gz` 解压后放入 `gitea/public/assets` 目录下
2. 清除浏览器缓存, 强制刷新浏览器查看效果
文件位置如下:
![安装](screenshots/themetree.png)
## 截图 ## 截图
![仓库](screenshots/repo.png) ![仓库](screenshots/repo.png)

BIN
fonts/MapleHand-Bold.ttf Normal file

Binary file not shown.

BIN
fonts/MapleHand-Regular.ttf Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -5,6 +5,7 @@
"scripts": { "scripts": {
"build": "sass src/theme-github.scss:dist/theme-github.css --no-source-map", "build": "sass src/theme-github.scss:dist/theme-github.css --no-source-map",
"build:theme": "npm run build -- --style=compressed", "build:theme": "npm run build -- --style=compressed",
"build:theme-fonts": "sass src/theme-github-fonts.scss:dist/theme-github.css --no-source-map --style=compressed",
"watch": "npm run build -- --watch" "watch": "npm run build -- --watch"
}, },
"repository": { "repository": {

BIN
screenshots/themetree.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

View File

@@ -109,7 +109,7 @@
} }
} }
/* 关闭工单按钮 */ // 关闭工单按钮
.ui.red.basic.button#status-button { .ui.red.basic.button#status-button {
color: #ab7df8; color: #ab7df8;
border-color: var(--color-light-border); border-color: var(--color-light-border);
@@ -121,7 +121,7 @@
} }
} }
/* 重新开启按钮 */ // 重新开启按钮
.ui.basic.primary.button#status-button { .ui.basic.primary.button#status-button {
color: #39d353; color: #39d353;
background-color: var(--color-button); background-color: var(--color-button);

View File

@@ -1,4 +1,25 @@
// Made by Luting ^-^ // Made by Luting ^-^
// 下拉菜单动画
@keyframes overlay-appear {
0% {
opacity: 0;
transform: translateY(-5%);
}
100% {
opacity: 1;
transform: translateY(0);
}
}
.ui.dropdown .menu {
margin-top: 3.75px !important;
border-radius: 12px !important;
overflow: hidden auto;
box-shadow: 0px 0px 0px 0.5px #30363d, 0px 6px 12px -3px #01040966, 0px 6px 18px 0px #01040966;
animation: 200ms cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running overlay-appear;
}
.ui.dropdown .menu, .ui.dropdown .menu,
.branch-tag-item.active, .branch-tag-item.active,
.ui.pointing.dropdown > .menu:not(.hidden):after { .ui.pointing.dropdown > .menu:not(.hidden):after {
@@ -29,3 +50,51 @@
} }
} }
// 按钮菜单选项(主要为仓库)
.ui.dropdown > .visible.menu .scrolling.menu,
.ui.button.dropdown .menu {
.item {
border-radius: var(--border-radius);
margin: 0 8px;
&:first-of-type {
border-radius: var(--border-radius);
margin-top: 8px;
}
&:last-of-type {
border-radius: var(--border-radius);
margin-bottom: 8px;
}
}
}
// 分支菜单下划线
.ui.dropdown > .visible.menu .scrolling.menu .item {
&:before {
content: ' ';
display: block;
position: absolute;
width: 100%;
top: 0px;
left: 0px;
border-width: 1px 0px 0px;
border-style: solid;
border-image: initial;
border-color: #3d444db3;
}
&:first-of-type:before {
border-color: transparent;
}
&:hover {
&:before {
border-color: transparent;
}
+ :before {
border-color: transparent;
}
}
}

48
src/fontface.scss Normal file
View File

@@ -0,0 +1,48 @@
// Made by Luting ^-^
@font-face {
font-family: 'Maple Hand';
src: url('/assets/fonts/MapleHand-Regular.ttf') format('truetype');
font-display: swap;
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'Maple Hand';
src: url('/assets/fonts/MapleHand-Bold.ttf') format('truetype');
font-display: swap;
font-weight: bold;
font-style: normal;
}
@font-face {
font-family: 'VictorMono NF';
src: url('/assets/fonts/VictorMonoNerdFont-Regular.ttf') format('truetype');
font-display: swap;
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'VictorMono NF';
src: url('/assets/fonts/VictorMonoNerdFont-Italic.ttf') format('truetype');
font-display: swap;
font-weight: normal;
font-style: italic;
}
@font-face {
font-family: 'VictorMono NF';
src: url('/assets/fonts/VictorMonoNerdFont-Bold.ttf') format('truetype');
font-display: swap;
font-weight: bold;
font-style: normal;
}
@font-face {
font-family: 'VictorMono NF';
src: url('/assets/fonts/VictorMonoNerdFont-BoldItalic.ttf') format('truetype');
font-display: swap;
font-weight: bold;
font-style: italic;
}

View File

@@ -17,10 +17,9 @@ textarea,
.ui.form input[type='time'], .ui.form input[type='time'],
.ui.form input[type='url'], .ui.form input[type='url'],
.ui.selection.dropdown { .ui.selection.dropdown {
&:focus { &:focus,
border-color: #1f6feb;
}
&:focus-visible { &:focus-visible {
border-radius: var(--border-radius);
border-color: #1f6feb; border-color: #1f6feb;
outline: none; outline: none;
box-shadow: inset 0 0 0 1px #1f6feb; box-shadow: inset 0 0 0 1px #1f6feb;

View File

@@ -111,6 +111,32 @@ a.ui.ui.ui {
border-radius: 25px; border-radius: 25px;
} }
&.task-status-success {
color: var(--color-success-text);
border: 1px solid var(--color-success-border);
background: var(--color-success-bg);
}
&.task-status-failure {
color: var(--color-error-text);
border: 1px solid var(--color-error-border);
background: var(--color-error-bg);
}
&.task-status-running,
&.task-status-skipped {
color: var(--color-info-text);
border: 1px solid var(--color-info-border);
background: var(--color-info-bg);
}
&.task-status-cancelled,
&.task-status-blocked {
color: var(--color-warning-text);
border: 1px solid var(--color-warning-border);
background: var(--color-warning-bg);
}
> a { > a {
opacity: 1; opacity: 1;
} }
@@ -138,11 +164,21 @@ a.ui.label:not(.basic, .sha):hover {
#rev-list, #rev-list,
.timeline-item.commits-list .singular-commit { .timeline-item.commits-list .singular-commit {
.sha.label { .sha.label {
.detail.icon, .detail.icon {
&.isSigned.isVerified .detail.icon { border: 0;
background: unset;
}
&.isSigned {
&.isWarning,
&.isVerified,
&.isVerifiedUntrusted,
&.isVerifiedUnmatched {
.detail.icon {
border: 0; border: 0;
background: unset; background: unset;
} }
} }
} }
} }
}
}

View File

@@ -18,6 +18,7 @@
&.form input[type='url'], &.form input[type='url'],
&.form textarea, &.form textarea,
&.input textarea, &.input textarea,
&.ui.input > input,
&.label, &.label,
&.menu, &.menu,
&.segment, &.segment,

View File

@@ -1,6 +1,6 @@
// Made by Luting ^-^ // Made by Luting ^-^
/* 用户仓库列表字体颜色 /* 用户仓库列表字体颜色 */
/* .repo-list-link { /* .repo-list-link {
color: var(--color-blue) !important; color: var(--color-blue) !important;
} */ } */
@@ -50,12 +50,8 @@
background: #15191f; background: #15191f;
} }
&.muted.tw-font-normal { &.muted:not(.tw-font-normal) {
color: #9198a1; font-weight: bold;
&:hover {
color: #9198a1 !important;
}
} }
} }
} }
@@ -116,7 +112,6 @@
} }
img.tw-align-middle { img.tw-align-middle {
border-radius: 25px;
margin-top: -1px; margin-top: -1px;
margin-left: 1px; margin-left: 1px;
margin-right: 8px !important; margin-right: 8px !important;
@@ -171,7 +166,6 @@
} }
img { img {
border-radius: 25px;
margin-right: 8px !important; margin-right: 8px !important;
} }
} }

View File

@@ -1,13 +1,23 @@
// Made by Luting ^-^ // Made by Luting ^-^
:root :lang(zh-CN) { :root :lang(zh-CN) {
--fonts-override: 'Maple Hand', 'VictorMono Nerd Font', 'HYZhengYuan'; --fonts-override: 'Maple Hand', 'VictorMono NF', 'VictorMono Nerd Font';
} }
.job-step-logs { .job-step-logs {
font-family: 'VictorMono Nerd Font', 'Maple Hand', 'HYZhengYuan' !important; font-family: 'VictorMono NF', 'VictorMono Nerd Font', 'Maple Hand' !important;
font-weight: 500; font-weight: 500;
} }
.repository {
#commits-table,
#repo-files-table {
.text.right {
font-family: 'VictorMono NF', 'VictorMono Nerd Font', 'Maple Hand';
font-weight: bold !important;
}
}
}
:root { :root {
--is-dark-theme: true; --is-dark-theme: true;
--border-radius: 6px; --border-radius: 6px;

View File

@@ -1,5 +1,17 @@
// Made by Luting ^-^ // Made by Luting ^-^
// 设置左边栏(包含 Actions 的工作流栏) // 设置左边栏(包含 Actions 的工作流栏)
%active-item-after-style {
background: #1f6feb;
border-radius: 0.375rem;
content: '';
height: 1.8rem;
left: calc(0.5rem * -1);
position: absolute;
top: calc(50% - 13px);
width: 0.25rem;
}
.ui.vertical.menu { .ui.vertical.menu {
background: var(--color-body); background: var(--color-body);
border: 0; border: 0;
@@ -30,14 +42,37 @@
} }
.active.item:after { .active.item:after {
background: #1f6feb; @extend %active-item-after-style;
border-radius: 0.375rem; }
content: '';
height: 1.8rem; details {
left: calc(0.5rem * -1); &:has(.active.item) {
position: absolute; > summary {
top: calc(50% - 13px); background: #161a21;
width: 0.25rem;
&:hover {
background: var(--color-hover);
}
}
&[open] {
> summary {
background: unset;
&:hover {
background: var(--color-hover);
}
}
&:after {
display: none;
}
}
&:after {
@extend %active-item-after-style;
}
}
} }
} }

View File

@@ -0,0 +1,3 @@
/* Made by Luting ^-^ */
@use 'fontface';
@use 'theme-github';

View File

@@ -4,6 +4,7 @@ textarea,
tr, tr,
td, td,
button, button,
details summary,
#navbar .item, #navbar .item,
.header-wrapper .ui.tabular.menu .item, .header-wrapper .ui.tabular.menu .item,
.job-step-summary, .job-step-summary,