Compare commits

...

27 Commits

Author SHA1 Message Date
lutinglt
174b643896 修复克隆面板按钮弹跳&统一标签风格 2025-02-06 10:47:49 +08:00
lutinglt
e0080279f9 优化 Action 日志左侧栏宽度 2025-01-14 21:34:29 +08:00
lutinglt
ca8ab147dd 修复侧边栏协议对齐&截图更新 2025-01-14 11:35:41 +08:00
lutinglt
8f80e88ebb Actions 工作流日志页面样式同步 2025-01-14 11:09:47 +08:00
lutinglt
5e8475ab35 action日志hover效果 2025-01-13 21:02:51 +08:00
lutinglt
bc96ec111e Actions日志字体与GitHub相同 2025-01-13 20:42:44 +08:00
lutinglt
532970323a GitHub避免滚动条出现导致元素位移的小妙招 2025-01-13 20:27:02 +08:00
lutinglt
e1d1a2d0f9 Actions和菜单项同步 2025-01-13 20:15:50 +08:00
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
18 changed files with 423 additions and 104 deletions

7
.github/release-template.md vendored Normal file
View File

@@ -0,0 +1,7 @@
## 🌈 Style
#### 更符合 GitHub 风格
## 🎈 Perf
## 🐞 Fix

14
.github/release.md vendored
View File

@@ -1 +1,13 @@
仓库编程语言字体颜色同步 Github ## 🌈 Style
#### 更符合 GitHub 风格
## 🎈 Perf
- 优化 Action 日志左侧栏宽度 `Gitea 会显示运行时长, 留给作业名称足够的长度`
## 🐞 Fix
- 修复侧边栏协议对齐
- 修复克隆面板按钮弹跳
- 修复仓库/用户/组织标签风格不统一

View File

@@ -2,16 +2,13 @@
尽量保持与 GitHub Dark 相同样式的 Gitea 主题 尽量保持与 GitHub Dark 相同样式的 Gitea 主题
主题说明:
添加了短暂的过渡动画优化体验(与 Github clone 下拉列表动画一致) ### 主题说明
添加了短暂的过渡动画优化体验(与 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`, 需要系统包含相应字体, 否则使用默认字体) 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 相比其他等宽字体更为紧凑, 可以减少换行
## 安装 ## 安装
1. 在发布页下载最新的 `theme-github.css` 放入 `gitea/public/assets/css` 目录下 1. 在发布页下载最新的 `theme-github.css` 放入 `gitea/public/assets/css` 目录下
@@ -58,8 +55,6 @@ THEMES = gitea-dark, github
![Action](screenshots/action.png) ![Action](screenshots/action.png)
![Action Step](screenshots/step.png)
![Dispatch](screenshots/dispatch.png) ![Dispatch](screenshots/dispatch.png)
## 构建 ## 构建

View File

@@ -6,6 +6,7 @@
"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", "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" "watch": "npm run build -- --watch"
}, },
"repository": { "repository": {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 433 KiB

After

Width:  |  Height:  |  Size: 343 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 470 KiB

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 KiB

View File

@@ -1,37 +1,150 @@
// Made by Luting ^-^ // 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 { svg.octicon-git-branch {
color: var(--color-console-fg); margin-right: 6px;
} }
} }
}
.job-brief-item {
position: relative; .ui.container.action-view-container {
border-radius: 0.5rem !important; width: auto;
max-width: 100%;
&:hover { padding: 0 24px 0 16px;
background-color: var(--color-hover) !important;
} .action-view-header {
margin-top: 20px;
&.selected {
background-color: #161a21 !important; .action-info-summary {
margin-left: 14px;
&:after { }
overflow: visible;
background: #1f6feb; .action-commit-summary {
border-radius: 0.375rem; margin-left: 28+14px;
content: ''; }
height: 1.8rem; }
left: calc(0rem * -1); }
position: absolute;
top: calc(50% - 13px); .action-view-left.action-view-left {
width: 0.25rem; width: 16.5%;
}
.action-view-right.action-view-right {
width: 83.5%;
}
@media (max-width: 767.98px) {
.action-view-left.action-view-left,
.action-view-right.action-view-right {
width: 100%;
}
}
.action-view-left {
margin-top: 16px;
margin-right: 28px;
border-top: 1px solid #2f353d;
&:before {
content: 'Jobs';
color: #9198a1;
font-size: 12px;
font-weight: 600;
position: relative;
display: inline-block;
margin-top: 22px;
top: -8px;
left: 15px;
}
.job-group-section {
padding-right: 8px;
padding-bottom: 8px;
border-bottom: 1px solid #2f353d;
.job-brief-item {
border-radius: 0.5rem !important;
padding: 8px;
position: relative;
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: 24px;
left: calc(0.5rem * -1);
position: absolute;
top: calc(50% - 12px);
width: 4px;
}
}
}
}
}
.action-view-right {
margin-top: 16px;
min-height: calc(100vh - 245px);
.job-info-header {
padding: 16px 12px 16px 24px;
height: auto;
}
.job-step-container {
.job-step-summary {
color: var(--color-console-fg-subtle);
padding: 8px 10px;
&.step-expandable:hover {
color: var(--color-console-fg-subtle);
}
.tw-mr-2:not(.svg) svg.svg {
margin: 1.5px 6px 0px 2px;
}
svg.svg.text.green {
color: #9198a1 !important;
}
&.selected {
color: var(--color-console-fg) !important;
background-color: var(--color-console-active-bg) !important;
svg.svg.text.green {
color: #f0f6fc !important;
}
}
}
.job-log-line {
color: #f0f6fc;
.log-msg:hover * {
color: #f0f6fc !important;
}
} }
} }
} }

View File

@@ -14,7 +14,7 @@
// clone 下拉菜单 // clone 下拉菜单
.tippy-box { .tippy-box {
margin-top: -6px; margin-top: -3px;
background: var(--color-box-header); background: var(--color-box-header);
border-radius: 12px; border-radius: 12px;
overflow: hidden; overflow: hidden;
@@ -36,10 +36,11 @@
button { button {
padding: 15px 12px; padding: 15px 12px;
transition: none;
} }
.active { .item.active {
border-color: #f78166; border-bottom: 2px solid #f78166;
} }
} }
@@ -111,6 +112,8 @@
.ui.dropdown > .visible.menu .scrolling.menu, .ui.dropdown > .visible.menu .scrolling.menu,
.ui.button.dropdown .menu { .ui.button.dropdown .menu {
.item { .item {
display: flex;
align-items: center;
border-radius: var(--border-radius); border-radius: var(--border-radius);
margin: 0 8px; margin: 0 8px;
@@ -126,32 +129,51 @@
} }
} }
// 分支菜单下划线 .ui.dropdown.branch-selector-dropdown > .visible.menu {
.ui.dropdown > .visible.menu .scrolling.menu .item { // 仓库分支列表下查看操作按钮
&:before { > .item {
content: ' '; display: flex;
display: block; align-items: center;
position: absolute; border-radius: var(--border-radius);
width: 100%; margin: 8px;
top: 0px; padding: 6px 8px !important;
left: 0px;
border-width: 1px 0px 0px;
border-style: solid;
border-image: initial;
border-color: #3d444db3;
} }
&:first-of-type:before { .scrolling.menu .item {
border-color: transparent; padding: 6px 16px !important;
}
&:hover { // 分支菜单下划线
&:before { &: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; border-color: transparent;
} }
+ :before { &:hover {
border-color: transparent; &:before {
border-color: transparent;
}
+ :before {
border-color: transparent;
}
}
.ui.label {
margin-top: 1px;
margin-left: auto;
margin-right: 0;
} }
} }
} }

View File

@@ -9,14 +9,12 @@ a.ui.basic.label:hover {
border-color: var(--color-light-border); border-color: var(--color-light-border);
} }
.ui.basic.label.not-mobile, span,
.ui.basic.label.role-label, .secondary-nav .org-visibility div {
.page-content.dashboard.feeds .ui.basic.label, &.ui.basic.label {
.page-content.explore .ui.basic.label, border-radius: 25px;
.page-content.organization .ui.basic.label, background-color: unset;
.admin-setting-content .ui.basic.label { }
border-radius: 25px;
background-color: unset;
} }
.badge.tw-bg-green, .badge.tw-bg-green,

View File

@@ -1,7 +1,50 @@
// Made by Luting ^-^ // Made by Luting ^-^
.page-content.repository.releases { .page-content.repository.releases {
svg.tw-mr-1.svg.octicon-tag { #release-list .release-entry {
color: #3fb950; .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 { .ui.small.primary.button {

View File

@@ -1,14 +1,4 @@
// Made by Luting ^-^ // Made by Luting ^-^
/* 用户仓库列表字体颜色 */
/* .repo-list-link {
color: var(--color-blue) !important;
} */
/* 头部 */
/* #navbar {
border-bottom: 0;
} */
.page-content > :first-child.secondary-nav { .page-content > :first-child.secondary-nav {
border-top: 0; border-top: 0;
background-color: var(--color-nav-bg) !important; background-color: var(--color-nav-bg) !important;
@@ -51,7 +41,7 @@
} }
&.muted:not(.tw-font-normal) { &.muted:not(.tw-font-normal) {
font-weight: bold; font-weight: 600;
} }
} }
} }
@@ -102,15 +92,25 @@
// 仓库文件&提交列表 // 仓库文件&提交列表
.page-content.repository { .page-content.repository {
// 顶部提交, 标签, 分支
.repository-summary .segment.sub-menu {
&.ui.segment {
background-color: var(--color-box-header);
}
.item {
color: #9198a1;
b {
color: #f0f6fc;
margin: 0 2px;
}
}
}
// clone 按钮居中调整 // clone 按钮居中调整
.repo-button-row .repo-button-row-right .ui.primary.button span { .repo-button-row .repo-button-row-right .ui.primary.button span {
display: flex; margin: 0px 3px;
align-items: center;
justify-content: center;
svg {
margin-right: 0.5rem;
}
} }
.repo-file-line { .repo-file-line {
@@ -182,7 +182,110 @@
} }
} }
// 编程语言仅语言文字颜色 // 仓库代码页面侧边栏
.language-stats-details .item .tw-font-semibold { .page-content.repository {
color: #f0f6fc; .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,
&.octicon-law {
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

@@ -4,8 +4,7 @@
} }
.job-step-logs { .job-step-logs {
font-family: 'VictorMono NF', 'VictorMono Nerd Font', 'Maple Hand' !important; font-family: 'ui-monospace', 'SFMono-Regular', 'SF Mono', 'Menlo', 'Consolas', 'Liberation Mono', 'monospace', 'Maple Hand' !important;
font-weight: 500;
} }
.repository { .repository {
@@ -145,8 +144,8 @@
--color-console-fg-subtle: #9198a1; --color-console-fg-subtle: #9198a1;
--color-console-bg: #010409; --color-console-bg: #010409;
--color-console-border: #2b3139; --color-console-border: #2b3139;
--color-console-active-bg: var(--color-active); --color-console-active-bg: #2a313c;
--color-console-hover-bg: var(--color-hover); --color-console-hover-bg: #15191f;
--color-console-menu-bg: var(--color-body); --color-console-menu-bg: var(--color-body);
--color-console-menu-border: var(--color-light-border); --color-console-menu-border: var(--color-light-border);
--color-grey: #505665; --color-grey: #505665;
@@ -211,8 +210,8 @@
--color-light: #00000028; --color-light: #00000028;
--color-light-mimic-enabled: rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled))); --color-light-mimic-enabled: rgba(0, 0, 0, calc(40 / 255 * 222 / 255 / var(--opacity-disabled)));
--color-light-border: #3d444d; --color-light-border: #3d444d;
--color-hover: #252c34; --color-hover: #1e242a;
--color-active: #2a313c; --color-active: #161a21;
--color-menu: #0d1117; --color-menu: #0d1117;
--color-card: #0d1117; --color-card: #0d1117;
--color-markup-table-row: #ffffff06; --color-markup-table-row: #ffffff06;

View File

@@ -5,11 +5,11 @@
background: #1f6feb; background: #1f6feb;
border-radius: 0.375rem; border-radius: 0.375rem;
content: ''; content: '';
height: 1.8rem; height: 24px;
left: calc(0.5rem * -1); left: calc(0.5rem * -1);
position: absolute; position: absolute;
top: calc(50% - 13px); top: calc(50% - 12px);
width: 0.25rem; width: 4px;
} }
.ui.vertical.menu { .ui.vertical.menu {
@@ -33,7 +33,7 @@
font-size: 1.1rem; font-size: 1.1rem;
font-weight: 500; font-weight: 500;
background: unset; background: unset;
padding: 8px; padding: 6px 8px;
color: var(--color-white) !important; color: var(--color-white) !important;
} }

12
src/theme-github-my.scss Normal file
View File

@@ -0,0 +1,12 @@
/* 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

@@ -1,4 +1,16 @@
// Made by Luting ^-^ // Made by Luting ^-^
@keyframes overlay-appear {
0% {
opacity: 0;
transform: translateY(-5%);
}
100% {
opacity: 1;
transform: translateY(0);
}
}
input, input,
textarea, textarea,
tr, tr,
@@ -8,7 +20,7 @@ details summary,
#navbar .item, #navbar .item,
.header-wrapper .ui.tabular.menu .item, .header-wrapper .ui.tabular.menu .item,
.job-step-summary, .job-step-summary,
.job-log-line, .job-step-logs,
.job-brief-item, .job-brief-item,
.menu .item, .menu .item,
.page-content.repository .flex-item .flex-item-title a, .page-content.repository .flex-item .flex-item-title a,
@@ -29,6 +41,7 @@ details summary,
.ui.form input[type='time'], .ui.form input[type='time'],
.ui.form input[type='url'], .ui.form input[type='url'],
.ui.label, .ui.label,
.ui.modal,
.ui.selection.dropdown, .ui.selection.dropdown,
.ui.checkbox label:before, .ui.checkbox label:before,
.ui.checkbox input:checked ~ label:before, .ui.checkbox input:checked ~ label:before,
@@ -43,4 +56,5 @@ details summary,
.ui.vertical.menu .header.item, .ui.vertical.menu .header.item,
.ui.secondary.menu .item { .ui.secondary.menu .item {
transition: 0.2s; transition: 0.2s;
animation: 200ms cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running overlay-appear;
} }