first-commit

This commit is contained in:
2025-08-25 15:46:12 +08:00
commit f4d95dfff4
5665 changed files with 705359 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
/* only used by "repo/empty.tmpl" */
.clone-buttons-combo {
display: flex;
align-items: stretch;
flex: 1;
}
.clone-buttons-combo > .ui.button:not(:last-child) {
border-right: none;
}
.ui.action.input.clone-buttons-combo input {
border-radius: 0; /* override fomantic border-radius for ".ui.input > input" */
}
/* used by the clone-panel popup */
.clone-panel-field,
.clone-panel-list {
margin: 10px;
}
.clone-panel-tab .item {
padding: 5px 10px;
background: none;
color: var(--color-text-light-2);
}
.clone-panel-tab .item.active {
color: var(--color-text-dark);
border-bottom: 3px solid currentcolor;
}
.clone-panel-tab + .divider {
margin: -1px 0 0;
}
.clone-panel-list .item {
margin: 5px 0;
}

View File

@@ -0,0 +1,61 @@
.ui.label.commit-id-short,
.ui.label.commit-sign-badge {
border: 1px solid var(--color-light-border);
font-size: 13px;
font-weight: var(--font-weight-normal);
padding: 3px 5px;
flex-shrink: 0;
}
.ui.label.commit-id-short {
font-family: var(--fonts-monospace);
height: 24px;
}
.ui.label.commit-id-short > .commit-sign-badge {
margin: 0;
padding: 0;
border: 0 !important;
border-radius: 0;
background: transparent !important;
}
.ui.label.commit-id-short > .commit-sign-badge:hover {
background: transparent !important;
}
.commit-is-signed.sign-trusted {
border: 1px solid var(--color-green-badge) !important;
background: var(--color-green-badge-bg) !important;
}
.commit-is-signed.sign-trusted:hover {
background: var(--color-green-badge-hover-bg) !important;
}
.commit-is-signed.sign-untrusted {
border: 1px solid var(--color-yellow-badge) !important;
background: var(--color-yellow-badge-bg) !important;
}
.commit-is-signed.sign-untrusted:hover {
background: var(--color-yellow-badge-hover-bg) !important;
}
.commit-is-signed.sign-unmatched {
border: 1px solid var(--color-orange-badge) !important;
background: var(--color-orange-badge-bg) !important;
}
.commit-is-signed.sign-unmatched:hover {
background: var(--color-orange-badge-hover-bg) !important;
}
.commit-is-signed.sign-warning {
border: 1px solid var(--color-red-badge) !important;
background: var(--color-red-badge-bg) !important;
}
.commit-is-signed.sign-warning:hover {
background: var(--color-red-badge-hover-bg) !important;
}

View File

@@ -0,0 +1,92 @@
.file-view tr.active .lines-num,
.file-view tr.active .lines-escape,
.file-view tr.active .lines-code {
background: var(--color-highlight-bg);
}
/* set correct border radius on the last active lines, to avoid border overflow */
.file-view tr.active:last-of-type .lines-code {
border-bottom-right-radius: var(--border-radius);
}
.file-view tr.active .lines-num {
position: relative;
}
/* add a darker "handler" at the beginning of the active line */
.file-view tr.active .lines-num::before {
content: "";
position: absolute;
left: 0;
width: 2px;
height: 100%;
background: var(--color-highlight-fg);
}
.file-view .file-not-rendered-prompt {
padding: 1rem;
text-align: center;
font-size: 1rem !important; /* use consistent styles for various containers (code, markup, etc) */
line-height: var(--line-height-default) !important; /* same as above */
}
/* ".code-view" is always used with ".file-view", to show the code of a file */
.file-view.code-view {
background: var(--color-code-bg);
border-radius: var(--border-radius);
}
.file-view.code-view table {
width: 100%;
}
.file-view.code-view .lines-num span::after {
cursor: pointer;
}
.file-view.code-view .lines-num:hover {
color: var(--color-text-dark);
}
.file-view.code-view .ui.button.code-line-button {
border: 1px solid var(--color-secondary);
padding: 1px 4px;
margin: 0;
min-height: 0;
position: absolute;
left: 6px;
}
.file-view.code-view .ui.button.code-line-button:hover {
background: var(--color-secondary);
}
.view-raw {
display: flex;
justify-content: center;
}
.view-raw > * {
max-width: 100%;
}
.view-raw audio,
.view-raw video,
.view-raw img {
margin: 1rem;
border-radius: 0;
object-fit: contain;
}
.view-raw img[src$=".svg" i] {
max-height: 600px !important;
max-width: 600px !important;
}
.file-view-render-container {
width: 100%;
}
.file-view-render-container :last-child {
border-radius: 0 0 var(--border-radius) var(--border-radius); /* to match the "ui segment" bottom radius */
}

View File

@@ -0,0 +1,29 @@
.repository .secondary-nav {
padding-top: 12px;
}
.repository .secondary-nav .fork-flag {
margin-top: 0.5rem;
font-size: 12px;
}
.repo-header {
display: flex;
flex-flow: row wrap;
justify-content: space-between;
gap: 0.5rem;
margin-bottom: 4px;
}
.repo-header .flex-item {
padding: 0;
}
.repo-header .flex-item-main {
flex: 0;
flex-basis: unset;
}
.repo-header .flex-item-trailing {
flex-wrap: nowrap;
}

View File

@@ -0,0 +1,94 @@
#repo-files-table {
width: 100%;
display: grid;
grid-template-columns: 2fr 3fr auto;
border: 1px solid var(--color-secondary);
background: var(--color-box-body);
border-radius: var(--border-radius);
margin: 10px 0; /* match the "clone-panel-popup" margin to avoid "visual double-border" */
}
@media (max-width: 767.98px) {
#repo-files-table {
grid-template-columns: auto 1fr auto;
}
}
#repo-files-table .repo-file-item {
display: contents;
}
#repo-files-table .repo-file-item:hover > .repo-file-cell,
#repo-files-table .parent-link:hover {
background: var(--color-hover-opaque);
}
#repo-files-table .repo-file-line,
#repo-files-table .repo-file-cell {
border-top: 1px solid var(--color-secondary);
padding: 8px 10px;
}
#repo-files-table .repo-file-line:first-child {
border-top: none;
border-radius: var(--border-radius) var(--border-radius) 0 0;
}
#repo-files-table .repo-file-item:last-child .repo-file-cell:first-child {
border-bottom-left-radius: calc(var(--border-radius) - 1px);
}
#repo-files-table .repo-file-item:last-child .repo-file-cell:last-child {
border-bottom-right-radius: calc(var(--border-radius) - 1px);
}
#repo-files-table .repo-file-line {
grid-column: 1 / span 3;
display: flex;
align-items: center;
gap: 0.5em;
}
#repo-files-table .repo-file-last-commit {
min-width: 0; /* otherwise the flex axis is not limited and the text might overflow in Pale Moon */
background: var(--color-box-header);
}
#repo-files-table .repo-file-cell.name {
display: flex;
align-items: center;
gap: 0.5em;
overflow: hidden;
}
#repo-files-table .repo-file-cell.name > a,
#repo-files-table .repo-file-cell.name > span {
flex-shrink: 0;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
#repo-files-table .repo-file-cell.name .entry-name {
flex-shrink: 1;
min-width: 1ch; /* leave about one letter space when shrinking, need to fine tune the "shrinks" in this grid in the future */
}
@media (max-width: 767.98px) {
#repo-files-table .repo-file-cell.name {
max-width: 35vw;
}
}
#repo-files-table .repo-file-cell.message {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
color: var(--color-text-light-1);
}
#repo-files-table .repo-file-cell.age {
text-align: right;
white-space: nowrap;
color: var(--color-text-light-1);
}

99
web_src/css/repo/home.css Normal file
View File

@@ -0,0 +1,99 @@
.repo-grid-filelist-sidebar {
display: grid;
grid-template-columns: auto 280px;
grid-template-rows: auto auto 1fr;
gap: var(--page-spacing);
}
.repo-home-filelist {
min-width: 0;
grid-column: 1;
grid-row: 1 / 4;
}
.repo-home-sidebar-top {
grid-column: 2;
grid-row: 1;
}
.repo-home-sidebar-bottom {
grid-column: 2;
grid-row: 2;
}
.repo-home-sidebar-bottom .flex-list > :first-child {
border-top: 1px solid var(--color-secondary); /* same to .flex-list > .flex-item + .flex-item */
}
@media (max-width: 767.98px) {
.repo-grid-filelist-sidebar {
grid-template-columns: 100%;
grid-template-rows: auto auto auto;
}
.repo-home-filelist {
grid-column: 1;
grid-row: 2;
}
.repo-home-sidebar-top {
grid-column: 1;
grid-row: 1;
padding-left: 0;
}
.repo-home-sidebar-bottom {
grid-column: 1;
grid-row: 3;
padding-left: 0;
}
.repo-home-sidebar-bottom .flex-list > :first-child {
border-top: 0;
}
}
.repo-view-container {
display: flex;
gap: var(--page-spacing);
}
.repo-view-container .repo-view-file-tree-container {
flex: 0 0 15%;
min-width: 0;
max-height: 100vh;
position: sticky;
top: 0;
bottom: 0;
height: 100%;
overflow-y: hidden;
}
.repo-view-content {
flex: 1;
min-width: 0;
}
.language-stats {
display: flex;
gap: 2px;
padding: 0;
height: 10px;
white-space: nowrap;
border-radius: 5px;
overflow: hidden;
width: 100%;
margin-top: 1rem;
margin-bottom: 5px;
}
.language-stats-details {
display: flex;
flex-wrap: wrap;
}
.language-stats-details .item {
height: 30px;
display: flex;
align-items: center;
justify-content: center;
gap: 0.25em;
padding: 0 0.5em; /* make the UI look better for narrow (mobile) view */
text-decoration: none;
}

View File

@@ -0,0 +1,44 @@
.issue-card {
display: flex;
flex-direction: column;
gap: 4px;
align-items: stretch;
border-radius: var(--border-radius);
padding: 8px 10px;
border: 1px solid var(--color-secondary);
background: var(--color-card);
color: var(--color-text); /* it can't inherit from parent because the card already has its own background */
}
.issue-card-icon,
.issue-card-unpin {
margin-top: 1px;
flex-shrink: 0;
}
.issue-card-title {
flex: 1;
font-size: 14px;
}
.issue-card.sortable-chosen .issue-card-title {
cursor: inherit;
}
.issue-card-bottom {
display: flex;
width: 100%;
justify-content: space-between;
gap: 1em;
}
.issue-card-bottom-part {
display: flex;
flex: 1;
align-items: center;
gap: 0.25em;
flex-wrap: wrap;
overflow: hidden;
max-width: fit-content;
max-height: fit-content;
}

View File

@@ -0,0 +1,58 @@
.issue-label-list {
list-style: none;
padding: 0;
margin: 0;
}
.issue-label-list > .item {
border-bottom: 1px solid var(--color-secondary);
display: flex;
padding: 1em 0;
margin: 0;
}
.issue-label-list > .item:first-child {
padding-top: 0;
}
.issue-label-list > .item:last-child {
border-bottom: none;
padding-bottom: 0;
}
.issue-label-list > .item .label-title {
width: 33%;
padding-right: 1em;
}
.issue-label-list > .item .label-issues {
width: 33%;
padding-right: 1em;
}
.issue-label-list > .item .label-operation {
width: 33%;
display: flex;
flex-wrap: wrap;
gap: 0.5em;
justify-content: end;
align-items: center;
}
.issue-label-list > .item .label-operation a {
font-size: 12px;
}
.issue-label-list > .item.org-label {
opacity: 0.7;
}
.label-operation .label {
height: fit-content;
}
.archived-label-hint {
position: absolute;
top: 10px;
right: 5px;
}

View File

@@ -0,0 +1,93 @@
.issue-list-toolbar {
display: flex;
flex-wrap: wrap-reverse;
justify-content: space-between;
align-items: flex-start;
gap: 1rem;
margin-top: 1rem;
}
.issue-list-toolbar-left {
display: flex;
align-items: center;
}
.issue-list-toolbar-right .filter.menu {
flex-direction: row;
flex-wrap: wrap;
}
@media (max-width: 767.98px) {
.issue-list-toolbar-right .dropdown .menu {
left: auto !important;
right: auto !important;
}
.issue-list-navbar {
order: 0;
}
.issue-list-new {
order: 1;
margin-left: auto !important;
}
.issue-list-search {
order: 2 !important;
}
}
#issue-list .flex-item-body .branches {
display: inline-flex;
}
#issue-list .flex-item-body .branches .branch {
background-color: var(--color-secondary-alpha-50);
border-radius: var(--border-radius);
padding: 0 4px;
}
#issue-list .flex-item-body .branches .truncated-name {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
max-width: 200px;
display: inline-block;
vertical-align: top;
}
#issue-list .flex-item-body .checklist progress {
margin-left: 2px;
width: 80px;
height: 6px;
display: inline-block;
}
#issue-list .flex-item-body .checklist progress::-webkit-progress-value {
background-color: var(--color-secondary-dark-4);
}
#issue-list .flex-item-body .checklist progress::-moz-progress-bar {
background-color: var(--color-secondary-dark-4);
}
.label-filter-archived-toggle {
margin: 8px 10px;
font-size: 12px;
min-width: fit-content;
}
.label-filter-exclude-info {
display: inline-block;
padding: 0.5rem 0;
font-size: 12px;
width: 100%;
white-space: nowrap;
margin-left: 10px;
margin-right: 8px;
text-align: left;
}
.label-filter-exclude-info code {
border: 1px solid var(--color-secondary);
border-radius: var(--border-radius);
padding: 1px 2px;
font-size: 11px;
}

View File

@@ -0,0 +1,44 @@
.list-header {
display: flex;
align-items: stretch;
flex-wrap: wrap;
gap: .5rem;
}
.list-header-search {
display: flex;
flex: 1;
align-items: stretch;
flex-wrap: wrap;
min-width: 200px; /* to enable flexbox wrapping on mobile */
}
.list-header-search > .ui.input {
flex: 1;
min-width: 100px !important;
}
.list-header-search > .ui.input .ui.dropdown {
min-width: auto !important;
}
.list-header-filters {
display: flex;
align-items: center;
}
.list-header-filters > .item {
padding: 5px 0 5px 10px;
}
@media (max-width: 767.98px) {
.list-header-search {
order: 0;
}
.list-header-toggle {
order: 1;
}
.list-header-filters {
order: 2;
}
}

View File

@@ -0,0 +1,25 @@
.packages-content {
display: flex;
align-items: flex-start;
gap: 16px;
}
.packages-content-left {
margin: 0 !important;
width: calc(100% - 250px - 16px);
}
.packages-content-right {
margin: 0 !important;
width: 250px;
}
@media (max-width: 767.98px) {
.packages-content {
flex-direction: column;
}
.packages-content-left,
.packages-content-right {
width: 100%;
}
}

View File

@@ -0,0 +1,70 @@
.bottom-reactions {
display: flex;
gap: 6px;
margin: 0 1em 1em;
}
.timeline-item .conversation-holder .bottom-reactions {
margin: 1em 0 0 36px;
padding-bottom: 8px;
}
.bottom-reactions .ui.label {
padding: 5px 8px;
font-weight: var(--font-weight-normal);
}
.bottom-reactions .ui.label.primary {
background-color: var(--color-reaction-active-bg) !important;
}
.bottom-reactions .ui.label:hover {
background-color: var(--color-reaction-hover-bg) !important;
}
.bottom-reactions .ui.label.disabled {
cursor: default;
opacity: 1;
}
.bottom-reactions .ui.label .reaction {
font-size: 16px;
display: flex;
}
.bottom-reactions .ui.label .reaction img {
height: 16px;
aspect-ratio: 1;
}
.bottom-reactions .reaction-count {
margin-left: 4px;
}
.ui.dropdown.select-reaction .menu {
min-width: 170px; /* item-outer-width * 4 */
}
.ui.dropdown.select-reaction .menu > .item {
float: left;
margin: 4px;
font-size: 20px;
width: 34px;
height: 34px;
border-radius: var(--border-radius);
display: flex;
align-items: center;
justify-content: center;
}
.bottom-reactions .select-reaction {
padding: 0 10px;
}
.bottom-reactions .select-reaction:not(.active) {
visibility: hidden;
}
.bottom-reactions:hover .select-reaction {
visibility: visible;
}

View File

@@ -0,0 +1,140 @@
#release-list {
display: flex;
flex-direction: column;
gap: var(--page-spacing);
padding-left: 0;
}
#release-list .release-list-title {
font-size: 2rem;
font-weight: var(--font-weight-normal);
display: flex;
align-items: center;
gap: 0.25em;
margin: 0;
}
#release-list .release-entry {
display: flex;
gap: var(--page-spacing);
}
#release-list .release-entry .meta {
flex: 0 0 150px;
position: relative;
text-align: right;
display: flex;
flex-direction: column;
gap: 10px;
}
#release-list .release-entry .detail {
flex: 1;
margin: 0;
min-width: 0;
}
@media (max-width: 767.98px) {
#release-list .release-entry {
flex-direction: column;
gap: var(--page-spacing);
}
#release-list .release-entry .meta {
margin-left: 6px;
flex-direction: row;
flex-basis: auto;
display: flex;
align-items: center;
}
#release-list .release-branch-tag-selector {
margin-left: auto;
}
#release-list .branch-selector-dropdown .menu { /* open menu to left */
right: 0;
left: auto;
}
}
#release-list .release-entry .detail .author img {
margin-bottom: 2px; /* the legacy trick to align the avatar vertically, no better solution at the moment */
}
#release-list .release-entry .attachment-list {
border: 1px solid var(--color-secondary);
border-radius: var(--border-radius);
}
#release-list .release-entry .attachment-list > .item {
display: flex;
padding: 8px;
flex-wrap: wrap;
}
#release-list .release-entry .attachment-list > .item a {
min-width: 300px;
}
#release-list .release-entry .attachment-list .attachment-right-info {
flex-shrink: 0;
min-width: 300px;
}
#release-list .release-entry .detail .download[open] summary {
margin-bottom: 10px;
}
#release-list .download-icon {
color: var(--color-text-light-1);
}
#release-list .release-entry .detail .download .list li:last-child {
border-bottom: none;
}
#tags-table .tag-list-row-title {
font-size: 18px;
font-weight: var(--font-weight-normal);
}
.repository.new.release .target {
min-width: 500px;
}
.repository.new.release .target #tag-name {
margin-top: -4px;
}
.repository.new.release .target .at {
margin-left: -5px;
margin-right: 5px;
}
.repository.new.release .target .selection.dropdown {
padding-top: 10px;
padding-bottom: 10px;
}
.repository.new.release .prerelease.field {
margin-bottom: 0;
}
@media (max-width: 438px) {
.repository.new.release .field button,
.repository.new.release .field input {
width: 100%;
}
}
@media (max-width: 767.98px) {
.repository.new.release .field button {
margin-bottom: 1em;
}
}
.repository.new.release .field .attachment_edit {
max-width: 48em;
}
.repository.new.release .markup {
min-height: 240px;
}

65
web_src/css/repo/wiki.css Normal file
View File

@@ -0,0 +1,65 @@
.repository.wiki .wiki-pages-list tr:hover {
background-color: var(--color-hover);
}
.repository.wiki .wiki-pages-list .wiki-git-entry {
margin-left: 10px;
display: none;
}
.repository.wiki .wiki-pages-list tr:hover .wiki-git-entry {
display: inline-block;
}
.repository.wiki .markup {
overflow: visible;
}
.repository.wiki .markup[data-tab-panel="markdown-previewer"] {
min-height: 340px; /* This height matches the markdown editor's height */
}
.repository.wiki .wiki-content-parts .markup {
border: 1px solid var(--color-secondary);
border-radius: var(--border-radius);
padding: 1em;
margin-top: 1em;
font-size: 1em;
}
.repository.wiki .wiki-content-main.with-sidebar {
float: left;
width: 80%;
max-width: calc(100% - 150px - 1em); /* match the min-width of .wiki-content-sidebar */
}
.repository.wiki .wiki-content-sidebar {
float: right;
width: calc(20% - 1em);
min-width: 150px;
}
.repository.wiki .wiki-content-footer {
margin-top: 1em;
}
.repository.wiki .wiki-content-toc ul {
margin: 0;
list-style: none;
padding: 5px 0 5px 1em;
}
.repository.wiki .wiki-content-toc ul ul {
border-left: 1px var(--color-secondary);
border-left-style: dashed;
}
@media (max-width: 767.98px) {
.repository.wiki .wiki-content-main.with-sidebar,
.repository.wiki .wiki-content-sidebar {
float: none;
width: 100%;
min-width: unset;
max-width: unset;
}
}