Compare commits

...

32 Commits

Author SHA1 Message Date
lutinglt
fe7cb17617 release 2025-01-12 18:14:00 +08:00
lutinglt
5280962bc4 release 2025-01-12 17:49:13 +08:00
lutinglt
915d139d86 修复工作流作业选中效果 2025-01-12 14:14:11 +08:00
lutinglt
d12dba2373 调整工作流步骤状态标签颜色和间隔 2025-01-12 10:44:53 +08:00
lutinglt
63b2f3fa7b 修复分支菜单按钮溢出 2025-01-11 20:17:11 +08:00
lutinglt
1078e4e73a 版本发布整体调整 2025-01-11 19:53:27 +08:00
lutinglt
2c03bd213a 分支及分支菜单按钮优化 2025-01-11 18:39:06 +08:00
lutinglt
7c81b764db 调整发布页左侧栏 2025-01-11 14:05:58 +08:00
lutinglt
596af871ce 微调侧边栏间隔 2025-01-11 13:14:01 +08:00
lutinglt
121b49d43d 微调标签图标和代码页侧边栏图标与文字的距离 2025-01-11 11:43:00 +08:00
lutinglt
cfaef6de31 禁用工作流标签优化 2025-01-11 10:54:59 +08:00
lutinglt
38c3d8f4bf update 2025-01-11 00:17:02 +08:00
lutinglt
608b8d5e2e update 2025-01-11 00:12:48 +08:00
lutinglt
49a1fad12a 精调仓库代码页面侧边栏 2025-01-10 23:53:17 +08:00
lutinglt
12f9f0044c 编程语言精调 2025-01-10 22:29:33 +08:00
lutinglt
eca01fc5c1 仓库代码页面顶部统计栏颜色优化 2025-01-10 22:02:49 +08:00
lutinglt
a624d5ff58 提高日志 Hover 亮度 2025-01-10 12:02:10 +08:00
lutinglt
c787dea53e 弹窗添加动画, 优化 Action 的日志动画 2025-01-10 11:46:31 +08:00
lutinglt
e95a272071 添加默认过渡动画 2025-01-10 11:24:31 +08:00
lutinglt
f4ed01f60c 仓库编程语言字体颜色同步 Github 2025-01-09 17:10:43 +08:00
lutinglt
22b690da8f 仓库编程语言字体颜色调整 2025-01-09 16:32:28 +08:00
lutinglt
f7e1529ca2 1.23 2025-01-09 15:57:15 +08:00
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
28 changed files with 511 additions and 87 deletions

20
.github/release.md vendored
View File

@@ -1 +1,19 @@
下拉菜单样式同步 Github
## 🌈 Style
#### 更符合 GitHub 风格
- 微调侧边栏元素的间隔
- 版本发布整体调整
- 仓库分支下拉菜单优化
- 调整工作流步骤状态图标颜色和间隔
- 工作流禁用标签颜色和位置优化
- 版本发布页长标签不再使用动态宽度显示全部内容, 使用固定宽度, 过长内容使用省略号替代
## 🎈 Perf
- 手动工作流分支按钮优化 `布局类似代码页的分支按钮`
- 下拉菜单按钮优化 `观感更居中`
## 🐞 Fix
- 修复工作流选中作业鼠标停留时缺失的效果

View File

@@ -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 }}

View File

@@ -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. 清除浏览器缓存, 强制刷新浏览器查看效果
文件位置如下:
![安装](screenshots/themetree.png)
## 截图
![仓库](screenshots/repo.png)
@@ -34,9 +54,11 @@ THEMES = gitea-dark, github
![仓库提交](screenshots/commit.png)
![Actions](screenshots/action.png)
![Actions](screenshots/actions.png)
![Actions Step](screenshots/step.png)
![Action](screenshots/action.png)
![Dispatch](screenshots/dispatch.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": {
"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": {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 65 KiB

BIN
screenshots/actions.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 498 KiB

After

Width:  |  Height:  |  Size: 394 KiB

BIN
screenshots/dispatch.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 425 KiB

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 401 KiB

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

BIN
screenshots/themetree.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

View File

@@ -1,37 +1,78 @@
// Made by Luting ^-^
.job-step-summary {
color: var(--color-console-fg-subtle);
// 工作流禁用标签
.ui.vertical.menu .item > .ui.red.label {
color: var(--color-error-text);
border: 1px solid var(--color-error-border);
background: var(--color-error-bg);
margin-top: 0.5px;
}
.job-log-line {
color: var(--color-text);
// 手动工作流下拉列表
#runWorkflowDispatchForm {
// 分支选择按钮
.ui.dropdown.button.branch-selector-dropdown {
padding: 8px 24px 8px 8px;
&:hover {
color: var(--color-console-fg);
}
}
.job-brief-item {
position: relative;
border-radius: 0.5rem !important;
&:hover {
background-color: var(--color-hover) !important;
}
&.selected {
background-color: #161a21 !important;
&:after {
overflow: visible;
background: #1f6feb;
border-radius: 0.375rem;
content: '';
height: 1.8rem;
left: calc(0rem * -1);
position: absolute;
top: calc(50% - 13px);
width: 0.25rem;
svg.octicon-git-branch {
margin-right: 6px;
}
}
}
.action-view-left {
.job-brief-item {
position: relative;
border-radius: 0.5rem !important;
margin-left: 0.5rem;
&.selected {
background-color: #161a21;
&:hover {
background-color: var(--color-hover);
}
&:after {
overflow: visible;
background: #1f6feb;
border-radius: 0.375rem;
content: '';
height: 1.8rem;
left: -0.5rem;
position: absolute;
top: calc(50% - 13px);
width: 0.25rem;
}
}
}
}
.action-view-right {
.job-step-container {
.job-step-summary {
color: var(--color-console-fg-subtle);
.tw-mr-2:not(.svg) svg.svg {
margin: 2px 6px 0px 2px;
}
svg.svg.text.green {
color: #9198a1 !important;
}
&.selected {
svg.svg.text.green {
color: #f0f6fc !important;
}
}
}
.job-log-line {
color: var(--color-text);
&:hover {
color: #fff;
}
}
}
}

View File

@@ -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,72 @@
}
// 按钮菜单选项(主要为仓库)
.ui.button.dropdown .menu .item {
border-radius: var(--border-radius);
margin: 0 6px;
&:first-of-type {
.tippy-box .flex-items-block,
.ui.dropdown > .visible.menu .scrolling.menu,
.ui.button.dropdown .menu {
.item {
display: flex;
align-items: center;
border-radius: var(--border-radius);
margin-top: 6px;
}
margin: 0 8px;
&:last-of-type {
border-radius: var(--border-radius);
margin-bottom: 6px;
&:first-of-type {
border-radius: var(--border-radius);
margin-top: 8px;
}
&:last-of-type {
border-radius: var(--border-radius);
margin-bottom: 8px;
}
}
}
.ui.dropdown.branch-selector-dropdown > .visible.menu {
// 仓库分支列表下查看操作按钮
> .item {
display: flex;
align-items: center;
border-radius: var(--border-radius);
margin: 8px;
padding: 6px 8px !important;
}
.scrolling.menu .item {
padding: 6px 16px !important;
// 分支菜单下划线
&: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;
}
}
.ui.label {
margin-top: 1px;
margin-left: auto;
margin-right: 0;
}
}
}

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

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

View File

@@ -1,12 +1,54 @@
// Made by Luting ^-^
.page-content.repository.releases {
svg.tw-mr-1.svg.octicon-tag {
color: #3fb950;
#release-list .release-entry {
.meta {
gap: 2px;
padding-top: 24px;
padding-right: 40px;
text-align: left;
min-width: 0;
flex: 0.125;
a.muted {
color: #9198a1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
word-break: break-all;
svg {
margin-right: 8px !important;
}
svg.tw-mr-1.svg.octicon-tag {
margin-top: 1px;
}
}
.js-branch-tag-selector {
margin-top: 8px;
}
}
.segment.detail {
p.text.grey {
margin: 16px 0;
}
.markup {
> *:first-child {
margin-top: 16px !important;
}
> *:last-child {
margin-bottom: 16px !important;
}
}
}
}
.ui.small.primary.button {
background-color: var(--color-button);
font-size: 14px;
&:hover {
background-color: #262c36;
@@ -23,10 +65,6 @@
.page-content.repository.tags,
.page-content.repository.releases {
.ui.small.menu {
.item {
font-size: 14px;
}
.active.item {
color: #fff;
background: #1f6feb !important;

View File

@@ -1,14 +1,4 @@
// Made by Luting ^-^
/* 用户仓库列表字体颜色 */
/* .repo-list-link {
color: var(--color-blue) !important;
} */
/* 头部 */
/* #navbar {
border-bottom: 0;
} */
.page-content > :first-child.secondary-nav {
border-top: 0;
background-color: var(--color-nav-bg) !important;
@@ -50,12 +40,8 @@
background: #15191f;
}
&.muted.tw-font-normal {
color: #9198a1;
&:hover {
color: #9198a1 !important;
}
&.muted:not(.tw-font-normal) {
font-weight: bold;
}
}
}
@@ -106,17 +92,43 @@
// 仓库文件&提交列表
.page-content.repository {
tr.commit-list {
// 顶部提交, 标签, 分支
.repository-summary .segment.sub-menu {
&.ui.segment {
background-color: var(--color-box-header);
}
.item {
color: #9198a1;
b {
color: #f0f6fc;
margin: 0 2px;
}
}
}
// 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 +147,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 +163,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 +179,6 @@
}
img {
border-radius: 25px;
margin-right: 8px !important;
}
}
@@ -180,3 +187,110 @@
color: #919894;
}
}
// 仓库代码页面侧边栏
.page-content.repository {
.repo-home-sidebar-top {
a.muted:hover {
text-decoration: none;
}
.flex-item {
.flex-item-title {
margin-top: 2px;
}
.flex-item-body {
padding: 8px 0;
.repo-description {
color: #f0f6fc;
}
#repo-topics {
margin: 10px 0px !important;
.repo-topic.ui.label {
font-size: 12px;
padding: 5px 10px;
margin: 0px 1.5px 3.5px 0px;
}
}
.flex-text-block {
font-size: 14px;
font-weight: 600;
margin-top: 10px;
&.muted {
margin-top: 2px;
font-weight: normal;
}
svg.svg {
margin-right: 4px;
&.octicon-database{
margin-right: 6px;
}
}
}
}
}
}
.repo-home-sidebar-bottom {
a.muted:hover {
text-decoration: none;
}
.flex-item {
padding: 16px 0;
.flex-item {
padding: 16px 0 0 0;
.flex-item-icon {
svg.svg.octicon-tag {
color: #3fb950;
margin-top: 3px;
}
}
.flex-item-header .flex-item-title {
font-size: 14px;
}
}
.flex-item-title .ui.small.label {
background: var(--color-label-bg);
color: var(--color-label-text);
}
.flex-item-body {
font-size: 12px;
}
}
// 编程语言
.language-stats {
height: 8px;
margin-bottom: 0px;
}
.language-stats-details .item {
font-size: 12px;
margin-right: 16px;
.color-icon {
height: 8px;
width: 8px;
margin-right: 8px;
}
.tw-font-semibold {
color: #f0f6fc;
margin-right: 2px;
}
}
}
}

View File

@@ -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;

View File

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

View File

@@ -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;
}