diff --git a/ui/index.html b/ui/index.html
index 86ffe6a2e543..f3e56d709c42 100644
--- a/ui/index.html
+++ b/ui/index.html
@@ -158,7 +158,6 @@
background: transparent;
font: inherit;
font-weight: 700;
- cursor: pointer;
}
.mount-fallback__button--primary {
diff --git a/ui/src/components/form-controls.browser.test.ts b/ui/src/components/form-controls.browser.test.ts
index 7b477b5e78ea..a6b045b6e70f 100644
--- a/ui/src/components/form-controls.browser.test.ts
+++ b/ui/src/components/form-controls.browser.test.ts
@@ -190,3 +190,38 @@ describeBrowserLayout("touch-primary form controls", () => {
}
});
});
+
+describeBrowserLayout("mount fallback cursor", () => {
+ it("uses the default cursor for its controls and the pointer for its real link", async () => {
+ const browser = await chromium.launch({
+ executablePath: chromiumExecutablePath,
+ headless: true,
+ });
+ try {
+ const page = await browser.newPage();
+ await page.setContent(readStyleSheet("ui/index.html"));
+ const cursors = await page.evaluate(() => {
+ const cursor = (selector: string) => {
+ const node = document.querySelector(selector);
+ if (!(node instanceof HTMLElement)) {
+ throw new Error(`Missing cursor fixture ${selector}`);
+ }
+ return getComputedStyle(node).cursor;
+ };
+ return {
+ retry: cursor("#openclaw-mount-retry"),
+ wait: cursor("#openclaw-mount-wait"),
+ docs: cursor('.mount-fallback__panel a[href^="https://"]'),
+ };
+ });
+
+ expect(cursors).toEqual({
+ retry: "default",
+ wait: "default",
+ docs: "pointer",
+ });
+ } finally {
+ await browser.close().catch(() => {});
+ }
+ });
+});