Custom cursor compositor
The browser-side cursor service used across Desktop and application windows, including the native-cursor suppression rule that caused the recent Desktop visibility bug.
Source map
- components/cdn/CustomCursor.tsx
- components/cdn/Desktop.tsx
One global compositor
The cursor component tracks pointer events at the document level, resolves semantic cursor roles and renders an SVG/motion cursor in a high-level portal. Desktop mounts the service so child windows can share one cursor instance.
Semantic role resolution
Explicit data-cursor attributes can select roles such as copy, grab, not-allowed or zoom. Standard DOM/CSS behavior is also inspected so ordinary links, text fields and resize regions can select the correct shape.
The self-hiding bug
The cursor service hides the native browser cursor with cursor:none. The role resolver previously mapped computed CSS none to the custom role hidden, causing the custom cursor to hide itself on plain Desktop elements.
The corrected default interpretation keeps the custom cursor visible while the native cursor remains suppressed.
text// Native browser cursor is suppressed globally.
// Do not interpret that compositor-owned CSS as "hide the custom cursor".
none: "default"Release impact
Because CustomCursor.tsx is an OS component, this kind of fix should be included in a new OS release for installed users instead of relying on live source changes.