Skip to content

[codex] remove card link hover underlines#1891

Merged
BunsDev merged 1 commit intomainfrom
meow/remove-card-link-underlines
Apr 29, 2026
Merged

[codex] remove card link hover underlines#1891
BunsDev merged 1 commit intomainfrom
meow/remove-card-link-underlines

Conversation

@BunsDev
Copy link
Copy Markdown
Member

@BunsDev BunsDev commented Apr 29, 2026

Summary

  • Remove inherited hover underlines from linked card surfaces.
  • Covers skill cards, plugin/user list rows, home quick/category cards, carousel cards, and Trending Now cards.

Why

The global a:hover underline was showing on full-card links, which made card surfaces like Skills, Plugins, Users, Trending Now, and category cards look like inline text links.

Validation

  • bunx oxfmt --check src/styles.css
  • git diff --check
  • bun run lint
  • bun run format:check currently fails on 76 pre-existing unrelated files; src/styles.css passes the targeted formatter check and is not listed in the failures.

Preview

  • Opened local preview at http://localhost:3000/ with public ClawHub Convex endpoints and verified card hover behavior visually.

@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented Apr 29, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
clawhub Ready Ready Preview, Comment Apr 29, 2026 8:23am

@clawsweeper
Copy link
Copy Markdown

clawsweeper Bot commented Apr 29, 2026

Codex review: needs maintainer review before merge.

Keep this PR open. It is a draft PR from a MEMBER, which requires maintainer judgment, and current main still has the global hover underline without the hover-specific card override proposed by the PR. The diff is narrow CSS-only work and does not show a security or supply-chain regression.

Maintainer follow-up before merge:

Keep the draft PR open for normal maintainer review. The proposed boundary is appropriate: a small src/styles.css hover reset for full-card link surfaces, followed by targeted formatter/lint checks and a visual hover pass on skills, plugins, users, home carousel/category, and Trending Now cards.

Best possible solution:

Keep the draft PR open for normal maintainer review. The proposed boundary is appropriate: a small src/styles.css hover reset for full-card link surfaces, followed by targeted formatter/lint checks and a visual hover pass on skills, plugins, users, home carousel/category, and Trending Now cards.

Acceptance criteria:

  • bunx oxfmt --check src/styles.css
  • git diff --check
  • bun run lint
  • bun run format:check

What I checked:

  • Maintainer-authored PR guardrail: The provided GitHub context lists authorAssociation as MEMBER and the PR is open, draft, and unmerged, so this cleanup workflow should not auto-close it.
  • Current main global hover underline: Current main applies text-decoration: underline to all hovered anchors via the global a:hover rule. (src/styles.css:291, 22bb94cee27f)
  • Card surfaces lack hover-specific text-decoration reset: Card/list/home card rules set text-decoration: none on the base class, but their :hover rules do not override the more specific global a:hover underline. (src/styles.css:2359, 22bb94cee27f)
  • Full-card link call sites: The affected surfaces are real anchor/link components: SkillCard uses className="card skill-card", list rows use skill-list-item, and the home route uses home-v2-c-card, home-v2-cat-item, and home-v2-trend-card. (src/components/SkillCard.tsx:32, 22bb94cee27f)
  • PR diff and security pass: The provided PR file list shows one modified file, src/styles.css, adding hover selectors that set text-decoration: none; it does not touch workflows, dependencies, lockfiles, scripts, secrets, package publishing metadata, or downloaded artifacts. (src/styles.css:294, 76f6f24738da)
  • Feature history: Blame/history points to Val Alexander for the card UI surfaces and current public UI restore, and Patrick Erichsen for the global a:hover underline and recent adjacent CSS changes. (src/styles.css:291, 22bb94cee27f)

Likely related people:

  • BunsDev: The card and home UI surfaces are largely from Val Alexander's current-main history, including the initial/shared card styles and the latest fix: restore ClawHub public UI commit. This is not based solely on opening this PR; the same person appears in the merged history for the affected paths. (role: current UI maintainer / introduced behavior; confidence: high; commits: 05f867462884, b4a7540157de, 22bb94cee27f; files: src/styles.css, src/routes/index.tsx, src/components/SkillCard.tsx)
  • Patrick Erichsen: git blame attributes the global a:hover underline rule to ef2846b, and recent adjacent styling changes in these files also come from Patrick Erichsen. (role: adjacent maintainer / introduced global hover rule; confidence: medium; commits: ef2846b2e4c7, fb3bcbafb1d6; files: src/styles.css)

Remaining risk / open question:

  • Auto-closing would bypass the explicit MEMBER-authored PR guardrail and draft PR review flow.
  • The remaining change is visual CSS behavior; it should be verified in a browser preview across the named card surfaces before merge.

Codex review notes: model gpt-5.5, reasoning high; reviewed against 22bb94cee27f.

@BunsDev
Copy link
Copy Markdown
Member Author

BunsDev commented Apr 29, 2026

Maintainer validation for the ClawSweeper note:

  • Kept the PR scoped to the existing CSS-only change in src/styles.css; no unrelated files changed.
  • Verified local branch is clean and matches origin/meow/remove-card-link-underlines.
  • Fresh checks:
    • bunx oxfmt --check src/styles.css passed.
    • git diff --check passed.
    • bun run lint passed.
    • bun run format:check still fails on 76 pre-existing unrelated files; src/styles.css passes the targeted formatter check and is not in the failure list.
  • Visual/behavior pass with local preview using public ClawHub Convex endpoints:
    • a.home-v2-cat-item hover text-decoration-line=none
    • a.home-v2-c-card hover text-decoration-line=none
    • a.home-v2-trend-card hover text-decoration-line=none
    • a.skill-card hover text-decoration-line=none
    • a.skill-list-item hover text-decoration-line=none on skills list, plugins, and users

This addresses the requested maintainer review without broadening the patch.

@BunsDev BunsDev marked this pull request as ready for review April 29, 2026 08:39
@BunsDev BunsDev merged commit 7bef2a0 into main Apr 29, 2026
9 checks passed
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented Apr 29, 2026

Greptile Summary

Adds a grouped block of a.{card-class}:hover { text-decoration: none } overrides near the global a:hover rule to fix inherited underlines on full-card link surfaces. The higher-specificity selectors (a.class:hover, specificity 0,2,1) correctly beat the global a:hover (0,1,1) that was winning over base text-decoration: none declarations on hover. All targeted class names (skill-card, skill-list-item, home-v2-c-card, home-v2-cat-item, home-v2-trend-card, etc.) are confirmed in use in component files.

Confidence Score: 5/5

Safe to merge — single-file CSS change with no logic impact, all selectors verified against component usage.

The change is a targeted, correct CSS specificity fix with no P0/P1 findings. Every class name in the new rule set is confirmed present in the codebase, and the approach is idiomatic.

No files require special attention.

Reviews (1): Last reviewed commit: "fix: remove card link hover underlines" | Re-trigger Greptile

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant