Skip to content

Honor authored caret-color in retained form controls #804

Description

@wieslawsoltes

Parent CSS epic: #235
Paint owner: #241
Visual owner: #259

Proven gap

Unchanged Code OSS 645f29cc3176500b4b5762ba887cf2a7f0ffdf2c authors caret-color: var(--vscode-editorCursor-foreground) on the EditContext text area. Current WebScene ba27b13d always paints focused input/textarea carets with the inherited text foreground, so editor cursor theming cannot match Chromium.

Focused implementation

  • generated native/managed identity and CSSOM for caret-color;
  • retain the uncommon inherited token only in sparse cold style state, with auto/currentColor, CSS-wide keywords, mutation/removal, and cascade fallback;
  • resolve the focused form-control caret from the authored token and existing foreground/currentColor path;
  • paint-only mutation with no layout, hot per-node field, timer, extra scene node, platform widget, document scan, or Code OSS patch.

Gates

  • CSSOM/inheritance/currentColor/mutation/removal contract;
  • exact caret scene command color under independent foreground and opacity;
  • focus, blink, selection, detach/navigation, theme mutation, and reduced-motion lifecycle;
  • 4,096-node sparse-state mutation gate with zero layout, bounded publication, stable memory, and no idle frame demand;
  • exact unchanged editor caret pixels in light, dark, high-contrast, and inactive/active states.

Implementation status (2026-09-20)

  • Merged through PR Implement retained CSS caret color #805 as WebScene ae156add1e1a202a529d8dcd627bb517fe32c4a5 (focused head dc6b2178).
  • Adds typed native/managed identity, exact inline CSSOM, variable-backed resolution, inherited sparse cold-state storage, and independent retained caret paint.
  • Authors CSSOM/WPT, native scene-color, invalid-write, and 4,096-node paint-only performance gates.
  • Focused precompiled JavaScript run 35491228120 passed. The native document/compiler build and tests passed in step 8 of 35491228122; its remaining SDK assembly was canceled under the fast merge policy. Full visual/package/performance qualification remains tracked by the parent epics.

Metadata

Metadata

Assignees

No one assigned

    Labels

    vscode-oss/plannedPlanned for the AppScene/WebScene VS Code OSS integration

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions