[web] Buttons show the default arrow cursor on hover (Tailwind v4 dropped the preflight `cursor: pointer`)
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 85/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- css, tailwindcss
- Domain
- frontend
Research direction
Start in web/src/app/globals.css and check how the project uses Tailwind CSS v4; the issue also points to disabled controls in step-controls.tsx and simulator-controls.tsx. Restore pointer behavior for enabled buttons and [role="button"] elements while preserving the default cursor for disabled buttons. Done when enabled controls show a pointer and disabled controls do not.
Written by the indexing model from the issue text.
Description
Problem
Hovering the locale switcher (EN / 中文 / 日本語) and the dark-mode toggle in the header shows the default arrow cursor instead of a pointer. The nav links (Timeline / Compare / Layers) and the GitHub icon on the same row are fine.
This is not limited to the header: every <button> in web/ behaves the same way — Compare/Diff tabs, the simulator and per-session playback controls, the Design Decisions collapsible, etc.
Cause
web/ is on Tailwind CSS v4. The v3 preflight included button, [role="button"] { cursor: pointer }; v4 dropped it, so <button> falls back to the browser's UA default cursor: default. <a> elements (nav links, GitHub icon) still get cursor: pointer from the UA stylesheet — which is exactly why one row of the header looks inconsistent.
Verifiable in the production bundle: the only cursor declaration in /_next/static/chunks/0b4b0328131d73a8.css is .cursor-pointer, used exactly once (web/src/app/[locale]/page.tsx:219).
Suggested fix
Restore the rule once in web/src/app/globals.css instead of adding cursor-pointer to every button:
button:not(:disabled),
[role="button"]:not(:disabled) {
cursor: pointer;
}
:not(:disabled) matters because step-controls.tsx and simulator-controls.tsx have disabled buttons, and those should keep the default cursor.
Environment
- macOS, Chrome
- https://learn.shareai.run/en
- Dominant language
- Python
- Stars
- 78.2k
- Forks
- 12.5k
- Avg merge
- 3h 27m
- Merged PRs (30d)
- 2
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from shareAI-lab/learn-claude-code
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
shareAI-lab/learn-claude-code#591 ·
Maintainers usually reply within 1 day
-
s04/s05/s06 的 README.zh.md 里有几处代码注释仍是英文Possibly taken @zl1nq claimed this 15 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
shareAI-lab/learn-claude-code#589 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
shareAI-lab/learn-claude-code#583 ·
Maintainers usually reply within 1 day
-
[s08] Reactive compaction does not recognize Anthropic's "prompt is too long" errorPossibly taken @zmylol claimed this 38 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
shareAI-lab/learn-claude-code#560 · 1 comment ·
Maintainers usually reply within 1 day
-
docs(s02): explain why specialized tools are needed when Bash can do the same workPossibly taken @kunshanyep-beep claimed this 36 days ago. Open
Difficulty 1/5 Under an hour Newbie friendliness 76/100
shareAI-lab/learn-claude-code#549 · 1 comment ·
Maintainers usually reply within 1 day
All issues in shareAI-lab/learn-claude-code
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Deltares/imod-python#1940 ·
Maintainers usually reply within 1 day
-
effort: low prio: low ready
Difficulty 1/5 Under an hour Newbie friendliness 82/100
digitalfabrik/integreat-cms#4621 ·
Maintainers usually reply within 5 days
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
ioos/compliance-checker#1375 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
netbox status: backlog topic: testing type: housekeeping
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
netbox-community/netbox#23395 ·
Maintainers usually reply within 1 day