BlazorWinOld 2.5.0

dotnet add package BlazorWinOld --version 2.5.0
                    
NuGet\Install-Package BlazorWinOld -Version 2.5.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="BlazorWinOld" Version="2.5.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="BlazorWinOld" Version="2.5.0" />
                    
Directory.Packages.props
<PackageReference Include="BlazorWinOld" />
                    
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 BlazorWinOld --version 2.5.0
                    
#r "nuget: BlazorWinOld, 2.5.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 BlazorWinOld@2.5.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=BlazorWinOld&version=2.5.0
                    
Install as a Cake Addin
#tool nuget:?package=BlazorWinOld&version=2.5.0
                    
Install as a Cake Tool

Blazor.WinOld

NuGet BlazorWinOld Nuget Package GitHub

A Blazor UI component library that brings back the nostalgic look and feel of classic Windows operating systems (Windows 98, XP, 7 and 10). Create retro-styled web applications with authentic Windows UI components.

🪶 Lightweight the NuGet package is only ~300 KB.

Compatible with Blazor Server and Blazor WebAssembly

DEMO and DOCS : https://tossnet.github.io/Blazor-WinOld/

thumbnail

Overview

BlazorWinOld provides a collection of Blazor components styled to match the iconic Windows interfaces from the late 90s and 2000s. Whether you're building a nostalgia-driven project or need that classic Windows aesthetic, this library delivers pixel-perfect components including buttons, message boxes, windows, tabs, and more.

💡 Already using a UI framework? No problem! BlazorWinOld is fully compatible alongside other UI libraries (MudBlazor, Radzen, Fluent UI…). You can adopt just the components you need, such as WinOldContextMenu or WinOldMessageBox, without any conflict.

https://github.com/user-attachments/assets/f5a8b771-8f57-4c40-8e1e-6ae8b29a05d7

Installation

Install-Package BlazorWinOld

or

dotnet add package BlazorWinOld

For client-side and server-side Blazor - add script section (head section)

 <link href="_content/BlazorWinOld/css/blazorwinold.css" rel="stylesheet" />

In Program.cs add this line

builder.Services.AddWinOldComponents();

and in the bottom of your MainLayout.razor add these lines (optional, only if you use MessageBox or InputBox)

<WinOldMessageBoxHost />  
<WinOldInputBoxHost />    
<WinOldDialogHost /> 

<a name="ReleaseNotes"></a>Release Notes

<details open="open"><summary>🚧 Upcoming (not yet released)</summary>

  • WinOldButton: preview of a new DOS appearance style — retro terminal-inspired button with IBM VGA font and classic shadow effect </details>

<details open="open"><summary>Version 2.5.0</summary>

  • New component WinOldSlider </details>

<details><summary>Version 2.4.0</summary>

  • WinOldMenuItem: new IconCssClass and IconTemplate parameters. Display icons from any external library (Bootstrap Icons, Font Awesome, custom SVG…) without bundling any icon dependency in the package </details>

<details><summary>Version 2.3.0</summary>

  • The WinOldMenu component can be used as a Context Menu by setting the IsContextMenu property to true </details>

<details><summary>Version 2.2.1</summary>

  • Accessibility: added ARIA attributes (role, aria-expanded, aria-selected, aria-modal, aria-labelledby…) to all components </details>

<details><summary>Version 2.2.0</summary>

  • Added new WinOldMenu
  • Button : winXP and win7 , add default style </details>

<details><summary>Version 2.1.0</summary>

  • Added new WinOldNumberBox component for numeric input with support for generic types
  • Enhanced WinOldInputBox with support for numeric types: int, decimal, and double
  • New extension methods: ShowInputBox<int?>(), ShowInputBox<decimal?>(), and ShowInputBox<double?>() </details>

<details><summary>Version 2.0.0</summary>

  • Added new Windows 10 style theme
  • Windows 10 is now the default style applied to all components </details>

<details><summary>Version 1.5.0</summary>

  • Added WinOldDialog component: a fully draggable dialog window supporting custom child content </details>

<details><summary>Version 1.4.0</summary>

  • Added drag-and-drop support for MessageBox and InputBox, allowing users to move the window freely across the screen. </details>

<details><summary>Version 1.3.1</summary>

  • Improve disabled style for some components (Frame, Options, Tab)
  • WinOldTabs : a Tab can be disabled. </details>

<details><summary>Version 1.3.0 ⚠️ BREAKING CHANGE</summary>

  • DialogOptions has been renamed to MessageBoxOptions for WinOldMessageBox
  • Migration: Replace 'new DialogOptions' with 'new MessageBoxOptions' (simple Find/Replace)
  • New WinOldInputBox component
  • Button : Add "Default" Property style for win98 button </details>

<details><summary>Version 1.2.9</summary>

  • Fix height of Tabs
  • Fix disabled style of WinOldButton </details>

<details><summary>Version 1.2.8</summary>

  • win7 : separation of font size from font family </details>

<details><summary>Version 1.2.7</summary>

  • Improved checkbox component rendering
  • Fixed button and selectbox label colors on Safari </details>

<details><summary>Version 1.2.6</summary>

  • Added disabled attribute support on WinOldSelect component
  • Added Select page in the demo site </details>

<details><summary>Version 1.2.2</summary>

  • Added .AddWinOldComponents() to simplify declaration </details>

Fonts

This project uses the Ultimate Oldschool PC Font Pack by VileR (int10h.org).
Font used: WebPlus IBM VGA 8x14

Thanks

I used these repo for most of the css and icons:

OS emulator :

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  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

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.5.0 68 4/23/2026
2.4.0 94 4/14/2026
2.3.0 91 4/12/2026
2.2.0 89 4/11/2026
2.1.0 103 4/5/2026
2.0.0 97 4/4/2026
1.5.0 96 3/30/2026
1.4.0 97 3/15/2026
1.3.1 104 2/12/2026
1.3.0 101 2/10/2026
1.2.9 108 2/4/2026
1.2.8 134 1/29/2026
1.2.7 243 1/26/2026
1.2.6 105 1/23/2026
1.2.5 137 1/19/2026
1.2.4 103 1/19/2026
1.2.3 300 4/13/2025
1.2.2 216 3/16/2025
1.2.1 210 12/27/2024
1.2.0 167 12/26/2024
Loading failed

v2.5.0 : New components WinOldSlider!