Compare commits

...

26 Commits

Author SHA1 Message Date
lutinglt
b8d0e43074 Action执行时间位置优化 2025-02-11 12:49:34 +08:00
lutinglt
79f305ee1e 仓库导航栏文字颜色优化 2025-02-11 12:47:07 +08:00
lutinglt
9acfd21a9d Update README.md 2025-02-11 11:11:51 +08:00
lutinglt
a897230f2c 修复英文下Action页面执行时间换行&菜单文字粗细样式优化 2025-02-11 11:06:44 +08:00
lutinglt
1cad42f701 Action工作流页面同步 2025-02-10 22:05:27 +08:00
lutinglt
c5a1c1bdf5 父级目录高度修复 2025-02-10 17:44:50 +08:00
lutinglt
a4958a3539 按钮字体粗细调整 2025-02-10 13:46:54 +08:00
lutinglt
9aae3e7347 父级目录添加悬停颜色 2025-02-10 12:58:38 +08:00
lutinglt
7eff93195b 父级目录图标位置优化 2025-02-10 12:54:41 +08:00
lutinglt
21aa5cdc47 导航栏分割线优化 2025-02-10 12:47:55 +08:00
lutinglt
3119e2f334 首页动态图标大小优化 2025-02-10 12:10:06 +08:00
lutinglt
91f5c77faf 首页动态图标大小优化 2025-02-10 12:08:14 +08:00
lutinglt
0bae3b4533 修复软件包页面下组织标签样式 2025-02-10 11:55:52 +08:00
lutinglt
7a37517034 仓库收藏派生按钮调整 2025-02-10 11:50:18 +08:00
lutinglt
02f22c1f57 输入框大小和颜色优化 2025-02-10 11:38:04 +08:00
lutinglt
aae6409016 动画效果优化 2025-02-10 10:48:46 +08:00
lutinglt
3f34bce95d 修复仓库文件列表整行悬停背景颜色丢失 2025-02-09 23:19:14 +08:00
lutinglt
1b2207a13b 移除字体 2025-02-09 22:58:24 +08:00
lutinglt
cd9a2a504b 仓库导航栏颜色同步&按钮大小优化 2025-02-09 21:42:11 +08:00
lutinglt
7c6ec21e10 顶部导航栏分割线优化 2025-02-09 21:14:54 +08:00
lutinglt
36195e64ee 仓库文件列表文件图标名称位置优化 2025-02-09 21:05:43 +08:00
lutinglt
de133f5aac 手机下隐藏提交信息 2025-02-09 19:19:10 +08:00
lutinglt
e2c52aa95a 加快下拉动画 2025-02-09 14:55:35 +08:00
lutinglt
3f75f5f36b 动画效果优化 2025-02-09 14:27:12 +08:00
lutinglt
6c8f386f9f 代码页侧边栏宽度&下拉菜单分割线调整 2025-02-09 11:14:43 +08:00
lutinglt
53f074ba79 增加克隆协议选择按钮样式 2025-02-06 18:14:43 +08:00
30 changed files with 387 additions and 202 deletions

11
.github/release.md vendored
View File

@@ -2,12 +2,5 @@
#### 更符合 GitHub 风格
## 🎈 Perf
- 优化 Action 日志左侧栏宽度 `Gitea 会显示运行时长, 留给作业名称足够的长度`
## 🐞 Fix
- 修复侧边栏协议对齐
- 修复克隆面板按钮弹跳
- 修复仓库/用户/组织标签风格不统一
- 仓库导航栏文字颜色优化
- Action执行时间位置优化

View File

@@ -21,10 +21,7 @@ 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
npm run build
- uses: actions/upload-artifact@v4
with:
name: theme-github

View File

@@ -7,7 +7,7 @@
添加了短暂的过渡动画优化体验(与 GitHub Code 克隆列表动画一致)
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`, 需要系统包含相应字体, 否则使用默认字体)
推荐搭配文件图标浏览器插件一起使用更佳 [github-file-explorer-icons](https://github.com/catppuccin/github-file-explorer-icons)
## 安装
@@ -24,23 +24,6 @@ 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)
@@ -65,7 +48,7 @@ THEMES = gitea-dark, github
git clone https://github.com/lutinglt/gitea-github-theme.git
cd gitea-github-theme
npm install
npm run build:theme
npm run build
```
查看用于 Gitea 的主题文件: `./dist/theme-github.css`

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -3,11 +3,9 @@
"version": "1.0.0",
"description": "尽量保持与 GitHub Dark 相同样式的 Gitea 主题",
"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",
"build:theme-my": "sass src/theme-github-my.scss:dist/theme-github.css --no-source-map --style=compressed",
"watch": "npm run build -- --watch"
"export": "sass src/theme-github.scss:dist/theme-github.css --no-source-map",
"build": "npm run export -- --style=compressed",
"watch": "npm run export -- --watch"
},
"repository": {
"type": "git",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 224 KiB

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

View File

@@ -1,4 +1,91 @@
// Made by Luting ^-^
.page-content.repository.actions .ui.grid {
.four.wide {
border-right: 1px solid var(--color-light-border);
min-height: calc(-104px + 100vh);
&:before {
content: 'Actions';
display: block;
font-size: 20px;
font-weight: 600;
margin-top: 6px;
margin-bottom: 24px;
}
}
.twelve.wide {
&:before {
content: 'Workflow Runs';
display: block;
font-size: 20px;
margin-top: 6px;
margin-bottom: 24px;
margin-left: 2px;
}
.ui.secondary.menu {
background-color: var(--color-box-header);
border: 1px solid var(--color-light-border);
border-bottom: 0;
border-top-left-radius: var(--border-radius);
border-top-right-radius: var(--border-radius);
padding: 16px;
margin-bottom: 0;
.item {
padding: 6px 12px;
}
}
.ui.info.message {
border-radius: 0;
border-left-color: var(--color-light-border);
border-right-color: var(--color-light-border);
margin: 0;
~ .run-list {
border-top: 0;
}
}
.run-list {
border: 1px solid var(--color-light-border);
border-bottom-left-radius: var(--border-radius);
border-bottom-right-radius: var(--border-radius);
.flex-item {
padding: 16px;
.flex-item-leading {
align-self: flex-start;
margin-top: 2px;
}
.flex-item-main {
gap: 0.5rem;
}
.flex-item-trailing {
justify-content: space-between;
> .ui.label {
border-radius: var(--border-radius);
margin-left: 32px;
}
}
}
}
}
}
@media (max-width: 767.98px) {
.page-content.repository.actions .ui.grid .four.wide {
min-height: auto;
}
}
// 工作流禁用标签
.ui.vertical.menu .item > .ui.red.label {
color: var(--color-error-text);
@@ -19,6 +106,7 @@
}
}
// 日志
.ui.container.action-view-container {
width: auto;
max-width: 100%;

View File

@@ -1,4 +1,8 @@
// Made by Luting ^-^
.ui.button {
font-weight: 500;
padding: 9px 16px;
}
.ui.primary.button {
background-color: #238636;
&:hover {
@@ -31,7 +35,7 @@
}
.ui.button.branch-dropdown-button {
padding: 6px 12px;
padding: 3px 12px;
min-height: 28px;
}

7
src/dashboard.scss Normal file
View File

@@ -0,0 +1,7 @@
// Made by Luting ^-^
.page-content.dashboard {
.flex-item .flex-item-trailing svg {
height: 18px;
width: 18px;
}
}

View File

@@ -3,7 +3,11 @@
@keyframes overlay-appear {
0% {
opacity: 0;
transform: translateY(-5%);
transform: translateY(-12px);
}
35% {
transform: translateY(-2px);
}
100% {
@@ -35,12 +39,31 @@
margin-left: 16px;
button {
padding: 15px 12px;
transition: none;
color: #f0f6fc !important;
font-weight: 600;
padding: 6px 8px;
margin: 8px 0;
&:hover {
background: var(--color-hover);
border-radius: var(--border-radius);
}
&.active:after {
content: '';
display: block;
position: absolute;
bottom: -8px;
left: 0;
width: 100%;
height: 2px;
background: #f78166;
}
}
.item.active {
border-bottom: 2px solid #f78166;
border-bottom: 0;
position: relative;
}
}
@@ -129,6 +152,16 @@
}
}
// 下拉菜单分隔线
.ui.dropdown .menu > .divider {
border: 0;
height: 1px;
background-color: #3d444db3;
margin-top: calc(7px);
margin-bottom: 8px;
list-style: none;
}
.ui.dropdown.branch-selector-dropdown > .visible.menu {
// 仓库分支列表下查看操作按钮
> .item {

View File

@@ -3,21 +3,6 @@
color: var(--color-text);
}
.ui.secondary.pointing.menu {
.active.item {
color: var(--color-text);
}
.active.item,
.dropdown.item,
.link.item,
a.item {
&:hover {
color: var(--color-text);
}
}
}
.ui.cards > .card,
.ui.card {
> .extra a:not(.ui):hover {

View File

@@ -1,48 +0,0 @@
// 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,8 +17,15 @@ textarea,
.ui.form input[type='time'],
.ui.form input[type='url'],
.ui.selection.dropdown {
background: unset;
&:hover {
background: unset;
}
&:focus,
&:focus-visible {
background: unset !important;
border-radius: var(--border-radius);
border-color: #1f6feb;
outline: none;

View File

@@ -10,7 +10,7 @@ a.ui.basic.label:hover {
}
span,
.secondary-nav .org-visibility div {
.org-visibility div {
&.ui.basic.label {
border-radius: 25px;
background-color: unset;

View File

@@ -18,4 +18,28 @@
background-color: var(--color-box-header);
border-top: 1.5px solid var(--color-light-border);
}
input,
textarea,
.ui.input input,
.ui.form input:not([type]),
.ui.form select,
.ui.form textarea,
.ui.form input[type='date'],
.ui.form input[type='datetime-local'],
.ui.form input[type='email'],
.ui.form input[type='file'],
.ui.form input[type='number'],
.ui.form input[type='password'],
.ui.form input[type='search'],
.ui.form input[type='tel'],
.ui.form input[type='text'],
.ui.form input[type='time'],
.ui.form input[type='url'],
.ui.selection.dropdown {
&:focus,
&:focus-visible {
background: #0d1117 !important;
}
}
}

View File

@@ -1,5 +1,9 @@
// Made by Luting ^-^
.page-content.repository.releases {
h2 .item {
font-weight: 500;
}
#release-list .release-entry {
.meta {
gap: 2px;
@@ -33,6 +37,10 @@
.segment.detail {
p.text.grey {
margin: 16px 0;
.time {
color: #f0f6fc;
}
}
.markup {

View File

@@ -1,4 +1,8 @@
// Made by Luting ^-^
#navbar {
border-bottom-width: 1.5px;
}
.page-content > :first-child.secondary-nav {
border-top: 0;
background-color: var(--color-nav-bg) !important;
@@ -9,8 +13,21 @@
z-index: 0;
}
.secondary-nav > .divider {
border-top-width: 1.5px;
}
// 仓库页面头部名称
.page-content.repository .repo-header {
.ui.compact.button {
padding: 3px 12px;
svg {
color: #9198a1;
margin-right: 6px;
}
}
img.ui.avatar {
height: 32px;
width: 32px;
@@ -65,6 +82,18 @@
}
}
.active.item,
.dropdown.item,
.link.item,
a.item {
color: #f0f6fc;
svg {
color: #9198a1;
margin-right: 8px;
}
}
.active.item {
border-color: #ffffff00;
@@ -108,39 +137,12 @@
}
}
// clone 按钮居中调整
// clone 按钮调整
.repo-button-row .repo-button-row-right .ui.primary.button span {
margin: 0px 3px;
}
.repo-file-line {
height: 3.725rem;
}
#repo-files-table .latest-commit {
.commit-summary {
color: #9198a1;
}
img.tw-align-middle {
margin-top: -1px;
margin-left: 1px;
margin-right: 8px !important;
}
.author-wrapper {
margin-right: 6px;
&:hover {
color: var(--color-text);
}
}
.ui.sha.label {
display: none;
}
}
// 提交的Action状态
.commit-list,
#repo-files-table {
.flex-text-inline:not(img) {
@@ -155,13 +157,79 @@
}
}
// 仓库文件列表
.repository.file.list {
#repo-files-table {
// 头部最后一次提交
.repo-file-line {
padding-right: 16px;
&.parent-link {
gap: 0.5rem;
padding-left: 16px;
svg {
margin-right: 2px;
}
&:hover {
background-color: var(--color-box-header);
}
}
&.repo-file-last-commit {
height: 3.725rem;
.latest-commit {
.commit-summary {
color: #9198a1;
}
img.tw-align-middle {
margin-top: -1px;
margin-left: 1px;
margin-right: 8px !important;
}
.author-wrapper {
margin-right: 6px;
&:hover {
color: var(--color-text);
}
}
.ui.sha.label {
display: none;
}
}
}
}
// 文件列表
.repo-file-item {
.repo-file-cell {
&.name {
display: flex;
align-items: center;
gap: 0.5rem;
padding-left: 16px;
}
&.age {
padding-right: 16px;
}
}
.svg.octicon-file-directory-fill,
.svg.octicon-file-submodule {
color: #7d8590;
}
// 整行背景颜色效果
&:hover .repo-file-cell {
background-color: var(--color-box-header) !important;
}
}
}
}
@@ -182,6 +250,38 @@
}
}
// 手机下隐藏提交信息
@media (max-width: 767.98px) {
#repo-files-table {
grid-template-columns: 1fr auto;
.repo-file-line {
grid-column: 1 / span 2;
}
.repo-file-cell {
&.name {
max-width: none;
}
&.message {
display: none;
}
}
}
}
// 仓库代码布局调整, 侧边栏宽度调整
.repo-grid-filelist-sidebar {
grid-template-columns: auto 296px;
}
@media (max-width: 767.98px) {
.repo-grid-filelist-sidebar {
grid-template-columns: 100%;
}
}
// 仓库代码页面侧边栏
.page-content.repository {
.repo-home-sidebar-top {
@@ -193,6 +293,7 @@
.flex-item-title {
margin-top: 2px;
}
.flex-item-body {
padding: 8px 0;
@@ -247,7 +348,7 @@
.flex-item-icon {
svg.svg.octicon-tag {
color: #3fb950;
margin-top: 3px;
margin-top: 2px;
}
}

View File

@@ -1,21 +1,4 @@
// Made by Luting ^-^
:root :lang(zh-CN) {
--fonts-override: 'Maple Hand', 'VictorMono NF', 'VictorMono Nerd Font';
}
.job-step-logs {
font-family: 'ui-monospace', 'SFMono-Regular', 'SF Mono', 'Menlo', 'Consolas', 'Liberation Mono', 'monospace', 'Maple Hand' !important;
}
.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;
@@ -210,7 +193,7 @@
--color-light: #00000028;
--color-light-mimic-enabled: rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled)));
--color-light-border: #3d444d;
--color-hover: #1e242a;
--color-hover: #656c7633;
--color-active: #161a21;
--color-menu: #0d1117;
--color-card: #0d1117;

View File

@@ -31,7 +31,6 @@
.item,
.item > summary {
font-size: 1.1rem;
font-weight: 500;
background: unset;
padding: 6px 8px;
color: var(--color-white) !important;
@@ -41,6 +40,11 @@
background: unset;
}
.active.item,
.active.item > summary {
font-weight: 600;
}
.active.item:after {
@extend %active-item-after-style;
}
@@ -48,6 +52,7 @@
details {
&:has(.active.item) {
> summary {
font-weight: 600;
background: #161a21;
&:hover {
@@ -55,6 +60,10 @@
}
}
.active.item {
font-weight: 400;
}
&[open] {
> summary {
background: unset;
@@ -118,4 +127,46 @@
.ui.attached.segment.error {
border: 1px solid var(--color-error-border) !important;
}
input,
textarea,
.ui.input input,
.ui.form input:not([type]),
.ui.form select,
.ui.form textarea,
.ui.form input[type='date'],
.ui.form input[type='datetime-local'],
.ui.form input[type='email'],
.ui.form input[type='file'],
.ui.form input[type='number'],
.ui.form input[type='password'],
.ui.form input[type='search'],
.ui.form input[type='tel'],
.ui.form input[type='text'],
.ui.form input[type='time'],
.ui.form input[type='url'],
.ui.selection.dropdown {
background: var(--color-box-header);
}
.ui.form input:not([type]),
.ui.form select,
.ui.form textarea,
.ui.form input[type='date'],
.ui.form input[type='datetime-local'],
.ui.form input[type='email'],
.ui.form input[type='file'],
.ui.form input[type='number'],
.ui.form input[type='password'],
.ui.form input[type='search'],
.ui.form input[type='tel'],
.ui.form input[type='text'],
.ui.form input[type='time'],
.ui.form input[type='url'] {
padding: 7px 12px;
}
.ui.selection.dropdown {
padding: 7px 24px 7px 12px;
}
}

View File

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

View File

@@ -1,12 +0,0 @@
/* Made by Luting ^-^ */
// 独家秘制小主题
@use 'theme-github';
.repository {
#commits-table .text.right,
#repo-files-table .repo-file-cell.age,
#repo-files-table relative-time {
font-family: 'Maple Mono NF', 'Maple Hand';
font-weight: normal !important;
}
}

View File

@@ -6,12 +6,13 @@
@use 'transition'; // 添加过渡动画
@use 'modal'; // 弹窗
@use 'input'; // 输入框
@use 'repo'; // 仓库
@use 'button'; // 按钮
@use 'issue'; // 工单&拉取请求
@use 'dropdown'; // 下拉菜单
@use 'setting'; // 设置
@use 'label'; // 标签
@use 'dropdown'; // 下拉菜单
@use 'dashboard'; // 首页
@use 'repo'; // 仓库
@use 'issue'; // 工单&拉取请求
@use 'setting'; // 设置
@use 'release'; // 发布
@use 'actions'; // 操作
@use 'svg'; // svg

View File

@@ -2,7 +2,7 @@
@keyframes overlay-appear {
0% {
opacity: 0;
transform: translateY(-5%);
transform: translateY(-12px);
}
100% {
@@ -11,35 +11,14 @@
}
}
input,
textarea,
tr,
td,
button,
details summary,
#navbar .item,
.header-wrapper .ui.tabular.menu .item,
.job-step-summary,
.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]),
.clone-panel-tab .item,
.ui.form select,
.ui.form textarea,
.ui.form input[type='date'],
.ui.form input[type='datetime-local'],
.ui.form input[type='email'],
.ui.form input[type='file'],
.ui.form input[type='number'],
.ui.form input[type='password'],
.ui.form input[type='search'],
.ui.form input[type='tel'],
.ui.form input[type='text'],
.ui.form input[type='time'],
.ui.form input[type='url'],
.ui.label,
.ui.modal,
.ui.selection.dropdown,
@@ -50,11 +29,17 @@ details summary,
.ui.selection.active.dropdown:hover,
.ui.selection.active.dropdown .menu,
.ui.selection.active.dropdown:hover .menu,
.ui.button,
.ui.button:hover,
.ui.menu .item,
.ui.vertical.menu .header.item,
.ui.secondary.menu .item {
transition: 0.2s;
transition: 0.12s ease-out;
}
textarea,
.ui.form input,
.menu .item,
.ui.modal,
.job-step-summary,
.job-step-logs,
.job-brief-item {
animation: 200ms cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running overlay-appear;
}