wso2/oxygen-ui

Plugin or preset to easily integrate Oxygen UI with Docusaurus

Open

#500 opened on Feb 23, 2026

View on GitHub
 (1 comment) (0 reactions) (0 assignees)TypeScript (50 forks)auto 404
Type/New Featuregood first issue

Repository metrics

Stars
 (57 stars)
PR merge metrics
 (PR metrics pending)

Description

Problem

Integrating Oxygen UI with a Docusaurus-based documentation site currently requires ejecting and overriding several default theme components to achieve visual and behavioral consistency.

For example, we currently need to:

  • Eject and override the Theme Toggle component to align with Oxygen theming
  • Override the Navbar to use Oxygen styles and layout patterns
  • Customize the Footer for consistent branding
  • Adjust Layout wrappers to inject Oxygen providers
  • Override typography and spacing defaults to match Oxygen design tokens

This leads to:

  • Repeated boilerplate setup across repositories
  • Fragile overrides that may break with Docusaurus upgrades
  • Inconsistent implementation patterns between projects
  • Increased maintenance overhead

There is no standardized way to integrate Oxygen UI cleanly without manually ejecting components.

Proposed Solution

Create a dedicated Docusaurus plugin or preset for Oxygen UI that:

  • Automatically injects required Oxygen providers at the root level
  • Replaces or extends key theme components (Theme Toggle, Navbar, Footer, Layout) without manual ejecting
  • Synchronizes light/dark mode behavior with Oxygen theming
  • Applies Oxygen design tokens and base styles globally
  • Provides a recommended layout configuration out of the box

This would:

  • Eliminate the need for manual component ejection
  • Reduce maintenance burden during Docusaurus upgrades
  • Standardize documentation setup across SDK and product repos
  • Improve developer experience and consistency

Alternatives

Provide documentation to do this manually

Please select the package issue is related to

other

Version

N/A

Reporter Checklist

  • I have searched the existing issues and this is not a duplicate.
  • I have provided all the necessary information.
  • I have verified the feature on the latest version of the package.

Contributor guide