From 5191ab64453e9e8a52f9e51ee65911b82fa516ec Mon Sep 17 00:00:00 2001 From: Giteabot Date: Wed, 14 Jun 2023 13:21:48 -0400 Subject: Use flex to align SVG and text (#25163) (#25260) Backport #25163 by @wxiaoguang The code can be as simple as: ```html
{{svg "octicon-alert"}} {{svg "octicon-x"}} text (block)
{{svg "octicon-alert"}} {{svg "octicon-x"}} text
(inline)
``` ![image](https://github.com/go-gitea/gitea/assets/2114189/1d3c10f1-0bc7-4c26-b236-bad537d5c465) Co-authored-by: wxiaoguang --- web_src/css/base.css | 108 ++++++++++++++++-------- web_src/css/modules/button.css | 4 - web_src/css/repo.css | 29 ++----- web_src/js/components/DashboardRepoList.vue | 2 +- web_src/js/components/PullRequestMergeForm.vue | 2 +- web_src/js/components/RepoBranchTagSelector.vue | 2 +- web_src/js/features/repo-issue-content.js | 4 +- 7 files changed, 86 insertions(+), 65 deletions(-) (limited to 'web_src') diff --git a/web_src/css/base.css b/web_src/css/base.css index 879465ab7c..d2aa64e6ed 100644 --- a/web_src/css/base.css +++ b/web_src/css/base.css @@ -1031,10 +1031,6 @@ img.ui.avatar, background: var(--color-active); } -.ui.form .field > .selection.dropdown > .dropdown.icon { - height: auto; -} - .ui.loading.segment::before, .ui.loading.form::before { background: none; @@ -2124,35 +2120,6 @@ table th[data-sortt-desc] .svg { margin-left: 0.25rem; } -.ui.dropdown .svg.dropdown.icon, -.ui.dropdown .svg.remove.icon, -.svg.dropdown.icon { - margin-top: 0 !important; /* reset the "ui.selection.dropdown > .dropdown.icon {margin-top}", for the Issue Dependencies dropdown */ - margin-right: -0.5rem !important; /* fix up SVG dropdown triangles because Fomantic thinks they are icon fonts */ - height: auto; /* reset the ".ui.dropdown > .dropdown.icon {height}", otherwise the icon would be too small */ -} - -.ui.selection.dropdown > .svg.search.icon, -.ui.selection.dropdown > .svg.delete.icon, -.ui.selection.dropdown > .svg.dropdown.icon { - top: 0 !important; /* reset the ".ui.selection.dropdown > .xxx.icon {top}" if the icon is svg instead of the fomantic icon */ -} - -.ui.selection.dropdown > .svg.remove.icon { - top: .5px; - right: 32px; - width: auto; -} - -.ui.selection.dropdown > .svg.remove.icon:hover { - opacity: 1; -} - -.ui.dropdown.no-text > .dropdown.icon { - margin-left: 0 !important; - margin-right: 0 !important; -} - .ui.dropdown .menu .item { border-radius: 0; } @@ -2304,3 +2271,78 @@ table th[data-sortt-desc] .svg { width: 15px; height: 15px; } + +.ui.dropdown { + line-height: 1em; /* the dropdown doesn't have default line-height, use this to make the dropdown icon align with plain dropdown */ +} + +/* dropdown has some kinds of icons: +- "> .dropdown.icon": the arrow for opening the dropdown +- "> .remove.icon": the "x" icon for clearing the dropdown, only used in selection dropdown +- "> .ui.label > .delete.icon": the "x" icon for removing a label item in multiple selection dropdown +*/ + +/* Gitea uses SVG images instead of Fomantic builtin "" font icons, so we need to reset the icon styles */ +.ui.ui.dropdown > .icon.icon { + position: initial; /* plain dropdown and button dropdown use flex layout for icons */ + padding: 0; + margin: 0; + height: auto; +} + +.ui.ui.dropdown > .icon.icon:hover { + opacity: 1; +} + +.ui.ui.button.dropdown > .icon.icon, +.ui.ui.selection.dropdown > .icon.icon { + position: absolute; /* selection dropdown uses absolute layout for icons */ + top: 50%; + transform: translateY(-50%); +} + +.ui.ui.dropdown > .dropdown.icon { + right: 0.5em; +} + +.ui.ui.dropdown > .remove.icon { + right: 2em; +} + +.ui.ui.button, +.ui.ui.dropdown, +.flex-items-inline > .item, +.flex-text-inline { + display: inline-flex; + align-items: center; + flex-wrap: wrap; + gap: .25rem; + vertical-align: middle; +} + +.ui.ui.button { + justify-content: center; +} + +.ui.dropdown .ui.label .svg { + vertical-align: middle; +} + +.ui.ui.labeled.button { + gap: 0; + align-items: stretch; +} + +.ui.ui.icon.input .icon { + display: flex; + align-items: center; + justify-content: center; +} + +.flex-items-block > .item, +.flex-text-block { + display: flex; + align-items: center; + flex-wrap: wrap; + gap: .25rem; +} diff --git a/web_src/css/modules/button.css b/web_src/css/modules/button.css index 72eb1f3989..c3728e2e26 100644 --- a/web_src/css/modules/button.css +++ b/web_src/css/modules/button.css @@ -24,10 +24,6 @@ color: var(--color-text); } -.ui.button.no-text .icon { - margin: 0 !important; -} - .delete-button, .delete-button:hover { color: var(--color-red); diff --git a/web_src/css/repo.css b/web_src/css/repo.css index 99ef340177..674f8c9e67 100644 --- a/web_src/css/repo.css +++ b/web_src/css/repo.css @@ -20,15 +20,6 @@ margin-top: 2px; } -.repository .repo-header .repo-buttons .svg { - margin: 0 0.42857143em 0 -0.21428571em; -} - -.repository .repo-header .button { - margin-top: 2px; - margin-bottom: 2px; -} - .repository .tabs .navbar { justify-content: initial; } @@ -850,6 +841,11 @@ padding-top: 0; } +.repository.view.issue .comment-list .timeline-item.commits-list .ui.avatar, +.repository.view.issue .comment-list .timeline-item.event .ui.avatar { + margin-right: 0.25em; +} + .repository.view.issue .comment-list .timeline-item.commits-list .singular-commit { line-height: 34px; /* this must be same as .badge height, to avoid overflow */ clear: both; /* reset the "float right shabox", in the future, use flexbox instead */ @@ -2537,11 +2533,6 @@ margin-left: 0.25rem; } -.content-history-menu .octicon-triangle-down { - position: relative; - top: 1.5px; -} - .comment-body { background: var(--color-box-body); border: none !important; @@ -2874,6 +2865,7 @@ tbody.commit-list { flex-direction: row; flex-wrap: wrap; word-break: keep-all; + gap: 0.25em; } @media (max-width: 767.98px) { @@ -2897,15 +2889,6 @@ tbody.commit-list { color: var(--color-primary-dark-1); } -.repo-buttons .ui.labeled.button { - cursor: initial; -} - -.repo-buttons .ui.labeled.button > .label { - border-left: 0 !important; - margin: 0 !important; -} - .repo-buttons .ui.labeled.button.disabled { pointer-events: inherit !important; } diff --git a/web_src/js/components/DashboardRepoList.vue b/web_src/js/components/DashboardRepoList.vue index 25a94c1fa7..b47d872927 100644 --- a/web_src/js/components/DashboardRepoList.vue +++ b/web_src/js/components/DashboardRepoList.vue @@ -19,7 +19,7 @@