summaryrefslogtreecommitdiffstats
path: root/web_src/css/repo
diff options
context:
space:
mode:
authorDaniel Baumann <daniel@debian.org>2024-10-18 20:33:49 +0200
committerDaniel Baumann <daniel@debian.org>2024-12-12 23:57:56 +0100
commite68b9d00a6e05b3a941f63ffb696f91e554ac5ec (patch)
tree97775d6c13b0f416af55314eb6a89ef792474615 /web_src/css/repo
parentInitial commit. (diff)
downloadforgejo-e68b9d00a6e05b3a941f63ffb696f91e554ac5ec.tar.xz
forgejo-e68b9d00a6e05b3a941f63ffb696f91e554ac5ec.zip
Adding upstream version 9.0.3.
Signed-off-by: Daniel Baumann <daniel@debian.org>
Diffstat (limited to 'web_src/css/repo')
-rw-r--r--web_src/css/repo/header.css68
-rw-r--r--web_src/css/repo/issue-card.css40
-rw-r--r--web_src/css/repo/issue-label.css52
-rw-r--r--web_src/css/repo/issue-list.css112
-rw-r--r--web_src/css/repo/linebutton.css19
-rw-r--r--web_src/css/repo/list-header.css58
-rw-r--r--web_src/css/repo/release-tag.css121
-rw-r--r--web_src/css/repo/wiki.css72
8 files changed, 542 insertions, 0 deletions
diff --git a/web_src/css/repo/header.css b/web_src/css/repo/header.css
new file mode 100644
index 0000000..9da5fe6
--- /dev/null
+++ b/web_src/css/repo/header.css
@@ -0,0 +1,68 @@
+.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;
+}
+
+.repo-buttons {
+ align-items: center;
+ display: flex;
+ flex-flow: row wrap;
+ word-break: keep-all;
+}
+
+.repo-buttons .ui.labeled.button > .label:hover {
+ color: var(--color-primary-light-2);
+ background: var(--color-light);
+}
+
+.repo-buttons button[disabled] ~ .label {
+ opacity: var(--opacity-disabled);
+ color: var(--color-text-dark);
+ background: var(--color-light-mimic-enabled) !important;
+}
+
+.repo-buttons button[disabled] ~ .label:hover {
+ color: var(--color-primary-dark-1);
+}
+
+.repo-buttons .ui.labeled.button.disabled {
+ pointer-events: inherit !important;
+}
+
+.repo-buttons .ui.labeled.button.disabled > .label {
+ color: var(--color-text-dark);
+ background: var(--color-light-mimic-enabled) !important;
+}
+
+.repo-buttons .ui.labeled.button.disabled > .label:hover {
+ color: var(--color-primary-dark-1);
+}
+
+.repo-buttons .ui.labeled.button.disabled > .button {
+ pointer-events: none !important;
+}
diff --git a/web_src/css/repo/issue-card.css b/web_src/css/repo/issue-card.css
new file mode 100644
index 0000000..fb832bd
--- /dev/null
+++ b/web_src/css/repo/issue-card.css
@@ -0,0 +1,40 @@
+.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);
+}
+
+.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: 0.25em;
+}
+
+.issue-card-assignees {
+ display: flex;
+ align-items: center;
+ gap: 0.25em;
+ justify-content: end;
+ flex-wrap: wrap;
+}
diff --git a/web_src/css/repo/issue-label.css b/web_src/css/repo/issue-label.css
new file mode 100644
index 0000000..9b4b144
--- /dev/null
+++ b/web_src/css/repo/issue-label.css
@@ -0,0 +1,52 @@
+.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%;
+}
+
+.issue-label-list .item .label-issues {
+ width: 33%;
+}
+
+.issue-label-list .item .label-operation {
+ width: 33%;
+}
+
+.issue-label-list .item a {
+ font-size: 12px;
+ padding-right: 10px;
+ color: var(--color-text-light);
+}
+
+.issue-label-list .item.org-label {
+ opacity: 0.7;
+}
+
+.label-operation .label {
+ height: fit-content;
+}
+
+.archived-label-hint {
+ float: right;
+ margin: -12px;
+}
diff --git a/web_src/css/repo/issue-list.css b/web_src/css/repo/issue-list.css
new file mode 100644
index 0000000..9143b01
--- /dev/null
+++ b/web_src/css/repo/issue-list.css
@@ -0,0 +1,112 @@
+.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;
+}
+
+.issue-list-new.button {
+ margin-right: 0;
+}
+
+.list-header-issues {
+ min-height: var(--repo-header-issue-min-height);
+}
+
+@media (max-width: 767.98px) {
+ .issue-list-navbar {
+ order: 0;
+ }
+ .issue-list-new {
+ order: 1;
+ margin-left: auto !important;
+ }
+ .issue-list-search {
+ order: 2 !important;
+ }
+ /* Don't use flex wrap on mobile as it takes too much vertical space.
+ * Only set overflow properties on mobile screens, because while the
+ * CSS trick to pop out from overflowing works on desktop screen, it
+ * has a massive flaw that it cannot inherited any max width from it's 'real'
+ * parent and therefor ends up taking more vertical space than is desired.
+ **/
+ .issue-list-toolbar-right .filter.menu {
+ flex-wrap: nowrap;
+ overflow-x: auto;
+ overflow-y: hidden;
+ }
+
+ /* The following few CSS was created with care and built with the information
+ * from CSS-Tricks: https://css-tricks.com/popping-hidden-overflow/
+ */
+
+ /* It's important that every element up to .issue-list-toolbar-right doesn't
+ * have a position set, such that element that wants to pop out will use
+ * .issue-list-toolbar-right as 'clip parent' and thereby avoids the
+ * overflow-y: hidden.
+ */
+ .issue-list-toolbar-right .filter.menu > .dropdown.item {
+ position: initial;
+ }
+ /* It's important that this element and not an child has `position` set.
+ * Set width so that overflow-x knows where to stop overflowing.
+ */
+ .issue-list-toolbar-right {
+ position: relative;
+ width: 100%;
+ }
+}
+
+#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);
+}
+
+.archived-label-filter {
+ margin-left: 10px;
+ font-size: 12px;
+ display: flex !important;
+ margin-bottom: 8px;
+ min-width: fit-content;
+}
diff --git a/web_src/css/repo/linebutton.css b/web_src/css/repo/linebutton.css
new file mode 100644
index 0000000..d32899a
--- /dev/null
+++ b/web_src/css/repo/linebutton.css
@@ -0,0 +1,19 @@
+.code-view .lines-num:hover,
+.file-preview .lines-num:hover {
+ color: var(--color-text-dark) !important;
+}
+
+.code-line-button {
+ border: 1px solid var(--color-secondary);
+ border-radius: var(--border-radius);
+ padding: 1px 4px !important;
+ position: absolute;
+ font-family: var(--fonts-regular);
+ left: 0;
+ transform: translateX(calc(-50% + 6px));
+ cursor: pointer;
+}
+
+.code-line-button:hover {
+ background: var(--color-secondary) !important;
+}
diff --git a/web_src/css/repo/list-header.css b/web_src/css/repo/list-header.css
new file mode 100644
index 0000000..304cfbc
--- /dev/null
+++ b/web_src/css/repo/list-header.css
@@ -0,0 +1,58 @@
+.list-header {
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ gap: .5rem;
+}
+
+.list-header-sort {
+ display: flex;
+ align-items: center;
+ padding-left: 1rem;
+ padding-right: 1rem;
+}
+
+.list-header-search {
+ display: flex;
+ flex: 1;
+ align-items: center;
+ flex-wrap: wrap;
+ justify-content: center;
+ min-width: 200px; /* to enable flexbox wrapping on mobile */
+}
+
+.list-header-search .input {
+ flex: 1;
+}
+
+.small-menu-items {
+ min-height: 35.4px !important; /* match .small.button in height */
+ background: none !important; /* fomantic sets a color here which does not play well with active transparent color on the item, so unset and set the colors on the item */
+}
+
+.small-menu-items .item {
+ background: var(--color-menu) !important;
+ padding-top: 6px !important;
+ padding-bottom: 6px !important;
+}
+
+.small-menu-items .item:hover {
+ background: var(--color-hover) !important;
+}
+
+.small-menu-items .item.active {
+ background: var(--color-active) !important;
+}
+
+@media (max-width: 767.98px) {
+ .list-header-search {
+ order: 0;
+ }
+ .list-header-toggle {
+ order: 1;
+ }
+ .list-header-sort {
+ order: 2;
+ margin-left: auto;
+ }
+}
diff --git a/web_src/css/repo/release-tag.css b/web_src/css/repo/release-tag.css
new file mode 100644
index 0000000..9860813
--- /dev/null
+++ b/web_src/css/repo/release-tag.css
@@ -0,0 +1,121 @@
+.repository.releases #release-list {
+ margin-top: 12px;
+ padding-top: 12px;
+ padding-left: 0;
+}
+
+.repository.releases #release-list .release-list-title {
+ font-size: 2rem;
+ font-weight: var(--font-weight-normal);
+ display: flex;
+ align-items: center;
+ gap: 0.25em;
+ margin: 0;
+}
+
+.repository.releases #release-list > li .meta {
+ padding-top: 25px;
+ position: relative;
+ text-align: right;
+ display: flex;
+ flex-direction: column;
+ gap: 1em;
+}
+
+.repository.releases #release-list > li .detail {
+ padding-bottom: 20px;
+ border-left: 1px solid var(--color-secondary);
+}
+
+.repository.releases #release-list > li .detail .author img {
+ margin-bottom: 2px; /* the legacy trick to align the avatar vertically, no better solution at the moment */
+}
+
+.repository.releases #release-list > li .detail .download .list {
+ padding-left: 0;
+}
+
+.repository.releases #release-list > li .detail .download .list li {
+ background: var(--color-light);
+ border: 1px solid var(--color-secondary);
+ border-top: none;
+ display: flex;
+ justify-content: space-between;
+ padding: 8px;
+}
+
+.repository.releases #release-list > li .detail .download .list :is(li:first-child, .start-gap + hr + li) {
+ border-top: 1px solid var(--color-secondary);
+ border-top-left-radius: var(--border-radius);
+ border-top-right-radius: var(--border-radius);
+}
+
+.repository.releases #release-list > li .detail .download .list :is(li:last-child, .start-gap) {
+ border-bottom: 1px solid var(--color-secondary);
+ border-bottom-left-radius: var(--border-radius);
+ border-bottom-right-radius: var(--border-radius);
+}
+
+.repository.releases #release-list > li .detail .download .list hr {
+ height: 8px;
+ margin: 0;
+}
+
+.repository.releases #release-list > li .detail .dot {
+ width: 10px;
+ height: 10px;
+ background-color: var(--color-secondary-dark-3);
+ position: absolute;
+ left: -5.5px;
+ top: 30px;
+ border-radius: var(--border-radius-full);
+ border: 2.5px solid var(--color-body);
+}
+
+.repository.tags #tags-table .tag {
+ padding: 8px 12px;
+}
+
+.repository.tags #tags-table .release-tag-name {
+ 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;
+}
+
+@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;
+}
diff --git a/web_src/css/repo/wiki.css b/web_src/css/repo/wiki.css
new file mode 100644
index 0000000..ba502d3
--- /dev/null
+++ b/web_src/css/repo/wiki.css
@@ -0,0 +1,72 @@
+.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-sidebar .ui.message.unicode-escape-prompt p {
+ display: none;
+}
+
+.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 .clone-panel #repo-clone-url {
+ width: 160px;
+ }
+ .repository.wiki .wiki-content-main.with-sidebar,
+ .repository.wiki .wiki-content-sidebar {
+ float: none;
+ width: 100%;
+ min-width: unset;
+ max-width: unset;
+ }
+}