Compare commits
16 Commits
v1.22.6-20
...
v1.23.1-20
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a624d5ff58 | ||
|
|
c787dea53e | ||
|
|
e95a272071 | ||
|
|
f4ed01f60c | ||
|
|
22b690da8f | ||
|
|
f7e1529ca2 | ||
|
|
b42b1d9543 | ||
|
|
2f303c70cf | ||
|
|
d087fc16d7 | ||
|
|
605a9e0d65 | ||
|
|
70e65ec687 | ||
|
|
330e4945fd | ||
|
|
c9534f7a81 | ||
|
|
9180be8744 | ||
|
|
9124c83876 | ||
|
|
73052da7f2 |
3
.github/release.md
vendored
@@ -1 +1,2 @@
|
||||
下拉菜单样式同步 Github
|
||||
添加默认过渡动画
|
||||
弹窗添加动画, 优化 Action 的日志动画
|
||||
7
.github/workflows/release.yml
vendored
@@ -21,15 +21,18 @@ jobs:
|
||||
- name: Build theme
|
||||
run: |
|
||||
npm install
|
||||
npm run build:theme-fonts
|
||||
mv dist css
|
||||
npm run build:theme
|
||||
tar -czf dist/theme-github-fonts.tar.gz css fonts
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: theme-github
|
||||
path: dist/theme-github.css
|
||||
path: dist/*
|
||||
- name: Create release
|
||||
run: |
|
||||
export TZ=Asia/Shanghai
|
||||
TAG="v${{ inputs.gitea_version }}-$(date +%Y%m%d-%H%M)"
|
||||
gh release create "$TAG" dist/theme-github.css --notes-file .github/release.md --draft -t $TAG
|
||||
gh release create "$TAG" dist/* --notes-file .github/release.md --draft -t $TAG
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
|
||||
34
README.md
@@ -2,10 +2,13 @@
|
||||
|
||||
尽量保持与 GitHub Dark 相同样式的 Gitea 主题
|
||||
|
||||
字体说明:
|
||||
主题说明:
|
||||
|
||||
- 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) (优先匹配左侧, 需要系统包含相应字体)
|
||||
- Actions 日志默认字体 VictorMono 优先
|
||||
添加了短暂的过渡动画优化体验(与 Github clone 下拉列表动画一致)
|
||||
|
||||
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 Nerd Font` 优先
|
||||
|
||||
> Victor Mono 相比其他等宽字体更为紧凑, 可以减少换行
|
||||
|
||||
@@ -24,6 +27,23 @@ THEMES = gitea-dark, github
|
||||
|
||||
详细请查看 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. 清除浏览器缓存, 强制刷新浏览器查看效果
|
||||
|
||||
文件位置如下:
|
||||
|
||||

|
||||
|
||||
## 截图
|
||||
|
||||

|
||||
@@ -34,9 +54,13 @@ THEMES = gitea-dark, github
|
||||
|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||

|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## 构建
|
||||
|
||||
|
||||
BIN
fonts/MapleHand-Bold.ttf
Normal file
BIN
fonts/MapleHand-Regular.ttf
Normal file
BIN
fonts/VictorMonoNerdFont-Bold.ttf
Normal file
BIN
fonts/VictorMonoNerdFont-BoldItalic.ttf
Normal file
BIN
fonts/VictorMonoNerdFont-Italic.ttf
Normal file
BIN
fonts/VictorMonoNerdFont-Regular.ttf
Normal file
@@ -5,6 +5,7 @@
|
||||
"scripts": {
|
||||
"build": "sass src/theme-github.scss:dist/theme-github.css --no-source-map",
|
||||
"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"
|
||||
},
|
||||
"repository": {
|
||||
|
||||
|
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 65 KiB |
BIN
screenshots/actions.png
Normal file
|
After Width: | Height: | Size: 224 KiB |
|
Before Width: | Height: | Size: 498 KiB After Width: | Height: | Size: 394 KiB |
BIN
screenshots/dispatch.png
Normal file
|
After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 425 KiB After Width: | Height: | Size: 433 KiB |
|
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 105 KiB |
|
Before Width: | Height: | Size: 401 KiB After Width: | Height: | Size: 470 KiB |
BIN
screenshots/themetree.png
Normal file
|
After Width: | Height: | Size: 52 KiB |
@@ -7,7 +7,7 @@
|
||||
color: var(--color-text);
|
||||
|
||||
&:hover {
|
||||
color: var(--color-console-fg);
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -12,11 +12,67 @@
|
||||
}
|
||||
}
|
||||
|
||||
// clone 下拉菜单
|
||||
.tippy-box {
|
||||
margin-top: -6px;
|
||||
background: var(--color-box-header);
|
||||
border-radius: 12px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0px 0px 0px 0.5px #30363d, 0px 6px 12px -3px rgba(1, 4, 9, 0.4), 0px 6px 18px 0px rgba(1, 4, 9, 0.4);
|
||||
animation: 200ms cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running overlay-appear;
|
||||
|
||||
.clone-panel-field {
|
||||
margin-top: 16px;
|
||||
}
|
||||
|
||||
.flex-text-block.clone-panel-field {
|
||||
color: #fff;
|
||||
font-weight: bold;
|
||||
margin-left: 16px;
|
||||
}
|
||||
|
||||
.clone-panel-tab {
|
||||
margin-left: 16px;
|
||||
|
||||
button {
|
||||
padding: 15px 12px;
|
||||
}
|
||||
|
||||
.active {
|
||||
border-color: #f78166;
|
||||
}
|
||||
}
|
||||
|
||||
.flex-items-block {
|
||||
margin: 0;
|
||||
|
||||
.item {
|
||||
display: block;
|
||||
padding: 11px 16px;
|
||||
text-align: left;
|
||||
text-transform: none;
|
||||
line-height: 1em;
|
||||
margin: 0;
|
||||
|
||||
svg {
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
> .item:hover {
|
||||
color: var(--color-text);
|
||||
text-decoration: none;
|
||||
background: var(--color-hover);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 下拉菜单
|
||||
.ui.dropdown .menu {
|
||||
margin-top: 3.75px !important;
|
||||
border-radius: 12px !important;
|
||||
overflow: hidden auto;
|
||||
box-shadow: #30363d 0px 0px 0px 0.5px;
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -51,17 +107,51 @@
|
||||
}
|
||||
|
||||
// 按钮菜单选项(主要为仓库)
|
||||
.ui.button.dropdown .menu .item {
|
||||
.tippy-box .flex-items-block,
|
||||
.ui.dropdown > .visible.menu .scrolling.menu,
|
||||
.ui.button.dropdown .menu {
|
||||
.item {
|
||||
border-radius: var(--border-radius);
|
||||
margin: 0 6px;
|
||||
margin: 0 8px;
|
||||
|
||||
&:first-of-type {
|
||||
border-radius: var(--border-radius);
|
||||
margin-top: 6px;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
&:last-of-type {
|
||||
border-radius: var(--border-radius);
|
||||
margin-bottom: 6px;
|
||||
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
@@ -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;
|
||||
}
|
||||
@@ -18,6 +18,7 @@
|
||||
&.form input[type='url'],
|
||||
&.form textarea,
|
||||
&.input textarea,
|
||||
&.ui.input > input,
|
||||
&.label,
|
||||
&.menu,
|
||||
&.segment,
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
|
||||
.ui.small.primary.button {
|
||||
background-color: var(--color-button);
|
||||
font-size: 14px;
|
||||
|
||||
&:hover {
|
||||
background-color: #262c36;
|
||||
@@ -23,10 +22,6 @@
|
||||
.page-content.repository.tags,
|
||||
.page-content.repository.releases {
|
||||
.ui.small.menu {
|
||||
.item {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.active.item {
|
||||
color: #fff;
|
||||
background: #1f6feb !important;
|
||||
|
||||
@@ -50,12 +50,8 @@
|
||||
background: #15191f;
|
||||
}
|
||||
|
||||
&.muted.tw-font-normal {
|
||||
color: #9198a1;
|
||||
|
||||
&:hover {
|
||||
color: #9198a1 !important;
|
||||
}
|
||||
&.muted:not(.tw-font-normal) {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -106,17 +102,27 @@
|
||||
|
||||
// 仓库文件&提交列表
|
||||
.page-content.repository {
|
||||
tr.commit-list {
|
||||
// clone 按钮居中调整
|
||||
.repo-button-row .repo-button-row-right .ui.primary.button span {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
svg {
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
.repo-file-line {
|
||||
height: 3.725rem;
|
||||
}
|
||||
|
||||
.commit-list .latest-commit {
|
||||
#repo-files-table .latest-commit {
|
||||
.commit-summary {
|
||||
color: #9198a1;
|
||||
}
|
||||
|
||||
img.tw-align-middle {
|
||||
border-radius: 25px;
|
||||
margin-top: -1px;
|
||||
margin-left: 1px;
|
||||
margin-right: 8px !important;
|
||||
@@ -135,9 +141,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
.tw-flex,
|
||||
.commit-list {
|
||||
.tw-align-middle:not(img) {
|
||||
.commit-list,
|
||||
#repo-files-table {
|
||||
.flex-text-inline:not(img) {
|
||||
padding: 6px;
|
||||
border-radius: var(--border-radius);
|
||||
margin-right: 6px;
|
||||
@@ -151,16 +157,12 @@
|
||||
|
||||
.repository.file.list {
|
||||
#repo-files-table {
|
||||
tbody {
|
||||
.repo-file-item {
|
||||
.svg.octicon-file-directory-fill,
|
||||
.svg.octicon-file-submodule {
|
||||
color: #7d8590;
|
||||
}
|
||||
}
|
||||
|
||||
tr:hover {
|
||||
background-color: var(--color-box-header);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -171,7 +173,6 @@
|
||||
}
|
||||
|
||||
img {
|
||||
border-radius: 25px;
|
||||
margin-right: 8px !important;
|
||||
}
|
||||
}
|
||||
@@ -180,3 +181,8 @@
|
||||
color: #919894;
|
||||
}
|
||||
}
|
||||
|
||||
// 编程语言仅语言文字颜色
|
||||
.language-stats-details .item .tw-font-semibold {
|
||||
color: #f0f6fc;
|
||||
}
|
||||
@@ -1,13 +1,22 @@
|
||||
// Made by Luting ^-^
|
||||
:root :lang(zh-CN) {
|
||||
--fonts-override: 'Maple Hand', 'VictorMono Nerd Font', 'HYZhengYuan';
|
||||
--fonts-override: 'Maple Hand', 'VictorMono NF', 'VictorMono Nerd Font';
|
||||
}
|
||||
|
||||
.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;
|
||||
}
|
||||
|
||||
.repository {
|
||||
#commits-table .text.right,
|
||||
#repo-files-table .repo-file-cell.age,
|
||||
#repo-files-table relative-time {
|
||||
font-family: 'VictorMono NF', 'VictorMono Nerd Font', 'Maple Hand';
|
||||
font-weight: bold !important;
|
||||
}
|
||||
}
|
||||
|
||||
:root {
|
||||
--is-dark-theme: true;
|
||||
--border-radius: 6px;
|
||||
|
||||
3
src/theme-github-fonts.scss
Normal file
@@ -0,0 +1,3 @@
|
||||
/* Made by Luting ^-^ */
|
||||
@use 'fontface';
|
||||
@use 'theme-github';
|
||||
@@ -1,4 +1,16 @@
|
||||
// Made by Luting ^-^
|
||||
@keyframes overlay-appear {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translateY(-5%);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
input,
|
||||
textarea,
|
||||
tr,
|
||||
@@ -8,10 +20,11 @@ details summary,
|
||||
#navbar .item,
|
||||
.header-wrapper .ui.tabular.menu .item,
|
||||
.job-step-summary,
|
||||
.job-log-line,
|
||||
.job-step-logs,
|
||||
.job-brief-item,
|
||||
.menu .item,
|
||||
.page-content.repository .flex-item .flex-item-title a,
|
||||
.tippy-box .flex-items-block .item,
|
||||
.ui.input > input,
|
||||
.ui.form input:not([type]),
|
||||
.ui.form select,
|
||||
@@ -28,6 +41,7 @@ details summary,
|
||||
.ui.form input[type='time'],
|
||||
.ui.form input[type='url'],
|
||||
.ui.label,
|
||||
.ui.modal,
|
||||
.ui.selection.dropdown,
|
||||
.ui.checkbox label:before,
|
||||
.ui.checkbox input:checked ~ label:before,
|
||||
@@ -42,4 +56,5 @@ details summary,
|
||||
.ui.vertical.menu .header.item,
|
||||
.ui.secondary.menu .item {
|
||||
transition: 0.2s;
|
||||
animation: 200ms cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running overlay-appear;
|
||||
}
|
||||
|
||||