MahApps.Metro is a mature WPF UI library that provides a comprehensive set of custom controls, styles, themes, and helpers for building modern desktop applications with a Metro/Windows 10/WinUI aesthetic. The library offers over 30 custom controls including HamburgerMenu, ContentDialog, InfoBar, RangeSlider, NumericUpDown, ColorPicker, AutoSuggestBox, SplitView, and a full dialog system with login, input, message, and progress dialogs. It ships with three visual style sets (Metro, Win10, WinUI) and integrates deeply with the ControlzEx theming framework for runtime theme switching. The architecture is a standard .NET library with a large public API surface exposed via dependency properties, attached properties, custom behaviors, converters, and automation peers. The codebase is heavily tested (350+ NUnit tests) with a custom WindowTestFixture for UI integration tests. Sample applications (MahApps.Metro.Gallery, MahApps.Metro.Demo) demonstrate real-world usage, and project templates (dotnet new) provide scaffolding for new apps. The library also includes project templates (MahAppsMetroApp, MahAppsMetroMvvmApp, MahAppsMetroNavApp) and a Visual Studio manifest. Despite its age and large API surface, the library remains actively maintained with recent commits, issue triage, and support for .NET 6-10. Technical drift is moderate: some obsolete code (ClipBorder) and Win32 P/Invoke are present, and the three style sets must be kept in sync. The test suite is comprehensive but pixel-level and resource-key-dependent, making it somewhat brittle. Overall, this is a high-quality, production-tested UI library with strong architectural patterns and reusable components.
This repository provides a library and build-time plugin for embedding a React (or Preact / React Native Web) web application inside a React Native WebView, with automatic bundling and two-way communication between the native and web sides. It consists of a Metro transformer plugin that uses Babel AST analysis to detect entry files (those calling webViewRender or webViewCreateRoot), then bundles the web app via esbuild with custom asset loaders for images, CSS, JSON, text, Markdown, and WebAssembly. The bundled output is wrapped in an HTML string and returned as the module source, which is then loaded into a react-native-webview at runtime. The library exposes React hooks (useWebViewMessage for native, useNativeMessage and emit for web) that handle message passing via window.postMessage and ReactNativeWebView.postMessage. The architecture is a classic library + build plugin pattern, with clear separation between native (React Native) and web (React DOM) concerns. The codebase is TypeScript, has end-to-end Playwright tests with HTML snapshots, unit tests, and thorough type definitions. It is designed for rapid prototyping or features that require web-specific APIs (e.g., WebAssembly, contenteditable) without rewriting the entire UI for React Native.