LegacyBoost.WebForms.DesignSystem
1.0.0
See the version list below for details.
dotnet add package LegacyBoost.WebForms.DesignSystem --version 1.0.0
NuGet\Install-Package LegacyBoost.WebForms.DesignSystem -Version 1.0.0
<PackageReference Include="LegacyBoost.WebForms.DesignSystem" Version="1.0.0" />
<PackageVersion Include="LegacyBoost.WebForms.DesignSystem" Version="1.0.0" />
<PackageReference Include="LegacyBoost.WebForms.DesignSystem" />
paket add LegacyBoost.WebForms.DesignSystem --version 1.0.0
#r "nuget: LegacyBoost.WebForms.DesignSystem, 1.0.0"
#:package LegacyBoost.WebForms.DesignSystem@1.0.0
#addin nuget:?package=LegacyBoost.WebForms.DesignSystem&version=1.0.0
#tool nuget:?package=LegacyBoost.WebForms.DesignSystem&version=1.0.0
LegacyBoost Design System
A server-rendered design system for classic ASP.NET Web Forms.
LegacyBoost Design System packages reusable UI controls, utility-first CSS, and embedded frontend assets into a single control library so teams can build consistent applications without a Node toolchain.
Why this project
- Built for ASP.NET Web Forms (.NET Framework 4.7.2+)
- 60+ reusable UI controls in a single assembly
- Utility CSS + component CSS + reboot/theme tokens
- Embedded CSS, JS, fonts, and vendor assets
- Rich documentation site with live examples
Project status
- Distribution direction: NuGet-first for public consumption
- Current verified install path: DLL reference (available now in this repository)
- NuGet package metadata and feed details: planned
If you plan to publish this repository immediately, keep the DLL setup below as the primary install path until NuGet packaging is added.
Compatibility
- .NET Framework: 4.7.2 to 4.8.x
- UI stack: ASP.NET Web Forms (.aspx, .ascx, .master)
- Hosting: IIS / IIS Express
- Browsers: modern Chromium, Firefox, Safari
What is included
Control library
The CustomControls project provides a broad component surface, including:
- Forms and input: TextInput, TextSelect, Select, CheckInput, RadioInput, FileInput, MaskedInput, RangeSlider, NumberStepper, Typeahead, SignaturePad
- Navigation and layout: AdminShell, Sidebar, Tabs, Drawer, Breadcrumb, Pagination, Navigation
- Feedback and state: Alert, Notification, Progress, Spinner, Skeleton, ConfirmDialog, Tooltip
- Data display: Card, Badge, Avatar, StatCard, Timeline, GridDataTable, CrudTable
- Advanced widgets: Chart, FullCalendar, GanttChart, KanbanBoard, Map, QrCode, PdfViewer, MarkdownViewer
CSS system
The CSS model is layered for predictable overrides:
- Reboot and theme tokens (base)
- Component classes (semantic defaults)
- Utility classes (highest priority)
Practical rule: utility classes intentionally override component defaults.
Documentation site
The Documentation project contains the full design system docs:
- Introduction guides
- Component pages with examples and API usage
- Utility CSS reference
- Template pages
Quick start (current stable path: DLL)
1) Build the solution
Open DesignSystem.sln in Visual Studio and build with Debug or Release.
The control library outputs CustomControls.dll.
2) Reference CustomControls.dll in your Web Forms app
Add a project or file reference to CustomControls.dll in your target application.
3) Register the My prefix in Web.config
<configuration>
<system.web>
<pages>
<controls>
<add tagPrefix="My" namespace="CustomControls" assembly="CustomControls" />
</controls>
</pages>
</system.web>
</configuration>
4) Add My:Head to your page head
<head runat="server">
<My:Head runat="server" />
</head>
This injects framework CSS/JS and core metadata behavior.
5) Use controls in markup
<form runat="server">
<div class="p-6 grid gap-4">
<h1 class="text-2xl font-bold">Hello LegacyBoost</h1>
<My:CustomButton runat="server" Text="Primary Action" Intent="Primary" />
</div>
</form>
NuGet-first publishing plan
The recommended public distribution model is NuGet.
NuGet package metadata is now prepared using the nuspec file:
- Package ID: LegacyBoost.WebForms.DesignSystem
- Packaging file: LegacyBoost.WebForms.DesignSystem.nuspec
Before first publish, update the following values in the nuspec:
- projectUrl
- repository URL
- version and release notes
After publishing to NuGet.org, add install instructions and badges to this README.
Theming and design tokens
You can apply global tokens with CssTheme or override CSS variables directly.
Example token override:
:root {
--blue-600: #1d4ed8;
--radius-md: .5rem;
--font-sans: "Public Sans", sans-serif;
}
Theme mode classes are supported (theme-light and theme-dark), including automatic behavior for user system preference.
Development workflow
Projects in this solution
- CustomControls: core control library and embedded assets
- CssGenerator: CSS generation utility used in the build flow
- Documentation: live docs site for components and utilities
CSS generation behavior
CustomControls includes a post-build step that runs CssGenerator and rebuilds with a guard flag to avoid recursion. Keep this in mind when changing CSS source composition.
Running the documentation site
- Open DesignSystem.sln in Visual Studio
- Set Documentation as startup project
- Build and run with IIS Express
- Browse component pages under /Documentation/Components
Versioning and upgrades
- Intended scheme: Semantic Versioning (MAJOR.MINOR.PATCH)
- Upgrade and release notes are documented in the documentation site under Introduction/UpgradeGuidelinesDoc.aspx
For GitHub releases, prefer tagging and release notes that mirror the upgrade guidance.
Repository structure
CustomControls/ Core controls, CSS model, embedded assets
CssGenerator/ CSS build/generation utility
Documentation/ Web Forms documentation site
Publishing checklist for maintainers
- Ensure README install instructions match actual released artifacts
- Add or update NuGet metadata before publishing NuGet commands
- Validate documentation links and examples against current component APIs
- Publish changelog entries for each release
Contributing
Contributions are welcome. Please read CONTRIBUTING.md before opening a pull request.
License
This project is licensed under the MIT License. See LICENSE for details.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET Framework | net472 is compatible. net48 was computed. net481 was computed. |
-
.NETFramework 4.7.2
- NUglify (= 1.21.17)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Initial public package release.