Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 0 additions & 12 deletions .tegami/2026-07-28-9c4e2b.md

This file was deleted.

14 changes: 0 additions & 14 deletions .tegami/2026-07-29-b71c4e.md

This file was deleted.

12 changes: 0 additions & 12 deletions .tegami/2026-07-29-e35a90.md

This file was deleted.

17 changes: 0 additions & 17 deletions .tegami/2026-07-30-6d2b81.md

This file was deleted.

19 changes: 0 additions & 19 deletions .tegami/2026-07-30-a1c9f4.md

This file was deleted.

12 changes: 0 additions & 12 deletions .tegami/2026-07-30-c73d51.md

This file was deleted.

24 changes: 18 additions & 6 deletions .tegami/publish-lock.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
core:changelogs:
- content: "---\npackages:\n npm:@reactunity/scripts:\n type: minor\n---\n\n### Serve the web previewer without installing it\n\nThe dev server's previewer now works out of the box. Visiting the dev server address in a browser opens a Unity WebGL player running your UI, with no extra package to install.\n\nPreviously this required the optional `@reactunity/previewer` dependency, which shipped a ~107 MB Unity build in its npm tarball — a cost every install paid for a page many projects never opened. The build is now hosted on `reactunity.github.io` and fetched on first load, then cached by the browser. `@reactunity/previewer` is no longer used and has been dropped from `peerDependencies`; you can remove it from your project.\n\nBecause the build is fetched rather than bundled, the first load needs network access. To preview offline — or to preview your own Unity scene — put a previewer build in a `previewer` folder in your project so that `previewer/index.html` exists. The dev server serves that in preference to the built-in previewer, and your project's own `public` folder takes precedence over both.\n\nThe dev server also serves `/info.html`, explaining how to point Unity's `DevServer` property at it. That guidance used to be the page shown at `/`.\n\n### Fix the `previewer` folder override being ignored\n\nA custom previewer placed in a `previewer` folder was never actually served. The dev server read `paths.appPreviewer`, but that key was only defined when developing `react-unity-scripts` in its own repository — in a published install the path resolved to `undefined`, so the documented override silently did nothing.\n"
filename: 2026-07-28-a7f3c1.md
- content: "---\npackages:\n npm:@reactunity/renderer:\n type: patch\n---\n\n### Fix gradients rendering too dark in gamma colour space\n\nEvery gradient — `linear-gradient`, `radial-gradient`, `conic-gradient` and their repeating forms — had its colours converted to linear space regardless of the project's colour space. A gamma-space project never converts them back, so the whole ramp came out darkened by a 2.2 exponent: CSS `green` painted as `rgb(0,55,0)` rather than `rgb(0,128,0)`, and `linear-gradient(red, blue)` crossed at `rgb(54,0,55)` rather than `rgb(127,0,128)`. Saturated endpoints survived while everything between them sank toward black.\n\nThe ramp is stored in a texture flagged linear and its contents have to agree with that flag, so the conversion is right in a linear-space project and stays. It now follows `QualitySettings.activeColorSpace` instead of applying unconditionally. Gamma-space projects again match what a browser paints for the same CSS declaration, to the byte.\n\nIntroduced in 0.23.0. Projects on Linear colour space were never affected, and need no changes.\n"
filename: 2026-07-28-9c4e2b.md
v: 0.0.0
- content: "---\npackages:\n npm:@reactunity/renderer:\n type: patch\n---\n\n### Fix non-solid border styles rendering as solid until the next style update\n\n`inset`, `outset`, `groove`, `ridge`, `dotted`, `dashed` and `double` borders came out flat solid on an element's first render. Any later style update — a hot reload, a state change, anything that re-ran the style pass — painted them correctly, so in the Editor they appeared to work while a build, where no such update ever arrives, showed solid borders forever.\n\nThe style is encoded as UVs into a lookup texture that the border graphic samples. That texture was bound from the `Rounding` setter alone, and the graphic is also created from the layout pass, which never assigns rounding: styles run before layout, so on the first pass Yoga has no border widths yet and no border graphic exists to receive the rounding, and by the time the layout pass creates one the style pass is over. With no texture bound, Unity substitutes a white one and every style samples as solid.\n\nThe texture is now resolved on each material rebuild instead of being cached on assignment, so it is correct however the graphic came to exist.\n\nBorders with a `border-radius` still ignore `border-style` and paint solid — a separate, pre-existing limitation of the rounded mesh path.\n"
filename: 2026-07-29-b71c4e.md
v: 0.0.0
- content: "---\npackages:\n npm:@reactunity/renderer:\n type: patch\n---\n\n### Support border-style and outline-style on rounded corners\n\n`border-radius` used to drop `border-style` entirely: the rounded mesh path sampled no style at all, so every style painted as flat solid, and `none` painted a solid border rather than nothing. Browsers render all of them with rounded corners, so a declaration that worked on a square element silently lost its style once a radius was added. `outline-style` was dropped the same way. All seven styles now render along the curve.\n\n`groove`, `ridge`, `inset`, `outset` and `double` are ramps across the border width, and the rounded path already emitted an inner and an outer vertex ring stitched 1:1 into a quad strip. Feeding the style band's inner edge to the inner ring and its outer edge to the outer ring makes the strip interpolate the ramp, using the same bands and the same per-side inversion as the square path.\n\n`dotted` and `dashed` repeat *along* the edge instead, which one continuous ring cannot express. When a side asks for one, the rings are emitted as vertices only and each side is drawn as its own strip, walked out by arc length along the border's centreline so a dash keeps its length through a corner. The dash and dot counts are fitted to a whole number per side, so a side begins and ends with half a gap rather than a clipped dash at the mitre. Sides can mix freely - a dashed top against solid sides keeps a clean mitre, since each corner arc doubles its vertex at 45 degrees and the per-side split lands exactly on that pair.\n"
filename: 2026-07-29-e35a90.md
v: 0.0.0
- content: "---\npackages:\n npm:@reactunity/renderer:\n type: patch\n---\n\n### Fix React Fast Refresh never repainting a hot-updated component\n\nAn edit to a component was fetched, applied and acknowledged by the dev server, and then nothing on screen changed. Both dev servers were affected — webpack and Vite alike — so any hot reload that was not a full page reload silently did nothing.\n\n`render` registered the renderer with the devtools hook *after* committing the tree. React Refresh learns which roots it may refresh from the hook's `onCommitFiberRoot`, and only calls `scheduleRefresh` for roots it has seen mount — so a renderer that registers after its first commit is invisible to it forever. The initial mount was the commit being missed, which meant the app's only root was never a refresh candidate.\n\n`injectIntoDevTools` now runs before the first commit, and once per reconciler rather than on every `render` call — repeated injection was registering the same renderer under a new id each time.\n"
filename: 2026-07-30-c73d51.md
v: 0.0.0
core:packages:
- id: npm:@reactunity/monorepo
Expand All @@ -9,11 +18,14 @@ core:packages:
updated: true
- id: npm:@reactunity/material
updated: true
- id: npm:@reactunity/renderer
updated: true
- changelogIds:
- 2026-07-28-a7f3c1.md
id: npm:@reactunity/scripts
- 2026-07-28-9c4e2b.md
- 2026-07-29-b71c4e.md
- 2026-07-29-e35a90.md
- 2026-07-30-c73d51.md
id: npm:@reactunity/renderer
updated: true
- id: npm:@reactunity/scripts
updated: true
npm:packages:
- id: npm:@reactunity/monorepo
Expand Down
2 changes: 1 addition & 1 deletion packages/create/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@reactunity/create",
"version": "0.23.0",
"version": "0.23.1",
"description": "Scaffold a ReactUnity app using npm init",
"license": "MIT",
"//type": "ESM, as of the chalk 6 / commander 15 upgrade: both dropped CommonJS. index.ts is emitted next to itself as ESM, so `bin` keeps pointing at index.js.",
Expand Down
2 changes: 1 addition & 1 deletion packages/material/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@reactunity/material",
"version": "0.23.0",
"version": "0.23.1",
"description": "Material Design components and utilities for React Unity",
"main": "dist/index.js",
"types": "dist/index.d.ts",
Expand Down
Loading