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.

Draw every tab row rule at the content edge

973fb80906d6a1ec79ecd6b449e2e51e9cfb77d5 · Keenan Nemetz · 22h ago · parent e189a23e

Draw every tab row rule at the content edge

The strip of tabs pulls itself 10px left so the first label's text sits on
the content edge, but Settings and Admin put the row's border on that same
element, so their rule hung 10px past the repository header's. The rule now
belongs to a wrapper in every case: the repository header already had one,
and a page's tabs and a change's sections wrap the same strip in .tabrow.
The change sections also stop carrying their own copy of the tab styles,
which differed by a pixel of padding and a point of icon size.

server/web/static/vole.css +11−25

@@ -624,10 +624,13 @@ img { max-width: 100%; }
624 624 .tabs .chip-count { margin-left: 0; }
625 625 .tabs a.active .chip-count { color: var(--fg-muted); }
626 626
627 /* A tab row that sits under a page head rather than inside the repository
628 header: Admin and a repository's Settings. The rule belongs to the row, so
629 the head above it has none. */
630 .page-tabs { margin-bottom: 14px; border-bottom: 1px solid var(--border); }
627 /* The rule under a tab row belongs to a wrapper, not to the strip that carries
628 the labels: `.tabs` pulls itself 10px left so the first label's text sits on
629 the content edge, and a border on that element would hang 10px past it. The
630 repository header keeps its rule on `.repohead`; a page's tabs and a change's
631 sections wrap the same strip in this class, so every row starts and ends on
632 the content edges together. */
633 .tabrow { margin-bottom: 14px; border-bottom: 1px solid var(--border); }
631 634
632 635 /* A count that moved while the reader was looking elsewhere keeps one short
633 636 ring, so the change is noticed; the number itself is the answer. app.js adds
@@ -1832,27 +1835,10 @@ details[open] > summary .tree-chevron { transform: rotate(90deg); }
1832 1835 .page-head h1 { font-size: calc(24.2px * var(--font-scale)); }
1833 1836 }
1834 1837
1835 /* Secondary navigation inside a change: conversation and the review files. */
1836 .subtabs {
1837 display: flex;
1838 gap: 2px;
1839 margin: -2px 0 14px;
1840 border-bottom: 1px solid var(--border);
1841 }
1842 .subtabs a {
1843 display: inline-flex;
1844 align-items: center;
1845 gap: 6px;
1846 padding: 7px 10px;
1847 margin-bottom: -1px;
1848 border-bottom: 2px solid transparent;
1849 color: var(--fg-muted);
1850 font-size: calc(13.75px * var(--font-scale));
1851 }
1852 .subtabs a:hover { color: var(--fg); text-decoration: none; }
1853 .subtabs a.active { color: var(--fg); border-bottom-color: var(--accent); }
1854 .subtabs .icon { width: 13px; height: 13px; }
1855 .subtabs .chip-count { margin-left: 0; }
1838 /* Secondary navigation inside a change: conversation and the review files. It is
1839 the same `.tabrow` and `.tabs` as every other row, pulled up against the
1840 request header. */
1841 .subtabs { margin-top: -2px; }
1856 1842
1857 1843 .state {
1858 1844 display: inline-flex;