R0 Retr-0

Retr-0 documentation

Welcome to the Control Panel.

Everything you need to install, tune, and contribute to Retr-0.

Installation

Retr-0 is currently distributed as an unpacked Chrome extension while the project is being developed.

  1. Install Node.js 20 or newer.
  2. Clone the repository and run npm install.
  3. Run npm run build.
  4. Open chrome://extensions, enable Developer mode, and choose Load unpacked.
  5. Select the repository's dist directory.
The extension requests storage and broad page access only because the visual layer needs to run on the sites you choose to browse. It has no analytics or server connection.

Using Retr-0

Open the popup from Chrome's toolbar. The global switch controls whether the extension is active. The current-site switch adds or removes the current domain from the exclusion list. Settings persist through browser restarts.

Modes and intensity

Windows 98 Retro is the full translation: gray surfaces, title bars, hard edges, native-feeling controls, and local cursors. Modern 98 keeps the same design vocabulary with calmer depth and spacing. Intensity changes how deeply the visual system takes over; it is global rather than per-site.

How it works

The content layer classifies elements by their semantic HTML, ARIA roles, class names, and visual signals. A button receives a button treatment; a dialog becomes a window; a card becomes a beveled surface. A small site-adapter layer preserves recognizable brand accents without rebuilding the site.

content/
  classifier.ts       semantic element roles
  transformer.ts      idempotent class application
  mutation-handler.ts dynamic DOM + SPA updates
  theme-manager.ts    mode and intensity tokens
  site-adapter.ts     brand identity hints

Troubleshooting

If a site needs its original UI, use the current-site switch or remove the domain from Settings → Websites. If an app updates its interface after load, Retr-0 observes inserted elements without rescanning the whole document. Browser-internal pages such as chrome:// cannot be transformed by Chrome extensions.

Development

Run the type checker with npm run typecheck and build the extension with npm run build. Load dist in Chrome after each build. Keep content-engine code independent from the popup and settings surfaces so site adapters can grow without coupling to UI.

Privacy

Retr-0 is local-first. It does not collect browsing history, page contents, telemetry, advertising identifiers, or account data. Settings are stored using Chrome's sync storage so preferences can follow the browser profile.

Contributing

Read CONTRIBUTING.md, open an issue with a reproducible site example, or submit a focused pull request. Please do not add remote assets, tracking, or site-specific hacks when a reusable semantic rule will do.