A calm, intentional UI kit for WinForms applications
"MacOS for operators who deserve dignity"
CalmUI is a comprehensive design system and component library for Windows Forms that brings modern, human-centered UX principles to desktop applications. It transforms traditional WinForms into calm, predictable, and delightful experiences.
- Calm - Breathing room, gentle neutrals, no harsh edges or visual noise
- Intentional - Motion with purpose, no bouncing or flourish
- Local & Sovereign - On your machine, for your mission
- Predictable - Stable regions, consistent hierarchy
- Human - Plain language errors, safest action first
- 8px spacing system with consistent padding and margins
- Semantic color palette (Red/Yellow/Green/Blue for meaning, grayscale for everything else)
- Typography hierarchy with whispered weights
- Motion timings (200ms slides, 140ms fades, smooth easing)
CalmButton- Semantic buttons with hover statesCalmTextBox- Rounded inputs with focus ringsCalmDropdown- Semantic dropdown with focus statesCalmCheckbox- Animated checkboxes with groupingCalmRadioButton- Circular radio buttons with groupsCalmToggleSwitch- iOS-style sliding togglesCalmDatePicker- Calendar date selectionCalmTimePicker- Hour/minute time selectionCalmSearchBox- Search with autocomplete dropdownCalmSlider- Single value slider with draggable thumbCalmRating- Interactive star ratings
CalmProgressBar- Horizontal progress with indeterminate stateCalmCircularProgress- Circular/ring progress indicatorCalmBadge- Pill-shaped tags with dismiss optionCalmNumericBadge- Notification count badgesCalmBadgeGroup- Badge container with flow layoutCalmAvatar- User avatars with images or initialsCalmIcon- Icon display with semantic coloringCalmAlert- Inline notification boxesCalmBanner- Page-level message bannersPromptCard- Cognitive guidance cardsGuidanceStrip- Contextual assistant panelBottomStatusBar- Context-aware status displayToastNotification- Quiet, auto-dismissing toasts
CalmTabControl- Custom tab control with owner drawCalmCloseableTabControl- Tabs with close buttonsCalmAccordion- Collapsible sections with animationCalmAccordionGroup- Accordion containerCalmSplitContainer- Resizable split panels with visual gripCalmCollapsibleSplitContainer- Split container with collapse buttonCalmTooltip- Owner-drawn tooltips with semantic colorsCalmModal- Draggable overlay dialogsCalmBreadcrumb- Navigation breadcrumbsLeftRail- Collapsible navigationTopCalmBar- Application bar with workspace selector
CalmSearchBox- Advanced search with autocompleteCalmSlider- Value slider with smooth draggingCalmRangeSlider- Min/max range selectorCalmRating- Star rating componentCalmBreadcrumb- Navigation hierarchyCalmContextMenu- Right-click context menus
SlidePanel- Smooth slide transitionsFadePanel- Content fade effectsWhySourcesDrawer- Explanatory drawer
CalmChildForm- Base template for tool windowsWelcomeOnboardingForm- First-run experience
HumanMessages- Plain language error dialogsToastNotification- Quiet, auto-dismissing toastsCalmAlerts- Helper class for quick alertsCalmModals- Helper class for dialogs
Install-Package CalmUIdotnet add package CalmUI<PackageReference Include="CalmUI" Version="1.0.0" />Imports CalmUI
Dim saveButton As New CalmButton With {
.Text = "Save",
.IsPrimary = True,
.Width = 130
}Dim textBox As New CalmTextBoxContainer With {
.PlaceholderText = "Enter your text...",
.Width = 300
}Public Class MyToolForm
Inherits CalmChildForm
Public Sub New()
MyBase.New()
Me.FormTitle = "My Tool"
Me.FormSubtitle = "Description"
Me.SensitivityLevel = "Internal"
' Create sections
Dim section = CreateSection("Section Title")
Dim textBox As New CalmTextBoxContainer
Dim group = CreateFieldGroup("Label", textBox, "Helper text")
section.Controls.Add(group)
group.Dock = DockStyle.Top
AddSectionToWorkArea(section)
End Sub
End Class' Instead of MessageBox
HumanMessages.ShowSuccess("Saved", "Your data has been saved successfully.")
' Error with suggested action
HumanMessages.OperationFailed(
"save data",
"The database connection was lost.",
"Retry"
)
' Access denied
HumanMessages.AccessDenied("Edit Settings")
' Confirm destructive action
If HumanMessages.ConfirmDelete("User Account") = DialogResult.OK Then
' User confirmed
End IfToastNotification.ShowSuccess("Saved successfully")
ToastNotification.ShowError("Connection failed")
ToastNotification.ShowInfo("Searching...")
ToastNotification.ShowCaution("Review required")' Colors
Dim bg = CalmTheme.Colors.GetPrimaryBackground()
Dim blue = CalmTheme.Colors.GetSemantic(SemanticType.Primary)
' Fonts
Dim titleFont = CalmTheme.Typography.GetFont(FontLevel.AppTitle)
' Spacing
Dim padding = CalmTheme.Spacing.PanelInternalPaddingSemanticType.None ' Neutral
SemanticType.Destructive ' Red - dangerous/irreversible
SemanticType.Caution ' Yellow - review needed
SemanticType.Success ' Green - safe/complete
SemanticType.Info ' Blue - informational
SemanticType.Primary ' Blue - primary action' In a CalmChildForm-derived class
Dim section = CreateSection("Section Title")
Dim textBox As New CalmTextBoxContainer
Dim group = CreateFieldGroup(
"Field Label",
textBox,
"Optional helper text"
)
section.Controls.Add(group)
group.Dock = DockStyle.Top
AddSectionToWorkArea(section)GuidanceStrip.AddPrompt(
"Missing evidence",
"Add one supporting source before exporting.",
SemanticType.Caution,
"Add source...",
"Remind me later",
showWhy:=True
)- Everything is grayscale except semantic states
- Red = destructive/blocked/error
- Yellow = caution/review needed
- Green = safe/complete/success
- Blue = continuity/primary action/info
- Use sentence case everywhere (no ALLCAPS)
- Prefer weight differences over size jumps
- Line height: 1.4-1.5 for readability
- Base unit: 8px
- Outer padding: 24px
- Panel padding: 20px
- Section gaps: 24-28px
- Field spacing: 6px (label to field, field to helper)
- Panel slides: 200ms
- Content fades: 140ms
- Hover transitions: 100ms
- Smooth cubic easing (no bounce)
? Don't: "Error: NullReferenceException at line 42"
? Do: "Couldn't save your data. The connection was lost. [Retry]"
CalmUI/
??? Theme/
? ??? CalmTheme.vb # Design system foundation
??? Components/
? ??? CalmButton.vb # Semantic buttons
? ??? CalmTextBox.vb # Rounded inputs
? ??? CalmControls.vb # Layout helpers
? ??? PromptCard.vb # Guidance cards
? ??? GuidanceStrip.vb # Assistant panel
? ??? LeftRail.vb # Navigation rail
? ??? TopCalmBar.vb # Application bar
? ??? BottomStatusBar.vb # Status display
? ??? AnimatedPanels.vb # Animation framework
? ??? WhySourcesDrawer.vb # Explanatory drawer
??? Forms/
? ??? CalmChildForm.vb # Base template
? ??? WelcomeOnboardingForm.vb
??? Messaging/
??? CalmMessageBox.vb # Human dialogs
??? ToastNotification.vb # Quiet toasts
See the Examples folder for complete sample applications showing:
- Basic form with controls
- MDI application with shell
- Decision support tool
- Data entry form
- Settings panel
- .NET 10.0-windows or later
- Windows Forms enabled
- Visual Studio 2022 or later (for development)
Contributions are welcome! Please read CONTRIBUTING.md for guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ?? for operators who deserve dignity. Inspired by the philosophy:
"MacOS for operators who deserve dignity"
- ?? Full Documentation
- ?? Issue Tracker
- ?? Discussions
CalmUI - Bringing calm, intentional design to Windows Forms applications.