import { css, otherThemeVars, themeVars } from "src/types/vars"; import { activeItemAfterStyle } from "styles/public/menu"; // 工单&PR 列表 export const issueList = css` // 仓库页面的里程碑列表菜单栏 .page-content.repository.milestones, .page-content.repository.issue-list { // 头部筛选菜单栏 .issue-list-toolbar { align-items: center; align-content: center; background-color: ${themeVars.color.box.header}; border: 1px solid ${themeVars.color.light.border}; border-bottom: 0; border-top-left-radius: ${otherThemeVars.border.radius}; border-top-right-radius: ${otherThemeVars.border.radius}; height: 48px; padding: 8px; .issue-list-toolbar-left { // 复选框 input { margin: 0 8px !important; } > .ui.compact.menu { align-items: center; border: 0; > .item { background: unset !important; border-radius: ${otherThemeVars.border.radius}; color: ${themeVars.color.text.light.num1}; padding: 0px 8px; height: 30px; &:before { display: none; } &:hover { background: ${themeVars.github.control.transparent.bgColor.hover} !important; } &.active { color: ${themeVars.color.text.self}; font-weight: 700; } } } } .issue-list-toolbar-right > .ui.menu { align-items: center; > .item { color: ${themeVars.color.text.light.num1}; } > .ui.button { padding: 0 12px; height: 32px; } } } } // Issue 列表 .page-content.repository.issue-list .flex-list#issue-list { border: 1px solid ${themeVars.color.light.border}; border-bottom-left-radius: ${otherThemeVars.border.radius}; border-bottom-right-radius: ${otherThemeVars.border.radius}; > .flex-item { align-items: center; padding: 0; &:last-child { border-bottom-left-radius: ${otherThemeVars.border.radius}; border-bottom-right-radius: ${otherThemeVars.border.radius}; } &:hover { background-color: ${themeVars.color.hover.opaque}; } > .flex-item-icon { display: flex; gap: 4px; margin-left: 8px; // 复选框 input { background: unset; margin-top: 14px; margin-left: 8px; margin-right: 8px !important; } svg { margin-top: 14px; } } > .flex-item-main { gap: 4px; .flex-item-header { padding-top: 8px; } .flex-item-body { font-size: 12px; padding-bottom: 8px; } } > .flex-item-trailing { margin-right: 32px; } } } // 里程碑列表 .page-content.repository.milestones .milestone-list { border: 1px solid ${themeVars.color.light.border}; border-bottom-left-radius: ${otherThemeVars.border.radius}; border-bottom-right-radius: ${otherThemeVars.border.radius}; .milestone-card { padding: 8px 16px 10px 16px; .milestone-header { h3 { font-size: 16px; font-weight: 500; } div span { font-size: 14px; font-weight: 600; } } } .milestone-toolbar { font-size: 12px; .group > a { font-size: 13px; } } } `; // 避免手机/平板下菜单错位 export const issueListMobile = css` @media (max-width: 1023.98px) { .page-content.repository.issue-list .issue-list-toolbar { height: auto; } } `; export const button = css` .issue-content-left .field.footer { // 关闭工单按钮 .ui.red.basic.button#status-button { color: ${themeVars.github.fgColor.done}; background-color: ${themeVars.color.button}; border-color: ${themeVars.color.light.border}; &:hover { background-color: ${themeVars.color.hover.self}; } } // 重新开启按钮 .ui.basic.primary.button#status-button { color: ${themeVars.github.fgColor.success}; } } // 工单&PR标题右侧按钮 .repository.view.issue .issue-title-buttons > .ui.button { padding: 0 12px; height: 32px; } `; export const babel = css` .issue-content-left { .badge { // 时间线打开状态标签 &.tw-bg-green { background-color: ${themeVars.github.bgColor.success.emphasis} !important; } // 时间线关闭状态标签 &.tw-bg-red { background-color: ${themeVars.github.bgColor.done.emphasis} !important; } // 时间线合并状态标签 &.tw-bg-purple { background-color: ${themeVars.github.bgColor.done.emphasis} !important; } } } // 工单&PR状态标签 .ui.label.issue-state-label { border-radius: 25px !important; &.green { color: ${themeVars.color.white} !important; background-color: ${themeVars.github.bgColor.success.emphasis} !important; border-color: ${themeVars.github.bgColor.success.emphasis} !important; } &.red { color: ${themeVars.color.white} !important; background-color: ${themeVars.github.bgColor.done.emphasis} !important; border-color: ${themeVars.github.bgColor.done.emphasis} !important; } &.purple { color: ${themeVars.color.white} !important; background-color: ${themeVars.github.bgColor.done.emphasis} !important; border-color: ${themeVars.github.bgColor.done.emphasis} !important; } } `; // PR 分支标签 export const prBranch = css` .repository.view.issue .pull-desc code, #issue-list .flex-item-body .branches .branch { color: ${themeVars.github.fgColor.accent}; background-color: ${themeVars.github.bgColor.accent.muted}; border-radius: ${otherThemeVars.border.radius}; font-family: var(--fontStack-monospace, ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, monospace); font-size: 12px; padding: 0 5px; line-height: 20px; } .repository.view.issue .pull-desc code { padding-top: 3px; padding-bottom: 3px; a:hover { text-decoration-line: none; } } `; // 评论 export const comment = css` .comment .comment-container { // 去除评论标题左侧指向头像的小箭头 .comment-header, &:target .comment-header { &:before, &:after { display: none; } } // 评论焦点样式 &:target { .comment-container { border-color: ${themeVars.github.borderColor.accent.emphasis} !important; box-shadow: 0 0 0 1px ${themeVars.color.primary.self} !important; } } .comment-header { padding: 4px 4px 4px 16px; min-height: 38px; } .comment-header-right { > .item, > .label { color: ${themeVars.color.text.light.num1}; } > .ui.label { background-color: initial; font-size: 12px; height: 20px; padding: 0 6px; } // 隐藏顶部菜单的表情按钮 // 无法使用此样式, 评论无表情时底部的表情按钮元素不会渲染, 这是一个先有鸡还是先有蛋的问题 // 很蛋疼, 希望 Gitea 早日使用 Github 的样式, 因为 Github 的更合理, 无论是操作的方便程度还是按钮的冗余度 // .ui.dropdown.action.select-reaction { // display: none; // } .context-dropdown { a.context-menu { display: flex; align-items: center; } // 评论菜单的删除按钮 .menu .item.delete-comment { color: ${themeVars.color.red.self}; &:hover { background-color: ${themeVars.color.red.badge.bg} !important; color: ${themeVars.color.red.light}; } } } } // 表情菜单按钮头部+底部 .ui.dropdown.action.select-reaction > a { display: flex; align-items: center; justify-content: center; background: ${themeVars.color.button}; border-radius: 25px; border: 1px solid ${themeVars.color.light.border}; color: ${themeVars.color.text.light.num1}; padding: 0px 8px !important; height: 28px; width: 28px; } // 底部表情栏 .bottom-reactions { .ui.ui.ui.label { background-color: unset !important; border-radius: 25px; border-color: ${themeVars.color.light.border}; &:hover { background-color: ${themeVars.color.reaction.hoverBg} !important; border-color: ${themeVars.color.light.border}; } .reaction { font-size: 12px; } .reaction-count { color: ${themeVars.color.text.light.self}; font-weight: 500; margin-left: 0; } } // 显示表情菜单按钮 .select-reaction { padding: 0; // 两个表情按钮看着怪怪的, 很难受 // visibility: visible; } } } `; export const dropdown = css` .repository { // Issue/PR 列表下的所有筛选菜单 &.issue-list .ui.dropdown .menu, .ui.menu .ui.dropdown .menu, // Issue/PR 详情下的右侧的上半部分选项菜单 &.issue.view .issue-content-right .ui.dropdown .scrolling.menu { .item:hover:after { content: ""; ${activeItemAfterStyle} } } } `; // PR 界面的 PR 操作评论 export const prMerge = css` .repository.view.issue .comment-list .timeline-item.pull-merge-box { // 头像 .timeline-avatar { color: ${themeVars.color.text.self} !important; border-radius: ${otherThemeVars.border.radius}; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; svg { width: 24px; height: 24px; } // 可以合并 &.green { background-color: ${themeVars.github.bgColor.success.emphasis}; // 操作评论边框色 + .content > .ui.attached.segment { border-left-color: ${themeVars.github.bgColor.success.emphasis}; border-right-color: ${themeVars.github.bgColor.success.emphasis}; &:first-child { border-top-color: ${themeVars.github.bgColor.success.emphasis}; } &:last-child { border-bottom-color: ${themeVars.github.bgColor.success.emphasis}; } } } // 已合并 &.purple { background-color: ${themeVars.github.bgColor.done.emphasis}; + .content > .ui.attached.segment { border-left-color: ${themeVars.github.bgColor.done.emphasis}; border-right-color: ${themeVars.github.bgColor.done.emphasis}; &:first-child { border-top-color: ${themeVars.github.bgColor.done.emphasis}; } &:last-child { border-bottom-color: ${themeVars.github.bgColor.done.emphasis}; } } } } // 检查状态 .commit-status-panel { .commit-status-header { background: ${themeVars.color.body}; padding: 16px; font-size: 16px; font-weight: 600; .ui.right { color: ${themeVars.color.text.light.num1}; font-size: 14px; font-weight: 400; } } // 检查状态列表 .commit-status-list { background: ${themeVars.color.menu}; .commit-status-item { border-radius: ${otherThemeVars.border.radius}; padding: 2px 8px; margin: 0px 8px; height: 37px; &:first-child { margin-top: 8px; } &:last-child { margin-bottom: 8px; } &:hover { background-color: ${themeVars.color.hover.opaque}; } } } } // 合并信息和操作 .merge-section { color: ${themeVars.color.text.light.num1}; padding: 16px; display: grid; gap: 8px; } } `; // 时间线 export const timeline = css` .repository.view.issue { .comment-list { .timeline-item, .timeline-item-group { padding: 16px 0; // 事件 &.event { // 修复覆盖后的位置问题 padding-left: 15px; .avatar { width: 20px; height: 20px; } .badge { border: 2px solid ${themeVars.color.body}; } // 仅匹配只有 badge .badge:not([class*=" "]) { background-color: ${themeVars.github.control.bgColor.rest}; svg { color: ${themeVars.color.text.light.num1}; } } } // 提交 &.commits-list { // 每个提交之间的间隔 .flex-text-block { padding-top: 4px; } .badge svg { color: ${themeVars.color.text.light.num1}; } // 仅覆盖左侧 commit 不覆盖右侧 SHA a.muted { font-size: 12px; color: ${themeVars.color.text.light.num1}; text-decoration-line: underline; &:hover { color: ${themeVars.color.primary.self}; } } } } } } `; const sidebarPadding = { padding: "4px 8px", }; // 侧边栏 export const issueSidebar = css` .issue-content { gap: 24px; .issue-content-right { border: 0; font-size: 12px; padding: 0; .ui.button { font-size: 12px; } .ui.form, a.fixed-text.muted, span.text, // 列表项为空时的文字 span.item.empty-list, p { color: ${themeVars.color.text.light.num1}; font-size: 12px; } .ui.dropdown.select-branch, .ui.form, a.fixed-text.muted, span.text, .ui.watching > div, .ui.depending > div, .flex-text-block, .ui.list, p { ${sidebarPadding}; } .issue-sidebar-combo { .ui.dropdown > a.fixed-text.muted { align-items: center; border-radius: ${otherThemeVars.border.radius}; text-decoration-line: none; height: 28px; &:hover { background: ${themeVars.github.control.transparent.bgColor.hover}; } } .ui.list { margin-top: 0 !important; margin-bottom: 0 !important; } } // 时间追踪 > div:not([class]):not([id]) > .ui.dropdown.jump > a.fixed-text.muted { align-items: center; border-radius: ${otherThemeVars.border.radius}; text-decoration-line: none; height: 28px; &:hover { background: ${themeVars.github.control.transparent.bgColor.hover}; } } // 选中日期颜色 .ui.form .due-date { color: ${themeVars.color.text.self}; } .divider { margin: 12px 0 12px 8px; width: calc(100% - 16px); } // 订阅按钮 .ui.watching .ui.button { padding: 0px 8px; height: 28px; svg { margin: 0 !important; } } // PIN 按钮 .form-fetch-action.single-button-form .ui.button, // 底部操作按钮 .ui.show-modal.button { border: 0; background: unset; font-weight: 400; ${sidebarPadding}; // 好像是浏览器 BUG, 最后不生效, 必须 !important margin: 0 !important; justify-content: left; &:hover { background: ${themeVars.github.control.transparent.bgColor.hover}; } } .ui.show-modal.button[data-modal="#sidebar-delete-issue"] { color: ${themeVars.color.red.self}; svg { color: ${themeVars.color.red.self}; } &:hover { background-color: ${themeVars.color.red.badge.bg}; color: ${themeVars.color.red.light}; svg { color: ${themeVars.color.red.light}; } } } } } `;