The "Browse by category" markup was duplicated in index.html and category.html, and the two copies had drifted.
Co-Authored-By: Claude <noreply@anthropic.com>
Group pages rendered "Browse by category" with a plain div heading instead of the homepage's details/summary, so the two-column grid never applied, the arrow showed but did nothing, and the list didn't collapse on phones.
Co-Authored-By: Claude <noreply@anthropic.com>
Google Fonts loaded async with display=swap, so every first paint showed Georgia and Avenir Next and then visibly switched to the web fonts mid-read.
Co-Authored-By: Claude <noreply@anthropic.com>
Removing .search from the :focus-visible list left the focused search field with Chromium's default blue outline, and its translucent focus border measured 1.65:1 against the page, below WCAG 1.4.11's 3:1.
Co-Authored-By: Claude <noreply@anthropic.com>
Paint containment on the opened row's details clipped anything drawn outside its box, cutting off the focus outline of links at its edges.
Co-Authored-By: Claude <noreply@anthropic.com>
Tags are inline links, which CSS transforms do not apply to, so the tag press rule and its transform transition never had any effect.
Co-Authored-By: Claude <noreply@anthropic.com>
Table cells faded their border color over 180ms, so opening a row left the old divider visible between the row and its newly shown content before it faded out.
Co-Authored-By: Claude <noreply@anthropic.com>
On the home page, opening a row showed the description instantly while the details below it slid in, so one open state moved in two ways.
Co-Authored-By: Claude <noreply@anthropic.com>
Sponsor, sponsorship, call-to-action, and table-note paragraphs could end on a lone word, unlike their peers.
Co-Authored-By: Claude <noreply@anthropic.com>
Arrow glyphs on rows, jump links, sort headers, and the category toggle, plus the search icon, were exposed to assistive tech, adding noise to every row and link name.
Co-Authored-By: Claude <noreply@anthropic.com>
Text inputs match :focus-visible on click, so the search field showed the accent outline on top of its own tinted focus border.
Co-Authored-By: Claude <noreply@anthropic.com>
Each tag's tap area overlapped the next tag's and, with both insets plus min-height set, grew downward only, sitting off-center.
Co-Authored-By: Claude <noreply@anthropic.com>
On phones the hero's category links were about 17px tall and 4.5px apart, below the 24px minimum touch target.
Co-Authored-By: Claude <noreply@anthropic.com>
The hidden back-to-top button was only transparent, so Tab still stopped on it and its focus outline was invisible.
Co-Authored-By: Claude <noreply@anthropic.com>
certifi 2026.7.22 still trusted the emSign ECC Root CA - G3 and AAA Certificate Services roots that chain to the compromised eMudhra intermediates.
Co-Authored-By: Claude <noreply@anthropic.com>
The heroes ended 38px (home), 59px (category pages), and 80px (sponsorship) below their last line, against 20px above their top bar.
Co-Authored-By: Claude <noreply@anthropic.com>
Measured from the section edge to the nearest glyph or filled box, the guide band put 92px under its text against 51px above its heading, the sponsor band 67px against 52px, and the Sponsorship page sections ranged from 69px to 92px under content that sat 68px to 84px below their tops.
Co-Authored-By: Claude <noreply@anthropic.com>
The space above the label's first line added about 8px to the visible top gap, so the buttons sat closer to the footer than the label sat to the table.
Co-Authored-By: Claude <noreply@anthropic.com>
The hint's column capped at 28rem, so "Press / to search. Tags open their category. Click a row for details." wrapped to two lines beside the heading.
Co-Authored-By: Claude <noreply@anthropic.com>
The grid filled rows left to right, so reading down a column skipped through README order four categories at a time.
Co-Authored-By: Claude <noreply@anthropic.com>
The label's 1.5rem bottom margin stacked on the section's 1rem grid gap, leaving 51px between "Contribute" and the heading.
Co-Authored-By: Claude <noreply@anthropic.com>
Sections faded and slid in as they scrolled into view, so screenshots and quick scrolls caught the sponsor band and search box half-drawn.
Co-Authored-By: Claude <noreply@anthropic.com>
The section put 88px above its label and below its buttons; it now uses the page's side gutter like the table and guide sections.
Co-Authored-By: Claude <noreply@anthropic.com>
The table section started 72px below the sponsor band, and a one-line order note sat at the bottom of its grid row beside the two-line search hint, so category pages put 97px above the first text. The guide band put 81px above its heading. Both now use the page's side gutter.
Co-Authored-By: Claude <noreply@anthropic.com>
On phones the links line wrapped mid-phrase, splitting "19 hours ago" across two lines after the repository URL.
Co-Authored-By: Claude <noreply@anthropic.com>
The homepage printed each description inside its expanded row as .expand-desc, styled apart from the .desc-row that category pages use, so every spacing change to the table had to be tuned twice. The homepage now reveals the same .desc-row while a row is open, so its descriptions take the category pages' 15.2px size, and the .expand-desc markup and styles are gone.
Co-Authored-By: Claude <noreply@anthropic.com>
On phones the hidden number column is the first cell, so the name column fell back to the 0.55rem inner padding and names and descriptions sat 4px left of the links line and group headings, which use 0.8rem.
Co-Authored-By: Claude <noreply@anthropic.com>
An open row put about 38px between the project name and its description and 10px before its links, and category rows put 26px between name and description, because .table tbody td overrode the zero top padding meant for description and expand rows. The top gap is now about 2px larger than the bottom one, since the bold name's descenders make an equal gap look smaller.
Co-Authored-By: Claude <noreply@anthropic.com>
Each row restarted its own gradient, so the darker bottom of the open row met the lighter top of its expand row and read as a faint border between them.
Co-Authored-By: Claude <noreply@anthropic.com>
The ERP category lists one project, Odoo, but the intro's "How to choose" list compared Odoo editions and hosting options as if they were picks.
Co-Authored-By: Claude <noreply@anthropic.com>
An intro without a "How to choose" list, as a one-project category has no picks to compare, rendered all of its guide paragraphs above the table, pushing the table down. It now shows the lead above the table and moves the rest into the guide.
Co-Authored-By: Claude <noreply@anthropic.com>