fabrica

hanna/fabrica

style(web): place the LFS pill next to the name and file size

f509834 · hanna committed on 2026-07-26

Drop the tree pill's auto-margin so it sits beside the entry name, and
group the blob header's size and LFS pill together on the left instead of
letting the pill float in the middle.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed by hannaSSH key fingerprint: SHA256:4g9cWhkAAw8gwqhJUcVbSnGEvdGwklW+1Aa/fMUu59k
18 files changed · +11 −4UnifiedSplit
assets/base.css +7 −2
@@ -2213,9 +2213,8 @@ pre.code {
2213 text-overflow: ellipsis;2213 text-overflow: ellipsis;
2214 white-space: nowrap;2214 white-space: nowrap;
2215}2215}
2216/* A small pill to the right of a tree entry (LFS-tracked file, submodule). */2216/* A small pill beside a tree entry's name (LFS-tracked file, submodule). */
2217.tree-pill {2217.tree-pill {
2218 margin-left: auto;
2219 flex: none;2218 flex: none;
2220 padding: 0.02rem 0.4rem;2219 padding: 0.02rem 0.4rem;
2221 font-size: 0.72em;2220 font-size: 0.72em;
@@ -2229,6 +2228,12 @@ pre.code {
2229 color: var(--fb-accent);2228 color: var(--fb-accent);
2230 border-color: var(--fb-accent);2229 border-color: var(--fb-accent);
2231}2230}
2231/* Blob header left group: file size with an optional LFS pill beside it. */
2232.blob-meta {
2233 display: flex;
2234 align-items: center;
2235 gap: 0.5rem;
2236}
2232.file-row.is-submodule .file-icon {2237.file-row.is-submodule .file-icon {
2233 color: var(--fb-accent);2238 color: var(--fb-accent);
2234}2239}
crates/web/src/repo.rs +4 −2
@@ -799,8 +799,10 @@ fn render_blob(
799799
800 html! {800 html! {
801 div class="blob-header" {801 div class="blob-header" {
802 span class="muted" { (blob.size) " bytes" }802 div class="blob-meta" {
803 @if is_lfs { span class="badge lfs-pill" { "LFS" } }803 span class="muted" { (blob.size) " bytes" }
804 @if is_lfs { span class="badge lfs-pill" { "LFS" } }
805 }
804 div class="blob-actions" {806 div class="blob-actions" {
805 @if previewable {807 @if previewable {
806 a class=(toggle_class(show_preview)) href=(blob_url.clone()) { "Preview" }808 a class=(toggle_class(show_preview)) href=(blob_url.clone()) { "Preview" }
data/fabrica/trash/01kye430gcj8z731smf1y2m0tk-1785034122673.git/FETCH_HEAD +0 −0

No textual changes.

data/fabrica/trash/01kye430gcj8z731smf1y2m0tk-1785034122673.git/HEAD +0 −0

No textual changes.

data/fabrica/trash/01kye430gcj8z731smf1y2m0tk-1785034122673.git/config +0 −0

No textual changes.

data/fabrica/trash/01kye430gcj8z731smf1y2m0tk-1785034122673.git/description +0 −0

No textual changes.

data/fabrica/trash/01kye430gcj8z731smf1y2m0tk-1785034122673.git/hooks/README.sample +0 −0

No textual changes.

data/fabrica/trash/01kye430gcj8z731smf1y2m0tk-1785034122673.git/hooks/post-receive +0 −0

No textual changes.

data/fabrica/trash/01kye430gcj8z731smf1y2m0tk-1785034122673.git/hooks/pre-receive +0 −0

No textual changes.

data/fabrica/trash/01kye430gcj8z731smf1y2m0tk-1785034122673.git/info/exclude +0 −0

No textual changes.

data/fabrica/trash/01kye430gcj8z731smf1y2m0tk-1785034122673.git/logs/HEAD +0 −0

No textual changes.

data/fabrica/trash/01kye430gcj8z731smf1y2m0tk-1785034122673.git/logs/refs/heads/darwin +0 −0

No textual changes.

data/fabrica/trash/01kye430gcj8z731smf1y2m0tk-1785034122673.git/logs/refs/heads/main +0 −0

No textual changes.

data/fabrica/trash/01kye430gcj8z731smf1y2m0tk-1785034122673.git/objects/pack/pack-2d54248c7887b3f612ba16762309f1f7032c936f.idx +0 −0

Binary file not shown.

data/fabrica/trash/01kye430gcj8z731smf1y2m0tk-1785034122673.git/objects/pack/pack-2d54248c7887b3f612ba16762309f1f7032c936f.pack +0 −0

Binary file not shown.

data/fabrica/trash/01kye430gcj8z731smf1y2m0tk-1785034122673.git/objects/pack/pack-2d54248c7887b3f612ba16762309f1f7032c936f.rev +0 −0

Binary file not shown.

data/fabrica/trash/01kye430gcj8z731smf1y2m0tk-1785034122673.git/refs/heads/darwin +0 −0

No textual changes.

data/fabrica/trash/01kye430gcj8z731smf1y2m0tk-1785034122673.git/refs/heads/main +0 −0

No textual changes.