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.
The docs site publishes plain-text files for LLMs on every build:
- llms.txt: an index file with descriptions and links for every page
- llms-full.txt: the whole English site content merged into a single file
When citing a single page, appending .md to its URL gives the plain-Markdown version of that page. The Chinese site publishes the same files at the site root: /llms.txt and /llms-full.txt.
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.