Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Build bevy_ui interfaces with
React. You write components in React/TSX and they render to native Bevy UI
through a React Native-style bridge - no web view, no DOM. The JS side stays
purely declarative; Rust and Bevy do the heavy lifting. State and interactions flow
both ways between your Bevy app and React, and edits hot-reload live while keeping
component state.
Documentation · Live demo (the web build of the demos gallery, running in your browser)

import { mount } from "bevy-react";
import { useState } from "react";
function App() {
const [n, setN] = useState(0);
return (
<node style={{ padding: 20, gap: 12, flexDirection: "column" }}>
<text>{`Count: ${n}`}</text>
<button
onClick={() => setN((c) => c + 1)}
style={{ backgroundColor: "#7aa2f7" }}
>
<text>+</text>
</button>
</node>
);
}
mount(<App />);
That's a real component - <node> and <button> render to actual bevy_ui
nodes, useState works as you'd expect, and saving the file updates the running
app without losing the count.
Getting started
&& &&
use *;
use *;
The Getting started guide covers configuration, cargo features, and the typed client.
Bevy compatibility
| bevy | bevy-react |
|---|---|
| 0.19 | 0.1 – 0.7 |
License
Dual-licensed under either of Apache License 2.0 or MIT license, at your option.