A themable design system and UI component library for Blazor applications, built with .NET 10 LTS.
MoMo.Net delivers:
- Design System: A comprehensive set of design tokens (colors, spacing, typography) with semantic theming support
- Blazor Components: A suite of themable, accessible UI controls for Blazor Server and WebAssembly
- Accessibility First: WCAG 2.1 AA compliance with proper ARIA attributes and keyboard navigation
- Performance Focused: Optimized for fast rendering and minimal bundle size
MoMo.Net/
├── src/
│ ├── MoMo.Net/ # Core library (design tokens, theming engine)
│ │ ├── Tokens/ # Design token definitions
│ │ ├── Theming/ # Theme management and resolution
│ │ ├── Components/ # Base component abstractions
│ │ └── Extensions/ # Utility extensions
│ └── MoMo.Net.Blazor/ # Blazor UI components
│ ├── Components/ # Razor components (Button, Card, Modal, etc.)
│ ├── Styling/ # CSS and design token mapping
│ └── Rendering/ # Render helpers and A11y utilities
├── tests/
│ ├── MoMo.Net.Tests/ # Unit tests (xUnit)
│ └── MoMo.Net.Blazor.Tests/ # Component tests (bUnit + xUnit)
├── docs/
│ ├── planning/ # Development planning documents
│ ├── architecture/ # Architecture decision records
│ └── design-system/ # Design system documentation
├── build/ # Build scripts and CI/CD
├── samples/ # Sample applications
└── .github/ # GitHub workflows and settings
- .NET 10 SDK (released November 11, 2025)
- A code editor (Visual Studio 2025, VS Code, or Rider)
# Restore dependencies
dotnet restore "C:\ws\MoMo.Net\MoMo.Net.sln"
# Build all projects
dotnet build "C:\ws\MoMo.Net\MoMo.Net.sln" --configuration Debug
# Run tests
dotnet test "C:\ws\MoMo.Net\MoMo.Net.sln" --configuration DebugThe solution includes:
- MoMo.Net - Core design system library
- MoMo.Net.Blazor - Blazor component library (references MoMo.Net)
- MoMo.Net.Tests - Unit tests for core library
- MoMo.Net.Blazor.Tests - Component tests with bUnit
This project follows strict engineering practices:
- SOLID Principles: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion
- CLEAN Architecture: Clear separation between Domain, Application, Interface, and Infrastructure layers
- Test-Driven Development (TDD): All features must be accompanied by tests following Red-Green-Refactor
- DRY (Don't Repeat Yourself): Code reuse through abstractions and composition
See .github/copilot-instructions.md for complete development guidelines.
- Design Tokens: Immutable value objects representing design primitives
- Theming: Layered theme resolution (User Theme → App Default → Fallback)
- Components: Composition over inheritance, with centralized styling and A11y helpers
- Testing: High coverage goals (~100% for core logic, comprehensive component testing)
This project is in active development. Contributions must adhere to the guidelines in .github/copilot-instructions.md.
Key requirements:
- Follow TDD: Write tests first, then implement
- Maintain SOLID and CLEAN principles
- Ensure WCAG 2.1 AA accessibility compliance
- Document all public APIs with XML comments
- Use conventional commits (
feat:,fix:,refactor:, etc.)
MoMo.Net follows Semantic Versioning:
- Current version: 0.1.0 (pre-release)
- Target 1.0.0: After API review and stability milestone
The default desktop background image used in sample applications is provided by Smashing Magazine:
- Title: "A Jelly November"
- Source: Smashing Magazine - Monthly Desktop Wallpapers (November 2022)
- URL: https://www.smashingmagazine.com/files/wallpapers/nov-22/a-jelly-november/nocal/nov-22-a-jelly-november-nocal-1920x1080.jpg
- License: Free for personal and commercial use (as published by Smashing Magazine)
We are grateful to Smashing Magazine for publishing beautiful, free wallpapers for the community. The wallpaper demonstrates the desktop background feature and can be replaced by users with their own images.
Copyright © 2025 MoMo.Net Contributors
Licensed under the MIT License. See LICENSE for details.
- Repository structure and initial projects
- Core design token implementation
- Theme manager and palette builders
- First Blazor component (Button)
- Sample application
- CI/CD pipeline
- NuGet package publishing
For detailed planning and progress tracking, see docs/planning/.