Commit Graph

88 Commits

Author SHA1 Message Date
Vinta Chen
895da326f6 refactor(css): remove unused --bg-hover and --hero-shadow tokens
Neither variable was referenced anywhere in the stylesheet.
Removing dead tokens keeps the design token surface minimal.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 16:24:54 +08:00
Vinta Chen
58c0fd9e45 fix(css): extend focus-visible outline to no-results-clear and footer links
Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 16:23:41 +08:00
Vinta Chen
f2b635da19 fix(css): truncate long links in expand-meta and add mobile padding to expand-row
.expand-meta links can overflow their container on narrow viewports.
Apply ellipsis truncation to keep the row tidy.

.expand-row td[colspan] gains symmetric inline padding on mobile to match
the surrounding table spacing.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 16:20:52 +08:00
Vinta Chen
86aa623260 fix(css): increase tag padding on mobile breakpoint
Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 16:20:14 +08:00
Vinta Chen
6648961d7b fix(css): hide col-num and expand-row first-child at col-cat breakpoint
Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 16:19:38 +08:00
Vinta Chen
80a5051195 fix(css): increase expand meta/also-see font size to --text-sm
--text-xs was too small for secondary metadata rows; bump to --text-sm
for better readability.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 16:16:36 +08:00
Vinta Chen
302ae14c2d refactor(css): remove backdrop-filter blur from table header
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>
2026-03-22 16:14:56 +08:00
Vinta Chen
50e27b992f perf(css): add CSS containment to results section and detail panel
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>
2026-03-22 16:14:11 +08:00
Vinta Chen
80a5596b11 perf(hero): pause animations when hero scrolls out of view
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>
2026-03-22 16:13:08 +08:00
Vinta Chen
e960d47b3f perf(fonts): trim Google Fonts to weights in use
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>
2026-03-22 16:12:10 +08:00
Vinta Chen
4bb9c1240b fix(website): accessibility and defensive layout improvements
- 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>
2026-03-22 16:10:14 +08:00
Vinta Chen
cd3c8ad076 refactor(css): consolidate --text-label and --text-tag into --text-xs
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>
2026-03-22 16:03:47 +08:00
Vinta Chen
df2191fc05 refactor(build): remove unused group_categories wrapper
group_categories only ever appended a Resources group when the
resources list was non-empty. All call sites passed an empty list,
making it a no-op indirection. Inline parsed_groups directly and
remove the dead code along with its tests.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 15:58:42 +08:00
Vinta Chen
5fc022d595 refactor(build): remove resources from build pipeline
Resources are no longer passed through parse_readme, group_categories,
or the index template — they are replaced with empty lists and the
unused variable is prefixed with an underscore.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 15:45:18 +08:00
Vinta Chen
53d280ddcf fix(css): scope final-cta grid to inner section-shell wrapper
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>
2026-03-22 15:37:59 +08:00
Vinta Chen
38412182e7 style: increase footer vertical padding from 2rem to 3rem
Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 15:32:35 +08:00
Vinta Chen
1e8c432ec9 style(search): use 'projects' instead of 'libraries' in search placeholder
Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 15:31:41 +08:00
Vinta Chen
9d89df3e73 fix: back-to-top button scrolls to search input and focuses it
When results are visible, clicking the button previously scrolled to
the results section. It now targets the search input instead, scrolls
it into view centered, and focuses it so the user can immediately type
a new query. Button label updated from 'Top' to 'Search' to reflect
the new destination.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 15:31:04 +08:00
Vinta Chen
d3070b735e feat: add build date to footer
Displays the UTC date the site was last built in the footer so visitors
can see how fresh the data is.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 15:30:04 +08:00
Vinta Chen
97f18d295f feat: add clear action to no-results message
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>
2026-03-22 15:28:25 +08:00
Vinta Chen
0308fd1b3c feat: show category label on mobile in project name column
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>
2026-03-22 15:26:36 +08:00
Vinta Chen
5a8c565a88 style(css): add background color to final-cta section
Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 15:24:24 +08:00
Vinta Chen
73f77039f2 fix(template): show group tag before built-in source tag
Reorder tag buttons so the group tag appears before the source type tag,
giving it higher visual priority in the entry row.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 15:10:40 +08:00
Vinta Chen
ec2928b510 style(css): add decorative underline on link hover states
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>
2026-03-22 15:08:49 +08:00
Vinta Chen
bc5f444658 style(css): vertically center table body cells
Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 15:03:22 +08:00
Vinta Chen
57f189b004 style(css): use white-space nowrap for .col-name instead of fixed width
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>
2026-03-22 14:59:57 +08:00
Vinta Chen
8271b7c672 style: lighten footer separator color from 40% to 55% lightness
Increases contrast and visibility of the footer separator on light backgrounds.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 14:59:07 +08:00
Vinta Chen
315c18805f Revert "style(css): add margin and border-top separator above final CTA section"
This reverts commit f528177313.
2026-03-22 14:57:41 +08:00
Vinta Chen
3bfa49b24a style(footer): redesign footer with dark background and brand label
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>
2026-03-22 14:57:13 +08:00
Vinta Chen
f528177313 style(css): add margin and border-top separator above final CTA section
Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 14:55:16 +08:00
Vinta Chen
00b924d824 style(css): lighten hero muted text color for better legibility
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>
2026-03-22 14:54:31 +08:00
Vinta Chen
003d05bc26 style: stack hero metrics to single column on mobile
Remove the 2-column grid constraint so metrics flow into a
single-column layout on smaller viewports.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 14:54:00 +08:00
Vinta Chen
15df04ea23 copy: tighten website microcopy for clarity
Shorten metric labels, simplify section headings, rewrite
CTA and noscript message to be more direct and less verbose.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 14:45:16 +08:00
Vinta Chen
800d698b46 style: fix expand-content font size and unify CTA copy
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>
2026-03-22 14:31:16 +08:00
Vinta Chen
680de45c00 style(css): increase hero h1 font size on desktop and mobile
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>
2026-03-22 14:27:51 +08:00
Vinta Chen
951d233a65 refactor(css): extract font-size magic numbers into CSS custom properties
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>
2026-03-22 14:27:41 +08:00
Vinta Chen
3e7ff12614 Fix sticky top button behavior 2026-03-22 14:17:17 +08:00
Vinta Chen
39a2abbfcc style: polish website hero and table UI 2026-03-22 14:05:10 +08:00
Vinta Chen
06a5a701a0 style: refine website footer and heading 2026-03-22 08:05:25 +08:00
Vinta Chen
7d1d9e0af3 feat: redesign website homepage 2026-03-22 07:54:14 +08:00
Vinta Chen
49fafd3497 refactor(website): move back-to-top button into sticky table header
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>
2026-03-22 02:28:16 +08:00
Vinta Chen
818950f442 fix(website): fix sticky header on mobile and add border shadow
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>
2026-03-22 02:25:58 +08:00
Vinta Chen
1d05e98537 fix(website): make back-to-top scroll instant instead of smooth
The smooth scroll behavior felt sluggish on a 505-row page. Instant
jump is more responsive for a utility button.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 02:24:26 +08:00
Vinta Chen
bdc5c6c5d7 style(website): remove hero-in entrance animation
The animation added a slight stutter on page load without meaningful UX benefit.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 02:23:31 +08:00
Vinta Chen
b6bcb2c7e3 feat(website): add entrance animations and CSS-based filter bar visibility
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>
2026-03-22 02:22:07 +08:00
Vinta Chen
7be5e77186 fix(website): reduce tooltip transition duration from 0.25s to 0.15s
Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 02:20:07 +08:00
Vinta Chen
49eae1aba3 fix(website): center back-to-top button using left/margin instead of right
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>
2026-03-22 02:19:40 +08:00
Vinta Chen
7aeb8fbb65 feat(website): add back-to-top button
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>
2026-03-22 02:17:57 +08:00
Vinta Chen
4f297a5301 fix(website): sort starred stdlib entries after starred non-stdlib entries
Within the same star count, built-in (stdlib) entries were interleaved
with third-party entries. Add a builtin tier to the sort key so stdlib
entries always rank below non-stdlib entries at equal star counts.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-03-22 02:15:22 +08:00
Vinta Chen
d3317bf3c9 feat(website): add Built-in category tag for stdlib entries
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>
2026-03-22 02:12:51 +08:00