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.

Remove the avatars and read people by name again

28b19c7433fa6f6fe1ce826c443870385d856eb8 · Keenan Nemetz · 7d ago · parent 0fbeca85

Remove the avatars and read people by name again

The marks were harder to read than the names they replaced, so they are
gone: the account menu is back to the user icon, and the issue and
change tables, the profile, the directory and the contributor list all
say the account name.

This takes out everything that existed to draw a mark: the DiceBear
bundle and its licence file, the entry source that built it, the
Landscape style, avatar.go and its tests, the avatar template and its
three helper functions, the avatar palette in everforest.css and the
illustration rules in vole.css, and the app.js block that rendered and
re-rendered them on a theme change.

The tables keep the layout from the previous change — an author column
and an assignee column — because that part reads better with names too.
The assignee cells are the @name chips that already linked to the
filtered list.

`vole workflow run verify` passes, and the licence inventory is back to
one entry fewer.

server/web/static/vole.css −39

@@ -335,9 +335,6 @@ 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; }
341 338 .account-caret { display: inline-flex; color: var(--fg-faint); }
342 339 .account-caret .icon { width: 12px; height: 12px; transform: rotate(90deg); transition: transform 0.12s ease; }
343 340 .account-menu[open] .account-caret .icon { transform: rotate(-90deg); }
@@ -1085,7 +1082,6 @@ pre code { background: none; border: 0; padding: 0; font-size: inherit; }
1085 1082 color: var(--fg-muted);
1086 1083 font-size: calc(12.65px * var(--font-scale));
1087 1084 }
1088 .inline-note-head .avatar { width: 17px; height: 17px; }
1089 1085 .inline-note-head .comment-author { color: var(--fg); font-size: calc(13.2px * var(--font-scale)); }
1090 1086 .inline-note .comment-body {
1091 1087 padding: 0;
@@ -1163,36 +1159,6 @@ pre code { background: none; border: 0; padding: 0; font-size: inherit; }
1163 1159 .contributors .cname { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: calc(13.75px * var(--font-scale)); }
1164 1160 .contributors .muted { font-size: calc(12.65px * var(--font-scale)); }
1165 1161
1166 /* A name's avatar. The ground and the fallback letter are server-rendered here;
1167 the mark itself is drawn in the browser by DiceBear (see
1168 server/web/avatar.go and scripts/avatars-entry.js). The seven grounds are
1169 declared per theme in everforest.css, mixed from the active variant's own
1170 accents, so a mark matches the theme the reader chose. The bundle reads the
1171 computed colours, so those two files remain the only palette. */
1172 .avatar {
1173 display: inline-grid;
1174 place-items: center;
1175 flex: 0 0 auto;
1176 width: 20px;
1177 height: 20px;
1178 border-radius: 30%;
1179 overflow: hidden;
1180 background: var(--av-bg, #6b7561);
1181 color: var(--av-fg, #f0e6d2);
1182 font-size: calc(10px * var(--font-scale));
1183 font-weight: 600;
1184 line-height: 1;
1185 text-transform: uppercase;
1186 }
1187 .avatar.c1 { --av-bg: var(--av-c1); }
1188 .avatar.c2 { --av-bg: var(--av-c2); }
1189 .avatar.c3 { --av-bg: var(--av-c3); }
1190 .avatar.c4 { --av-bg: var(--av-c4); }
1191 .avatar.c5 { --av-bg: var(--av-c5); }
1192 .avatar.c6 { --av-bg: var(--av-c6); }
1193 .avatar.c7 { --av-bg: var(--av-c7); }
1194 .avatar svg { display: block; width: 100%; height: 100%; }
1195
1196 1162 .lang { display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; margin-bottom: 8px; font-size: calc(13.2px * var(--font-scale)); }
1197 1163 .lang .muted { font-size: calc(12.65px * var(--font-scale)); }
1198 1164 .bar {
@@ -1883,9 +1849,6 @@ details[open] > summary .tree-chevron { transform: rotate(90deg); }
1883 1849 color: var(--fg-faint);
1884 1850 }
1885 1851 .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; }
1889 1852
1890 1853 /* A search snippet is the sentence the query matched, with the matched words
1891 1854 marked. It sits under the row title, quieter than the title and smaller than
@@ -2902,11 +2865,9 @@ textarea:focus-visible {
2902 2865
2903 2866 .profile-head { align-items: flex-start; }
2904 2867 .profile-back { margin: 0 0 6px; font-size: calc(12.65px * var(--font-scale)); }
2905 .profile-who { display: flex; align-items: center; gap: 14px; min-width: 0; }
2906 2868 .profile-joined { margin: 4px 0 0; font-size: calc(12.65px * var(--font-scale)); }
2907 2869 .profile-scope { margin: 8px 0 0; font-size: calc(12.65px * var(--font-scale)); }
2908 2870
2909 .profile-who .avatar { width: 52px; height: 52px; font-size: calc(22px * var(--font-scale)); }
2910 2871
2911 2872 /* The four numbers a profile leads with. Each one is a link to the feed it
2912 2873 counts, so a number is a door rather than a dead end. */