FlagstoneUI.Core
0.0.1-preview1
See the version list below for details.
dotnet add package FlagstoneUI.Core --version 0.0.1-preview1
NuGet\Install-Package FlagstoneUI.Core -Version 0.0.1-preview1
<PackageReference Include="FlagstoneUI.Core" Version="0.0.1-preview1" />
<PackageVersion Include="FlagstoneUI.Core" Version="0.0.1-preview1" />
<PackageReference Include="FlagstoneUI.Core" />
paket add FlagstoneUI.Core --version 0.0.1-preview1
#r "nuget: FlagstoneUI.Core, 0.0.1-preview1"
#:package FlagstoneUI.Core@0.0.1-preview1
#addin nuget:?package=FlagstoneUI.Core&version=0.0.1-preview1&prerelease
#tool nuget:?package=FlagstoneUI.Core&version=0.0.1-preview1&prerelease
<div align="center"> <img src="assets/logov1.svg" alt="Flagstone UI Logo" width="400" height="400"> <h1>Flagstone UI</h1> <p><strong>A customisable UI framework for .NET MAUI</strong></p> <h2>⚠️ WARNING! Experimental ⚠️</h2> </div>
Bootstrap for .NET MAUI. A token-based theming system that makes it easy to create beautiful, consistent UIs without deep platform knowledge.
Quick Start
# Clone and explore
git clone https://github.com/matt-goldman/flagstone-ui.git
cd flagstone-ui
# Run the sample app (requires .NET 10 SDK + MAUI workload)
dotnet build
dotnet run --project samples/FlagstoneUI.SampleApp
📚 Full Documentation & Guides | 🚀 Quickstart Guide
What Does It Look Like?
<FsButton
Text="Click Me"
BackgroundColor="{DynamicResource Color.Primary}"
CornerRadius="{DynamicResource Shape.CornerRadius.Medium}" />
<FsEntry
Placeholder="Enter email"
BackgroundColor="{DynamicResource Color.Surface}"
BorderColor="{DynamicResource Color.Border}">
<FsEntry.Behaviors>
<toolkit:EmailValidationBehavior />
</FsEntry.Behaviors>
</FsEntry>
<FsCard
BackgroundColor="{DynamicResource Color.Surface}"
CornerRadius="{DynamicResource Shape.CornerRadius.Large}"
Padding="{DynamicResource Spacing.Medium}">
<Label Text="Card Content" />
</FsCard>
Note: Above assumes you're using XAML global and implicit namespaces. Without that you would consume these with a namespace prefix like <fs:FsButton>...</fs:FsButton>.
Key Concepts
Design Tokens → Define your design system once (colors, spacing, typography, shapes) Theme Files → Apply tokens to controls via XAML resource dictionaries Flagstone Controls → Enhanced MAUI controls that expose themable properties
Think of it like Bootstrap for web dev: you're still using standard HTML elements, but with consistent, customizable styling.
Why Flagstone UI?
| Without Flagstone | With Flagstone |
|---|---|
| Write platform-specific handlers for styling | Use XAML properties that work everywhere |
| Different code for iOS/Android/Windows borders | One BorderColor property |
| Scattered styling across codebehind | Centralized theme tokens |
| Reinvent styling for each app | Reusable, shareable themes |
Example: Getting a rounded, bordered text entry:
<Entry Placeholder="Email" />
<FsEntry
Placeholder="Email"
CornerRadius="8"
BorderColor="#2196F3"
BorderWidth="2" />
Pairs perfectly with MAUI Community Toolkit - Flagstone handles theming, MCT provides behaviors/converters.
Learn more: Architecture | Technical Plan
Current Status
🎯 Available Now:
- ✅ Token system foundation
- ✅ Three core controls:
FsButton,FsEntry,FsCard - ✅ Material theme included
- ✅ Sample app with multiple themes
- ✅ Complete documentation
🚧 In Progress:
- 🔨 Additional controls (labels, lists, navigation)
- 🔨 Bootstrap theme converter (convert web design systems to Flagstone themes)
- 🔨 AI-powered theme generation tooling
🔮 Planned:
- Visual theme generator (web & native)
- Theme sharing gallery
- Figma/Adobe XD to Flagstone converters
See the full roadmap for details.
Project Structure
flagstone-ui/
├── src/
│ ├── FlagstoneUI.Core/ # Core controls and token system
│ ├── FlagstoneUI.Themes.Material/ # Material theme
│ └── FlagstoneUI.Blocks/ # Reusable app screens (planned for MVP)
├── samples/
│ ├── FlagstoneUI.SampleApp/ # Main showcase app
│ └── FlagstoneUI.ThemePlayground/ # Theme experimentation
├── docs/ # 📚 Complete documentation
└── tools/ # AI tooling & converters
Note: The Blocks project will contain common UI building blocks (signup/signin forms, basic CRUD, etc.) and is planned as an extension for the MVP milestone. Currently at POC stage.
Contributing
This is an early experiment - feedback is gold! 🙏
Most important: Is this useful? Tell me if you'd use it (or why you wouldn't). This helps validate the project direction.
Ways to help:
- 💬 Try the samples and share feedback (Issues welcome!)
- 🐛 Report bugs or suggest features
- 💻 Submit PRs (bug fixes, docs, new controls)
- 🎨 Create and share themes
- 📖 Improve documentation
Questions? Open a Discussion or ping @matt-goldman
License: MIT | Status: Experimental POC | Compatibility: .NET 10 + MAUI
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-android36.0 is compatible. net10.0-browser was computed. net10.0-ios was computed. net10.0-ios26.0 is compatible. net10.0-maccatalyst was computed. net10.0-maccatalyst26.0 is compatible. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Microsoft.Extensions.Logging.Debug (>= 10.0.0)
- Microsoft.Maui.Controls (>= 10.0.11)
-
net10.0-android36.0
- Microsoft.Extensions.Logging.Debug (>= 10.0.0)
- Microsoft.Maui.Controls (>= 10.0.11)
-
net10.0-ios26.0
- Microsoft.Extensions.Logging.Debug (>= 10.0.0)
- Microsoft.Maui.Controls (>= 10.0.11)
-
net10.0-maccatalyst26.0
- Microsoft.Extensions.Logging.Debug (>= 10.0.0)
- Microsoft.Maui.Controls (>= 10.0.11)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on FlagstoneUI.Core:
| Package | Downloads |
|---|---|
|
FlagstoneUI.Themes.Material
FlagstoneUI Material theme library providing Material Design styling for .NET MAUI controls. |
|
|
FlagstoneUI.Integrations.MCT
FlagstoneUI integration library for MAUI Community Toolkit. |
GitHub repositories
This package is not used by any popular GitHub repositories.