Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/git/vole.git

Write over SSH with a registered key:

git clone ssh://git@0.0.0.0:2222/vole.git

A free and open-source forge that lives in your Git repo.

Show people as portraits in the lists and the bar

0fbeca853d0174030973a4019bd54071cafa77dd · Keenan Nemetz · 7d ago · parent aceaabbf

Show people as portraits in the lists and the bar

The account menu now carries the signed-in account's mark instead of a
generic user icon, and the issue and change tables show the person
rather than the name: the author is one portrait, and an issue's
assignees are the portraits beside it. The issue's assignee labels moved
out of the title cell, so a row is title plus people.

A table cell is the one place where the portrait is not decoration —
there is no printed name beside it — so those calls use avatarOnly: it
keeps the profile link and the aria-label, and does not hide itself from
a screen reader the way an avatar beside a name does.

The contributor list already used the shared avatar template, so it
picked up the new marks with the rest; checked in a browser rather than
assumed.

server/web/static/vole.css +6

@@ -335,6 +335,9 @@ img { max-width: 100%; }
335 335 .account-menu > summary:hover { background: var(--bg-hover); color: var(--fg); }
336 336 .account-menu[open] > summary { background: var(--bg-raised); color: var(--fg); }
337 337 .account-name { max-width: 12rem; overflow: hidden; text-overflow: ellipsis; }
338 /* The account menu shows the same mark as the rest of the page, a little smaller
339 than the default so the bar keeps its height. */
340 .account-menu > summary .avatar { width: 18px; height: 18px; }
338 341 .account-caret { display: inline-flex; color: var(--fg-faint); }
339 342 .account-caret .icon { width: 12px; height: 12px; transform: rotate(90deg); transition: transform 0.12s ease; }
340 343 .account-menu[open] .account-caret .icon { transform: rotate(-90deg); }
@@ -1880,6 +1883,9 @@ details[open] > summary .tree-chevron { transform: rotate(90deg); }
1880 1883 color: var(--fg-faint);
1881 1884 }
1882 1885 .row-meta .label { margin-left: 0; }
1886 /* A column of people rather than a column of names: the avatars sit on one line
1887 and wrap only when a list runs past the cell. */
1888 .avatar-stack { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px; }
1883 1889
1884 1890 /* A search snippet is the sentence the query matched, with the matched words
1885 1891 marked. It sits under the row title, quieter than the title and smaller than