A React implementation of the OOUI component library.
中文 | English | Documentation
A React implementation of the OOUI component library. Rewritten from scratch, with no runtime dependency on oojs-ui.
- No bundled styles: Output DOM structure, class names, and attributes match the original; styles are supplied by the consumer from OOUI, fitting MediaWiki sites.
- Behavior consistent with the original: Keyboard, focus, a11y, and edge cases are verified item by item against the original, so interaction semantics stay consistent.
- TypeScript support: Written entirely in TypeScript with complete type definitions.
- Preact compatible: Effectively reduces bundle size.
- Tree shaking: Supports on-demand imports.
npm install ooui-reactimport { Button } from "ooui-react";
<Button onClick={() => console.log("clicked")}>Click me</Button>For style imports, MediaWiki integration, and more, see the Usage guide.
Contributions from everyone are welcome. See CONTRIBUTING.md for the contribution guide.
This project is a React implementation of OOUI. Portions of its API design, CSS class names and behavior contracts are derived from OOUI, which is licensed under the MIT License, Copyright 2011-2025 OOUI Team and other contributors.