Katalyst.Portal.SharedUI
1.2.0
dotnet add package Katalyst.Portal.SharedUI --version 1.2.0
NuGet\Install-Package Katalyst.Portal.SharedUI -Version 1.2.0
<PackageReference Include="Katalyst.Portal.SharedUI" Version="1.2.0" />
<PackageVersion Include="Katalyst.Portal.SharedUI" Version="1.2.0" />
<PackageReference Include="Katalyst.Portal.SharedUI" />
paket add Katalyst.Portal.SharedUI --version 1.2.0
#r "nuget: Katalyst.Portal.SharedUI, 1.2.0"
#:package Katalyst.Portal.SharedUI@1.2.0
#addin nuget:?package=Katalyst.Portal.SharedUI&version=1.2.0
#tool nuget:?package=Katalyst.Portal.SharedUI&version=1.2.0
Portal.SharedUI
Portal.SharedUI is a Razor Class Library (RCL) that provides the shared shell for the organization portal: MVC partials, bridge styles, and a bundled third-party admin theme (Bootstrap-based) as static web assets. It is designed to be referenced by Portal.Web and by module apps (HRIS, LMS, etc.) so every surface shares the same chrome and look and feel.
For platform context, see the repository root ARCHITECTURE.md (shared UI package and /_content/Katalyst.Portal.SharedUI/ URLs).
Requirements
- .NET target:
net10.0(must match the consuming ASP.NET Core app). - Host app:
Microsoft.NET.Sdk.Webwith MVC + Razor views (AddControllersWithViews, typicalMapControllerRoute/ static web assets pipeline).
What’s inside
| Area | Purpose |
|---|---|
| Views/Shared | Reusable layout partials (theme head/scripts, top nav, sidebar chrome, footer, marketing landing head/scripts). |
| Models | ModuleDefinition, PortalModules, and helpers used by nav partials. |
| wwwroot/assets | Vendor theme (CSS, JS, fonts, images, libs). Served under /_content/Katalyst.Portal.SharedUI/. |
| wwwroot/css | portal-bridge.css and legacy portal CSS used with the theme. |
| wwwroot/js | portal-common.js, portal-theme-init.js, portal-landing-head.js, portal-landing-init.js. |
| wwwroot/html | Reference-only demo HTML from the theme vendor; excluded from the NuGet static web assets (see .csproj). |
Main partials (app shell)
Use these from the host _Layout.cshtml (see Portal.Web/Views/Shared/_Layout.cshtml as the reference implementation).
| Partial | Role |
|---|---|
_PortalThemeHead |
Theme CSS/JS for the signed-in shell (Bootstrap, styles.min.css, icons, waves, simplebar, pickr, choices, portal-bridge.css). |
_PortalThemeScripts |
Shell scripts (defaultmenu, sticky, simplebar, waves, portal-theme-init, portal-common). |
_PortalTopNav |
app-header: logo, module links, theme toggle, profile / sign out. |
_PortalSidebarStart / _PortalSidebarEnd |
Wrap RenderSection("Sidebar") with the theme sidebar menu. |
_PortalFooter |
Theme footer strip. |
Marketing landing (optional)
| Partial | Role |
|---|---|
_PortalLandingHead |
Landing page styles (styles.css, Swiper, etc.). |
_PortalLandingScripts |
Landing scripts (does not load vendor landing.js without switcher DOM). |
Static files URL
All packaged wwwroot files are exposed at:
/_content/Katalyst.Portal.SharedUI/<path-under-wwwroot>
In Razor, prefer the tilde form so the app resolves the correct prefix:
<link rel="stylesheet" href="~/_content/Katalyst.Portal.SharedUI/css/portal-bridge.css" asp-append-version="true" />
Use in another project
Project reference (local / monorepo)
<ItemGroup>
<ProjectReference Include="..\Portal.SharedUI\Portal.SharedUI.csproj" />
</ItemGroup>
NuGet package
<ItemGroup>
<PackageReference Include="Katalyst.Portal.SharedUI" Version="x.y.z" />
</ItemGroup>
Host configuration
Add typical MVC + static assets setup (same generation as Portal.Web).
In
Views/_ViewImports.cshtml, if you use package models:@using Portal.SharedUI.Models @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpersCompose
Views/Shared/_Layout.cshtmlwith the partials above,@RenderBody(), session modal markup if you useportal-common.jstoken warning, and@RenderSection("Sidebar", required: false)between_PortalSidebarStartand_PortalSidebarEnd.Nav behavior depends on
ClaimsPrincipaland roles (seePortalTopNavHelper/ModuleDefinition). Align Keycloak (or your IdP) role claims withPortalModulesor replace the partials with your own.
Pack performance
The package includes the full wwwroot/assets tree (thousands of files). dotnet pack can take a long time; that is expected.
Publishing to NuGet.org
Maintainers: step-by-step dotnet pack, metadata on the .csproj, and dotnet nuget push are documented in CONTRIBUTING.md.
License and vendor theme
Theme files under wwwroot/assets/ are third-party material. You must comply with the vendor license for use and for redistribution (including publishing this project as a NuGet package). The package author is responsible for nuget.org policy compliance.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.