Skip to content

Heads-up: a public fork focused on web-semantics parity (includes the a11y layer from #47) #48

Description

@Ernxst

Hi — I've been maintaining a fork of gpuix for a while and it went public this week, so I wanted to let you know it exists rather than have you find it by accident: https://github.com/Ernxst/gpuix

The reason for the fork is a specific goal I wanted to push hard on: one codebase that runs on the desktop and in the browser. So the fork treats DOM/CSS semantics as the contract — every public-surface decision is judged by "does the same component behave identically under react-dom?" I honestly don't know how closely that matches where you want gpuix to go, which is partly why it's been a fork rather than a stream of opinionated PRs — it let me move fast on that premise without imposing it here.

A few things it has that might interest people here:

  • The accessibility layer gpuix does not expose GPUI's accessibility APIs #47 asks for — AccessKit-backed roles, the aria-* prop family, default roles so trees aren't silent by default, accname (incl. whitespace rules), live regions, and role/name test queries.
  • A testing story mirroring vitest browser mode: render(), Testing Library-style queries, toMatchScreenshot(), plus a live-window automation client.
  • CSS-shaped styling work (transitions, grid tracks so far) with browser behaviour as the reference.

To avoid confusion: the fork does not publish to npm — @gpuix/native/@gpuix/react on the registry are yours; the fork ships tarballs on its own GitHub releases and its README says so prominently. Full credit in the README.

If any of it is useful upstream I'm happy to talk about carving pieces out — the a11y layer would likely need reshaping to fit however you want it designed, but the AccessKit plumbing is proven. And thanks for gpuix — the fork exists because the foundation is good.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions