Webority.Ui.Razor 0.108.0

dotnet add package Webority.Ui.Razor --version 0.108.0
                    
NuGet\Install-Package Webority.Ui.Razor -Version 0.108.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Webority.Ui.Razor" Version="0.108.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Webority.Ui.Razor" Version="0.108.0" />
                    
Directory.Packages.props
<PackageReference Include="Webority.Ui.Razor" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Webority.Ui.Razor --version 0.108.0
                    
#r "nuget: Webority.Ui.Razor, 0.108.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Webority.Ui.Razor@0.108.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Webority.Ui.Razor&version=0.108.0
                    
Install as a Cake Addin
#tool nuget:?package=Webority.Ui.Razor&version=0.108.0
                    
Install as a Cake Tool

Webority.Ui.Razor

Webority's internal Razor component library — <app-*> tag helpers plus the shared design system, as a Razor Class Library.

Published publicly so dotnet restore needs no private feed. Built for Webority products; no support commitment outside them.

Use

<PackageReference Include="Webority.Ui.Razor" Version="[0.28.0]" />

_ViewImports.cshtml:

@addTagHelper *, Webority.Ui.Razor

Layout: the stylesheet, Bootstrap's script, the shared custom elements (required by the select, autocomplete, multiselect, phone and date-picker components), and the behaviour layer:

<link rel="stylesheet" href="~/_content/Webority.Ui.Razor/css/webority-theme.css" asp-append-version="true" />
<script src="~/_content/Webority.Ui.Razor/js/bootstrap.bundle.min.js" defer asp-append-version="true"></script>
<script src="~/_content/Webority.Ui.Razor/js/ui-elements.global.js" defer asp-append-version="true"></script>
<script src="~/_content/Webority.Ui.Razor/js/webority-ui.js" defer asp-append-version="true"></script>

Put these in <head>. defer starts the downloads at once without holding up the page, and runs the three scripts in this order once the page is parsed: the same moment scripts at the end of <body> would run, so the controls are ready no later than that. asp-append-version adds a hash of each file to its URL, so a browser keeps the files cached until a package upgrade changes them instead of checking on every page.

An inline <script> runs as the page is parsed, before deferred scripts. Page code that calls WUI, WeborityUiElements or bootstrap therefore goes in a DOMContentLoaded handler or its own defer script, which runs after these three.

ui-elements.global.js carries the shared helpers and the common controls. Every other element (kanban, multi-select, phone, the tour and the rest, plus the chart, calendar, rich text, file viewer and chat engines) loads from beside it the first time the page shows one, including in a server-loaded modal or a swapped fragment, so the layout needs nothing more. Page code that calls a method of such an element first awaits WeborityUiElements.whenElementsReady(). Under a nonce policy the loader copies the nonce of ui-elements.global.js onto what it loads.

The package ships Bootstrap's script (the version the theme is built against), and several components need it: <app-tabs> switches panes through data-bs-toggle="tab", and dismissible <app-alert>s and dropdowns use Bootstrap's behaviour too. Without it the markup renders but tabs never switch. Do not also load another copy of Bootstrap's script (a CDN tag or a vendored file): two copies bind every control twice.

A page that renders <app-phone-number-input> or <app-country-select> also links the country flags, which are a separate stylesheet so other pages do not pay for them:

<link rel="stylesheet" href="~/_content/Webority.Ui.Razor/css/webority-flags.css" />

The phone number rules (formatting and validity by country) are not in ui-elements.global.js either: they are large, so they have their own script, ui-phone.global.js. The field writes no script tag: <wui-phone> (from ui-elements.global.js) adds that script the first time a field on the page needs it, beside ui-elements.global.js and with its cache-bust. The layout needs nothing for it, and a phone field in a server-loaded modal fragment works and logs nothing.

<app-file-viewer> is not in ui-elements.global.js: pdf.js is large, so the viewer has its own script, and the tag adds it after the first viewer on a request, once. The layout needs nothing for it. pdf.js's cmaps, standard fonts and wasm decoders ship in this package too, beside that script, where the viewer finds them; asset-base names another folder only if you host them elsewhere:

<app-file-viewer src="/files/contract.pdf" name="Contract.pdf" download="true">
  <app-file-viewer-actions><app-button size="sm">Approve</app-button></app-file-viewer-actions>
</app-file-viewer>

<app-picture> renders a responsive <picture> (AVIF and WebP sources plus an <img> carrying the real width and height) from an image manifest in the web root. The image build script (tools/build-images.mjs in the source repo; it needs sharp) writes the variants beside each JPG or PNG and the manifest at wwwroot/assets/images.manifest.json; copy it to <web head>/tools/ and run node <web head>/tools/build-images.mjs [--force]. Set another manifest path, if needed, with services.Configure<AppPictureOptions>(o => o.ManifestPath = "img/manifest.json").

<app-picture src="/assets/hero/team.jpg" alt="The team" sizes="(min-width: 992px) 50vw, 100vw" class="rounded" />
<app-picture src="/assets/hero/cover.jpg" alt="" loading="eager" fetchpriority="high" />

src must be a key of the manifest. A missing key throws in Development and renders a plain <img> in other environments.

Then:

<app-button variant="primary">Save changes</app-button>

Component catalogue: https://ui-razor.webority.dev

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (8)

Showing the top 5 NuGet packages that depend on Webority.Ui.Razor:

Package Downloads
Webority.Support.Admin

The support team's pages for Webority admin portals: the ticket queue and the ticket page, in Webority.Ui.Razor markup (Bootstrap 5, <app-*> tag helpers) inside the product's own admin layout, under a Support area the product secures with one policy.

Webority.Email.Studio

Email Studio, the shared admin pages for editable email: the email list and the block editor with its preview, live checks, test send and second-person approval, in Webority.Ui.Razor markup (Bootstrap 5, <app-*> tag helpers) inside the product's own admin layout, under an EmailStudio area the product secures with an editor policy and an approver policy.

Webority.Audit.Razor

The audit log pages for Webority admin portals: a server-driven grid at /Audit and a record page at /Audit/Detail/{publicId}, in Webority.Ui.Razor markup (Bootstrap 5, <app-*> tag helpers) inside the product's own _ApplicationLayout, under an Audit area the product secures with one policy from configuration.

Webority.Store.Admin

The marketing team's store pages for Webority admin portals: the reviews inbox with AI reply drafts, the listing editor per locale with the store limits, store health and the store log, in Webority.Ui.Razor markup (Bootstrap 5, <app-*> tag helpers) inside the product's own admin layout, under a Store area the product secures with one policy.

Webority.Seo.Admin

SEO pages for Webority admin portals: Search Console queries and pages, Bing Webmaster Tools, Core Web Vitals from PageSpeed Insights, tracked keyword rankings and the collection runs, read from the Webority.Seo.Collector tables in Webority.Ui.Razor markup inside the product's admin layout, under a Seo area the product secures with one policy.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.108.0 0 10/30/2026
0.107.0 0 10/30/2026
0.106.0 0 10/30/2026
0.105.0 112 10/30/2026
0.104.1 67 10/29/2026
0.104.0 87 10/29/2026
0.103.0 94 10/29/2026
0.102.3 93 10/29/2026
0.102.2 115 10/28/2026
0.102.1 93 10/28/2026
0.102.0 83 10/28/2026
0.101.5 98 10/28/2026
0.101.4 78 10/28/2026
0.101.3 87 10/28/2026
0.101.1 92 10/27/2026
0.101.0 122 10/27/2026
0.100.0 89 10/27/2026
0.99.0 99 10/27/2026
0.98.0 78 10/27/2026
0.96.0 114 10/25/2026
Loading failed