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. */ | |