style: misc UI fixes#37691
Conversation
- action view: rename job-brief-item to action-view-sidebar-item, fix trash icon overflow on long artifact names, align artifact and workflow hover styles with the jobs list - labels: add with-labels-list-block modifier, apply to issue sidebar and issue ref popup so wrapped labels start at the same x coordinate - branches: expand new PR button cell to three wide so the button is not clipped on narrow viewports - diff stats: add semibold to stats text - dashboard feed: add tw-max-w-full so long issue titles truncate - reactions: tighten label padding Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
Remove `display: contents` and the `with-labels-list-inline` and `with-labels-list-block` modifier classes. The `.labels-list` class is now self-contained: `inline-flex` with `flex-wrap: wrap` and a 4px `gap`. In issue list titles and "added/removed labels" timeline events labels should flow inline with surrounding text. Override the labels-list to `display: inline` in those contexts and provide spacing via margins so wrapped lines get equal horizontal + vertical 4px gap and labels stay vertically centered with the title text. Strip template whitespace between adjacent labels in shared/issuelist.tmpl so the rendered HTML matches the 4px gap intended by the margin. Remove the underline that appeared on label hover from the global `a:hover` rule. Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
Signed-off-by: silverwind <me@silverwind.io>
I don't think it is a must. I am just curious about why sometimes you can tolerate the misalignement but sometimes you don't. Although the original display: contents + parent flex does align. |
|
I don't tolerate it, it just didn't show in my tests. |
Use `margin-right` on every label instead of `margin-left` on the `+ a` selector. With `margin-left`, a wrapped label is still a subsequent DOM sibling so it inherited a 4px indent on the new line. Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
|
fixed in e34322d |
|
Now checking minimal fixes for the timeline, spacing and wrapping. |
|
Timeline fixed in a6d8c9b. |
`.comment-text-line` carries an intentionally large `line-height: 32px` for unrelated alignment concerns, but it stretched wrapped label rows in "added/removed labels" events to a 13px gap. Override the line-height only when the line contains a `.labels-list`, and drop the label margin-block there so the line-height (not margins) controls the wrap spacing. Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
- Split the duplicate `.timeline-item.event .labels-list > a` rule into two
distinct rules (issue list and timeline) so margin behaviour no longer
relies on a `margin-block: 0` override that came later in source order.
- Move the `:has(.labels-list)` line-height override out of label.css and
into repo.css next to the `comment-text-line` 32px rule it tightens.
- Move the `#issue-list .item-title { display: block }` override from
label.css to issue-list.css alongside the other #issue-list overrides.
- Drop the verbose block comment.
No visual change: issue list still 4px H/V, timeline still ~5px V wrap gap.
Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
`.action-view-sidebar-item` redeclared display/align-items/gap that the existing `.flex-items-block > .item` rule (base.css:885-894) already provides to the three `<li>` use sites. The standalone summary `<a>` (no flex-items-block ancestor) composes `flex-text-block` for the same flex layout. Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
Add `.interact-list` and `.interact-list-item` to helpers.css alongside the existing `.interact-fg`/`.interact-bg` family. The pair carries everything needed for a vertical list of clickable rows with hover and selected state, so consumers don't have to also include `ui relaxed list` and `flex-items-block` to get the layout. Use them in `RepoActionView.vue` to replace the previous `ui relaxed list flex-items-block tw-p-0` + `item action-view-sidebar-item` combo on the three sidebar lists and the summary link. No Fomantic rules cascade onto the new classes; rendering is pixel-identical. Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
.interact-list
|
25e1d45 adds |
Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
But this is a unique kind of list seen nowhere else. I don't think mixing with flex classes is good, it would not make the list self-sufficient and encourage mixing classes which makes it hard to reason about. I'd rather have a single |
Add a global `:focus-visible` outline (primary color) for `a`, `button` and `[role="button"]`, replacing the button-only `box-shadow` focus ring so all interactive elements get a consistent keyboard focus indicator. Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
…up marker - Use the standard `btn interact-bg` icon-button style for the log options gear instead of a `ui button`. - Animate the step summary chevron with a CSS rotation instead of swapping the icon between chevron-right and chevron-down. - Render the log group fold indicator with the native disclosure marker inside the content column (after the line numbers) like GitHub. Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
The job link used `display: contents` which dropped it from the tab order; give it a flex box so it is keyboard-focusable. Hide the per-job re-run button until the row is hovered or focused, swapping it with the duration only when the button is present. Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
Signed-off-by: silverwind <me@silverwind.io>
Signed-off-by: silverwind <me@silverwind.io>
There was a problem hiding this comment.
Pull request overview
This PR makes a set of UI/CSS and template tweaks to improve layout/overflow behavior across the Actions run view sidebar, branch list, dashboard feeds, issue list titles, labels rendering/wrapping, and reaction badges. It also refactors label rendering to always produce a <span> label and moves link behavior to surrounding templates/builders.
Changes:
- Actions UI: restyle the run sidebar lists (jobs/artifacts/details) and improve hover behavior (e.g. rerun button swap-in).
- Issue/label UI: update issue list title markup/class, rework labels markup/CSS to avoid
display: contents, and adjust related integration tests. - General UI polish: branch list “new PR” button clipping fix, dashboard feed title truncation fix, reaction spacing tweaks, and focus ring styling changes.
Reviewed changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| web_src/js/components/RepoActionView.vue | Restructures Actions run sidebar markup and hover behavior for jobs/artifacts/details. |
| web_src/js/components/ActionRunJobView.vue | Adjusts job view controls and log group disclosure UI behavior/styling. |
| web_src/css/shared/flex-list.css | Removes outdated comment related to previous labels layout behavior. |
| web_src/css/repo/reactions.css | Tightens reaction pill padding and adjusts left margin. |
| web_src/css/repo/issue-list.css | Adds styling for new .issue-item-title link in issue list. |
| web_src/css/repo.css | Adjusts .comment-text-line layout rules (flex behavior) in issue timelines. |
| web_src/css/modules/label.css | Reworks .labels-list layout to avoid display: contents, updates wrapping/alignment behavior. |
| web_src/css/modules/button.css | Removes .ui.button:focus-visible styling (now relying on global focus styling). |
| web_src/css/base.css | Adds global focus-visible outline styling for anchors/buttons/[role="button"]. |
| tests/integration/issue_test.go | Updates selector to .issue-item-title to match new issue list markup. |
| templates/user/dashboard/feeds.tmpl | Adds tw-max-w-full to ensure truncation works for long titles. |
| templates/shared/issuelist.tmpl | Updates issue title class/structure and label anchors; minor inline alignment wrapper added. |
| templates/repo/issue/view_content/comments.tmpl | Removes with-labels-list-inline class in label timeline event. |
| templates/repo/issue/card.tmpl | Updates label rendering to wrap labels in an <a class="item"> around RenderLabel. |
| templates/repo/branch/list.tmpl | Adjusts action button cell layout and expands PR button cell width/markup to prevent clipping. |
| modules/templates/util_render.go | Removes RenderLabelWithLink, makes RenderLabel always return <span>, updates RenderLabels builder output accordingly. |
| modules/templates/util_render_test.go | Updates tests to reflect new label rendering output. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Cover ".ui.button" so focusable div-based buttons (e.g. dropdown buttons that are neither <button> nor <a>) keep a keyboard focus ring. Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
Co-Authored-By: Claude (Opus 4.7) <noreply@anthropic.com>
* origin/main: style: misc UI fixes (go-gitea#37691) ci: shard tests and reduce redundant work (go-gitea#37618) chore: simplify issue and pull request templates (go-gitea#37799) # Conflicts: # web_src/js/components/ActionRunJobView.vue
* main: (70 commits) fix(api): handle partial failures in push mirror synchronization gracefully (go-gitea#37782) fix(deps): update module golang.org/x/crypto to v0.52.0 [security] (go-gitea#37806) fix(build): swagger css import (go-gitea#37801) feat: add copy button to action step header, improve other copy buttons (go-gitea#37744) style: misc UI fixes (go-gitea#37691) ci: shard tests and reduce redundant work (go-gitea#37618) chore: simplify issue and pull request templates (go-gitea#37799) chore: Update 1.26.2 changelog in main (go-gitea#37796) fix(actions): make artifact signature payloads unambiguous (go-gitea#37707) chore: Update giteabot to fix failure when backport (go-gitea#37789) fix(deps): update module github.com/go-git/go-git/v5 to v5.19.1 [security] (go-gitea#37786) fix(pull): handle empty pull request files view to allow reviews (go-gitea#37783) fix(markup): make RenderString never fail (go-gitea#37779) fix(markup): wrap indented code blocks for the code-copy button (go-gitea#37748) fix(permissions): Fix reading permission (go-gitea#37769) fix: add natural sort to sortTreeViewNodes (go-gitea#37772) fix: package creation unique conflict (go-gitea#37774) fix(deps): update npm dependencies (go-gitea#37768) fix(deps): update module gitlab.com/gitlab-org/api/client-go/v2 to v2.26.0 (go-gitea#37771) ci: split giteabot workflow (go-gitea#37770) ...
job-brief-itemtoaction-view-sidebar-item, fix trash icon overflow on long artifact names, align artifact and workflow hover styles with the jobs listtw-max-w-fullso long issue titles truncateThis PR was written with the help of Claude Opus 4.7