# UI Theme — current state: ScadaBridge Repo: `~/Desktop/ScadaBridge`. Stack: .NET 10, Blazor SSR (Akka.NET cluster + central UI). UI surfaces: `src/ZB.MOM.WW.ScadaBridge.CentralUI/` (RCL) and `src/ZB.MOM.WW.ScadaBridge.Host/` (the Blazor host that references it). All paths below are relative to the repo root. Verified against source on 2026-06-01. **Summary:** ScadaBridge uses a sidebar nav layout and the Technical-Light tokens, with the correct font-path prefix. The sidebar uses `.sidebar` / `.nav-link` classes (same idiom as MxGateway), not `.side-rail` / `.rail-link`. Adoption is **medium effort** — sidebar-class migration + `MainLayout` replacement, no layout redesign. ScadaBridge has several scoped `.razor.css` files that stay per-project. --- ## 1. CSS / design tokens **`theme.css`** — 379-line hand copy of the Technical-Light design system. - Path: `src/ZB.MOM.WW.ScadaBridge.CentralUI/wwwroot/css/theme.css` - Font path: `url('../fonts/ibm-plex-sans-400.woff2')` (lines 24, 29, 34) - **Correct path** — resolves from `wwwroot/css/` to `wwwroot/fonts/` without 404. This is the canonical `url('../fonts/…')` that the RCL also uses. - Wired in the Host's `App.razor` line 9: ``. **`site.css`** — 128 lines of per-app page layout (sidebar shell, nav overrides). - Path: `src/ZB.MOM.WW.ScadaBridge.CentralUI/wwwroot/css/site.css` - Wired in the Host's `App.razor` line 11: ``. - Contains: `.sidebar` layout block (~4–95), Bootstrap-icons integration for nav items. - After adoption: the `.sidebar` layout section is superseded by RCL `layout.css`. The remaining rules (Bootstrap-icons, misc overrides) stay in `site.css`. Note: ScadaBridge uses the `_content/ZB.MOM.WW.ScadaBridge.CentralUI/…` static-web-asset path for its own CentralUI RCL assets — the same mechanism `ZB.MOM.WW.Theme` will use. --- ## 2. IBM Plex fonts Three `.woff2` files vendored into: `src/ZB.MOM.WW.ScadaBridge.CentralUI/wwwroot/fonts/` - `ibm-plex-sans-400.woff2` - `ibm-plex-sans-600.woff2` - `ibm-plex-mono-500.woff2` After adoption: delete all three from `CentralUI/wwwroot/fonts/`; the RCL serves them from `_content/ZB.MOM.WW.Theme/fonts/`. --- ## 3. Layout shell **`MainLayout.razor`** — 29-line static layout. `@inherits LayoutComponentBase`. No `@rendermode` directive (static SSR). - Path: `src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Layout/MainLayout.razor` - Root element: `
`. No `.app-shell` class. - Renders `` inside a Bootstrap collapse div, `
`, plus `` and `` at the bottom. **`NavMenu.razor`** — 200+ line interactive sidebar component. `@implements IDisposable`. - Path: `src/ZB.MOM.WW.ScadaBridge.CentralUI/Components/Layout/NavMenu.razor` - Brand: `
ScadaBridge
` (lines ~9–9). - Nav structure: `