Drops the blur(14px) backdrop-filter on the sticky table header and
raises the background opacity from 0.92 to 0.97 so the header remains
clearly readable without the compositing overhead.
Co-Authored-By: Claude <noreply@anthropic.com>
Apply contain: layout style to .results-section and
contain: layout style paint to the detail panel element to reduce
browser layout recalculation scope during search interactions.
Co-Authored-By: Claude <noreply@anthropic.com>
Uses IntersectionObserver to toggle an .offscreen class on the hero
element, which sets animation-play-state: paused on the sheen, noise,
and scroll-cue animations. Avoids unnecessary GPU work while the hero
is not visible.
Co-Authored-By: Claude <noreply@anthropic.com>
Narrowed the Cormorant Garamond request to 600 only and Manrope to
400/600/700/800, removing the unused 500 and 700 variants. Added
font-weight: 600 to .final-cta h2 so the heading explicitly uses
the retained weight.
Co-Authored-By: Claude <noreply@anthropic.com>
- Add aria-sort attributes to table header on sort state changes
- Replace .table-wrap:focus outline:none with focus-visible outline
- Move noscript message above the fold into main, before content
- Upgrade hero-topbar div to nav with aria-label for landmark semantics
- Remove role=button from tr elements (invalid ARIA on native elements)
- Fix back-to-top button label and text (was labelled 'Back to search')
- Switch font-size from 16px to 100% to respect user browser preferences
- Add overflow-wrap and word-break to .col-name and description cells
Co-Authored-By: Claude <noreply@anthropic.com>
Both variables mapped to near-identical small-text sizes already covered
by --text-xs. Remove the redundant variables and migrate all call sites,
including two remaining hardcoded rem values, to the shared token.
Co-Authored-By: Claude <noreply@anthropic.com>
Move display:grid and gap from .final-cta to .final-cta > .section-shell
so the grid context is applied to the correct container element, not the
outer section. Wrap final-cta content in index.html with a section-shell
div accordingly. Also fix .no-results bottom padding that was missing.
Co-Authored-By: Claude <noreply@anthropic.com>
When a search or filter yields no results, the message now includes
an inline button that resets both the search input and the active
filter. Improves discoverability and reduces dead-end frustration.
Co-Authored-By: Claude <noreply@anthropic.com>
On narrow screens the category column is hidden. This adds a .mobile-cat
span inside the name cell that renders the first category below the
project name, giving mobile users the context they were missing.
Co-Authored-By: Claude <noreply@anthropic.com>
Give links across hero, table entries, expand panel, and footer a
semi-transparent underline on hover using text-decoration-color and
text-underline-offset, so interactive affordances are more visible
without changing the base text color. Hero sub-links are split into
their own rule to carry the additional underline style independently.
Co-Authored-By: Claude <noreply@anthropic.com>
Removes the 28% fixed width and overflow-wrap on the project name column.
white-space: nowrap lets the column size naturally to its content instead
of forcing wrapping at an arbitrary width.
Co-Authored-By: Claude <noreply@anthropic.com>
Replace the light frosted-glass footer with a dark-themed one using
oklch colors. Add link hover states, a footer-brand element showing
'Awesome Python', and switch alignment to space-between to accommodate
the new brand label.
Co-Authored-By: Claude <noreply@anthropic.com>
Increases --hero-muted lightness from 84% to 88% so secondary hero
text has more contrast against the dark hero background.
Co-Authored-By: Claude <noreply@anthropic.com>
Set explicit font-size on .expand-content to prevent it inheriting
a smaller size from context. Standardize the two call-to-action labels
to "Submit a project" (lowercase, consistent phrasing).
Co-Authored-By: Claude <noreply@anthropic.com>
Grow the hero heading clamp range (4rem->4.5rem min, 7.5rem->8.5rem max on
desktop; 3.2rem->3.6rem min, 4.8rem->5.2rem max on mobile) for a bolder
visual impact in the redesigned homepage.
Co-Authored-By: Claude <noreply@anthropic.com>
Replace hardcoded font-size values (0.78rem, 0.76rem) with named tokens
--text-label and --text-tag so they are easy to find and change in one place.
Co-Authored-By: Claude <noreply@anthropic.com>
Replaces the fixed-position floating button with an inline button
inside the last column of the sticky table header. Removes the hidden
attribute toggle and float positioning in favour of opacity/pointer-
events toggling, keeping the visibility logic intact.
Co-Authored-By: Claude <noreply@anthropic.com>
Move overflow-x: auto from .table-wrap to the mobile breakpoint only,
so horizontal scrolling only applies on small screens. Add box-shadow
to sticky thead th for visual separation. Reset th position to static
on mobile to avoid stacking context issues.
Co-Authored-By: Claude <noreply@anthropic.com>
Replace hidden attribute on filter-bar with opacity/transform transition
driven by a .visible class, allowing smooth fade-in/slide-down when a
filter is active. Add staggered hero-in keyframe animations to the page
title, subtitle, action buttons, and search box. Polish sortable table
headers with color transition on hover and active states.
Co-Authored-By: Claude <noreply@anthropic.com>
Previously used right: max(1.5rem, calc(50vw - 700px + 0.5rem)) which
caused the button to overlap content at certain viewport widths. Switch
to left: 50% with margin-left: -2rem to keep it centered relative to
the viewport without interfering with sidebar or content layout.
Co-Authored-By: Claude <noreply@anthropic.com>
Adds a fixed-position button that fades in after scrolling 600px and
smoothly scrolls back to the top on click. Hidden by default via the
HTML hidden attribute so noscript users never see it.
Co-Authored-By: Claude <noreply@anthropic.com>
Stdlib entries now show a "Built-in" tag alongside their regular
category tag. The tag is clickable and filters to all 17 stdlib
entries. Added to data-cats attribute so existing filter logic works.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Detect the hosting source (stdlib, GitLab, Bitbucket, External) from
the entry URL and surface it as a small badge in the stars column where
a star count would otherwise show an em dash.
Stdlib entries also get their own sort tier — between starred entries
and other no-star entries — so the standard library is not buried at
the bottom of each category.
Co-Authored-By: Claude <noreply@anthropic.com>
Add active-state press feedback (scale transform) to buttons, filter clear,
and tags. Add moz-osx-font-smoothing for consistent antialiasing on Firefox/Mac.
Apply text-wrap: balance to headings and text-wrap: pretty to body text and
expanded row descriptions. Add text-underline-offset to links and highlight
active table rows with bg-hover.
Co-Authored-By: Claude <noreply@anthropic.com>
- Relocate group tag from expand row to category column so it appears inline beside the category tag
- Add margin between stacked tags with .col-cat .tag + .tag spacing rule
- Remove fixed width from .col-cat; narrow .col-name from 35% to 30% to give category column room
- Hide .tag-group on screens ≤900px and widen .col-name to 50% to reclaim space
Co-Authored-By: Claude <noreply@anthropic.com>
Switch table-layout back to auto on mobile to let columns size naturally,
add uniform cell padding overrides, shrink num/arrow columns further,
pin stars column width, reduce edge padding, and left-align the number
column to avoid awkward right-aligned single digits.
Co-Authored-By: Claude <noreply@anthropic.com>
- Replace 'Curated by @vinta since 2014' with 'Maintained by @vinta
and @JinyangWang27' to reflect the new co-maintainer
- Increase .hero-sub font size from --text-sm to --text-base for
better readability
Co-Authored-By: Claude <noreply@anthropic.com>
Switch readme_parser.py from regex-based parsing to markdown-it-py for
more robust and maintainable Markdown AST traversal. Update build pipeline,
templates, styles, and JS to support the new parser output. Refresh GitHub
stars data and update tests to match new parser behavior.
Co-Authored-By: Claude <noreply@anthropic.com>
- Add sr-only headings for search/filter and results regions
- Add role=region and aria-label to .table-wrap for landmark navigation
- Add tabindex=0 and focus outline to .table-wrap for keyboard reachability
- Add sr-only text to empty Details column header
- Add role=button to expandable rows
- Add .expand-tags-mobile to show category/group tags in expand row on mobile
- Show .expand-tags-mobile via media query at <=900px breakpoint
Co-Authored-By: Claude <noreply@anthropic.com>
Replace two-column footer (links left, attribution right) with a
single inline row of slash-separated items. Update attribution text
to 'Made by Vinta' with a link to vinta.ws, align footer links to
match standard anchor color/hover behavior.
Co-Authored-By: Claude <noreply@anthropic.com>
Replaces MkDocs with a bespoke Python site generator using Jinja2 templates
and Markdown. Adds uv for dependency management, GitHub Actions workflow for
deployment, and Makefile targets for local development (fetch_stars, build,
preview, deploy).
Co-Authored-By: Claude <noreply@anthropic.com>