Repository navigation
fix(website): make the homepage card link hover class actually match - #332
Merged
danbaruka merged 1 commit intoOct 16, 2026
Merged
Conversation
HomepageFeatures passed className="featureCardLinks" as a plain string while the rule lives in the CSS module as .featureCardLinks:hover. CSS modules hash local class names, so the emitted selector is .featureCardLinks_kdMv:hover and the plain-string element never matched it: the hover underline reset was dead code and the three homepage cards underlined on hover. Pass styles.featureCardLinks so the element carries the hashed class. Measured on the deployed bundle with the hover state forced through CDP, which is also the proof the fix works rather than just compiles: as shipped, :hover forced -> text-decoration: underline same node with the module class -> none resting state -> none A repo-wide sweep for the same shape (plain-string class names colliding with CSS-module local names) found this as the only instance. Refs IntersectMBO#323
Contributor
Author
|
Verified on a local production build of this branch (head So the underline is gone and the card lift, border and shadow hover styles are untouched — which is the behaviour #323 asked for. Sweep for the same shape (a plain-string |
danbaruka
approved these changes
Oct 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
The three cards on the homepage are links, and the rule meant to suppress the hover underline never reached them.
HomepageFeatures/index.tsxpassed the class as a plain string:while the rule lives in the CSS module as
.featureCardLinks:hover. CSS modules hash local class names, so the emitted selector is.featureCardLinks_kdMv:hover— an element carrying the literal stringfeatureCardLinkscan never match it. The reset was therefore dead code and the cards underlined on hover, exactly as #323 describes.The fix is one attribute:
className={styles.featureCardLinks}.Evidence
Measured on the deployed bundle with the hover state forced through CDP, rather than read off the stylesheet:
That third line is the point: the rule works, it was simply unreachable. It is present in the built CSS as
.featureCardLinks_kdMv:hover { -webkit-text-decoration:none; text-decoration:none }— cssnano merges it into a larger hover group, so the declaration is live and correct.Type of Change
Testing
I have tested these changes locally
I have checked for broken links — n/a, no content or link changes
Code examples have been tested — n/a
tsc --noEmitpasses.Production build passes locally, and the PR build runs the same command in CI.
Sibling sweep: I compared every plain-string
className="…"inwebsite/srcagainst the local names declared in every*.module.css. This was the only collision in the codebase, so there is nothing else to fix in the same pass.After the change the built homepage carries the hashed class on all three card links (verified in the built output, see the comment below).
Notes for review
Fixes #323
Checklist