Lumeo.Motion
3.0.1
See the version list below for details.
dotnet add package Lumeo.Motion --version 3.0.1
NuGet\Install-Package Lumeo.Motion -Version 3.0.1
<PackageReference Include="Lumeo.Motion" Version="3.0.1" />
<PackageVersion Include="Lumeo.Motion" Version="3.0.1" />
<PackageReference Include="Lumeo.Motion" />
paket add Lumeo.Motion --version 3.0.1
#r "nuget: Lumeo.Motion, 3.0.1"
#:package Lumeo.Motion@3.0.1
#addin nuget:?package=Lumeo.Motion&version=3.0.1
#tool nuget:?package=Lumeo.Motion&version=3.0.1
Lumeo
149 accessible Blazor components, AI-ready, motion-integrated, shadcn-inspired.
149 components · 2,500+ tests · 14 locales · mobile-first · MIT · .NET 10
Lumeo 3.0 is stable and on NuGet.
dotnet add package Lumeo. SeeMIGRATION.mdfor upgrade notes from 2.x.
What's new in 3.0
- BREAKING — unified enums. 39 per-component
Size/Side/Align/Orientationenums collapsed intoLumeo.Size,Lumeo.Side,Lumeo.Align,Lumeo.Orientation. SeeMIGRATION.md. - Overlay dismiss gate —
OnBeforeClose+DismissEventArgson Dialog / Sheet / Drawer / AlertDialog, with auto-cancelling reasons (escape/outside/swipe/close/action/cancel). - Nested overlay z-stacking — Dialog-in-Dialog and Sheet-in-Dialog now layer correctly via monotonic z-index allocation.
- DatePicker keyboard input — type a date in the configured
Format; auto-parses on Enter/blur with anOnParseErrorcallback. - DateTimePicker time zone — bind a
DateTimeOffsetwhile displaying in a specificTimeZoneInfo(DST-aware). - Async field validators —
FormField.AsyncValidatorwith debounce, in-flight cancellation, and a pending spinner.FormContext.IsAnyFieldValidatingaggregator. - Menu submenus —
DropdownMenuSub/ContextMenuSub/MenubarSubtriplets with recursive nesting, hover-open with intent delay, ArrowRight/ArrowLeft keyboard. - Tabs drag-to-reorder — opt-in
TabsList.ReorderablewithOnReordercallback (consumer mutates the collection). Form.ResetValues()— restore model from initial JSON snapshot; pairs with the existingReset()(which only clears errors).- Toast pause + variant-aware ARIA — toasts pause auto-dismiss on hover/focus;
Destructivetoasts renderrole="alert"+aria-live="assertive", othersrole="status"+ polite. - Tooltip collision flip — fixed-position with auto-flip away from viewport edges (no API change).
- ARIA live error regions — form-control error text now announces to screen readers.
- Internal helpers —
LumeoIds,Cx,DebouncedValue<T>for consistent IDs, class composition, and debounce across the library. All components now injectIComponentInteropService(the interface) so test projects can swap a mock.
Feature overview
- 149 components — accessible UI primitives, Blazor WASM & Server
- AI primitives —
PromptInput,StreamingText,AgentMessageList,ToolCallCard,ReasoningDisplay - Motion primitives —
Marquee,NumberTicker,TextReveal,BlurFade,BorderBeam,ShimmerButton,Sparkles,Sparkline - Dashboard tiles —
KpiCard,SparkCard,Delta,Bento,BentoTile,PickList<T> - Scheduler + Gantt + RichTextEditor — FullCalendar + Frappe Gantt + TipTap wrappers, lazy-loaded
- 14 locales + RTL — EN/DE/ES/FR/IT/PT/NL/PL/JA/ZH-CN/KO/AR/RU/TR via
ILumeoLocalizer;IThemeService.SetDirectionAsync()for RTL - Excel / PDF / CSV export —
IDataGridExportService(ClosedXML + QuestPDF) [LumeoForm]source generator — annotate a POCO, get a fully-bound Form for free- Culture-aware —
Cultureon DataGrid, DatePicker, DateTimePicker, NumberInput, Slider, Statistic - BottomNav + Splitter — mobile tab bar (safe-area, optional FAB) and resizable multi-pane layouts
- Block templates — SignIn, SignUp, ResetPassword, OtpVerify, Pricing, Hero, Dashboard, Settings
- 8 color themes + dark mode — Zinc, Blue, Green, Rose, Orange, Violet, Amber, Teal; class-based dark mode
- Tailwind CSS v4 — CSS variable architecture, zero hardcoded colors
- Programmatic OverlayService — open dialogs, sheets, drawers, toasts from code
- 30+ chart types — ECharts-backed; BarChart
LabelStrategy="Smart"auto-rotates dense labels - DataGrid — sort, filter, inline edit, column pin, row group, drag-to-reorder, fullscreen, layout JSON, Excel/PDF/CSV export
- Form validation — DataAnnotations + custom validators with styled error states
- Accessible — ARIA roles, keyboard navigation, focus trapping, screen-reader support
- Mobile-first — touch gestures (swipe, pinch, long-press, pull-to-refresh, swipe-actions), 44×44 px hit targets per WCAG 2.5.5, iOS-style wheel pickers, haptic feedback service, safe-area helpers — try it at
/docs/mobile - 2,500+ bUnit tests — CI-enforced on every PR
Component Categories
| Category | Components |
|---|---|
| Layout | Stack, Flex, Grid, Container, Center, Spacer, AspectRatio, Resizable, ScrollArea, Separator, Splitter |
| Typography | Text, Heading, Link, Code |
| Forms | Input, Select, Combobox, DatePicker, DateRangePicker, DateTimePicker, TimePicker, NumberInput, PasswordInput, InputMask, Checkbox, Switch, RadioGroup, Slider, Toggle, ToggleGroup, FileUpload, OtpInput, TagInput, ColorPicker, Textarea, Form, Mention, Cascader, PickList, RichTextEditor |
| Data Display | Table, DataTable, DataGrid, Card, Badge, Chip, Avatar, Calendar, Scheduler, Gantt, Descriptions, Statistic, Timeline, Steps, Rating, Image, ImageCompare, TreeView, QRCode, Watermark, Sparkline |
| Feedback | Toast, Alert, Progress, Spinner, Skeleton, EmptyState, Result |
| Overlay | Dialog, Sheet, Drawer, AlertDialog, Popover, Tooltip, HoverCard, ContextMenu, DropdownMenu, Command, PopConfirm, Tour |
| Navigation | Tabs, Breadcrumb, Pagination, Sidebar, BottomNav, Menubar, NavigationMenu, MegaMenu, Accordion, Collapsible, Scrollspy, BackToTop, Affix, SpeedDial |
| AI | PromptInput, StreamingText, AgentMessageList, AgentMessage, ToolCallCard, ReasoningDisplay |
| Motion | via Lumeo.Motion satellite — BlurFade, BorderBeam, Marquee, NumberTicker, ShimmerButton, Sparkles, TextReveal, AnimatedBeam, Meteors, Globe, Dock, Spotlight, TypingAnimation, Confetti, MagneticButton, AnimatedGradientText, Ripple, OrbitingCircles, and 12 more |
| Dashboard | Bento, BentoTile, KpiCard, SparkCard, Delta |
| Drag & Drop | Kanban, SortableList, Transfer |
| Charts | 30+ ECharts types — Bar (smart labels), Line, Area, Pie, Donut, Radar, Scatter, Heatmap, Treemap, Sankey, Funnel, Gauge, Candlestick, Boxplot, Calendar, Sunburst, Graph, Parallel, ThemeRiver, WordCloud, GeoMap |
Installation
Lumeo follows the DevExpress / Telerik / Microsoft.Extensions model: a small core package plus opt-in satellites for heavy components — you only pay for what you use. Live, per-package brotli sizes are tracked at lumeo.nativ.sh/docs/bundle-facts.
# Core — always required (the bulk of the component set)
dotnet add package Lumeo
# Add satellites only for the components you use:
dotnet add package Lumeo.Charts # Chart and 30+ subtypes
dotnet add package Lumeo.DataGrid # DataGrid, DataTable, Filter
dotnet add package Lumeo.Editor # RichTextEditor
dotnet add package Lumeo.Scheduler # Scheduler
dotnet add package Lumeo.Gantt # Gantt
dotnet add package Lumeo.Motion # 30 motion primitives
Or reference them in your .csproj. All packages share one version (lockstep) — always upgrade them together:
<ItemGroup>
<PackageReference Include="Lumeo" Version="3.0.0" />
<PackageReference Include="Lumeo.Charts" Version="3.0.0" />
<PackageReference Include="Lumeo.DataGrid" Version="3.0.0" />
<PackageReference Include="Lumeo.Editor" Version="3.0.0" />
<PackageReference Include="Lumeo.Scheduler" Version="3.0.0" />
<PackageReference Include="Lumeo.Gantt" Version="3.0.0" />
<PackageReference Include="Lumeo.Motion" Version="3.0.0" />
</ItemGroup>
@using Lumeo covers all satellite components — no extra @using directives needed.
Companion packages
Lumeo ships with three optional companion packages that extend the core library.
Lumeo.Cli — shadcn-style vendoring
Copy component source into your own repo so you can fork and customize it — like shadcn/ui on the JS side.
dotnet tool install -g Lumeo.Cli
lumeo init # one-time — writes lumeo.config.json
lumeo add button dialog # copy components into your repo
lumeo list # list all registry entries
lumeo diff button # diff vendored copy vs registry
Lumeo.Templates — dotnet new scaffolders
dotnet new install Lumeo.Templates
dotnet new lumeo-page -n SettingsPage
dotnet new lumeo-form -n RegisterForm
dotnet new lumeo-component -n FancyCard
@lumeo-ui/mcp-server — MCP server for LLM codegen
Give Claude, ChatGPT, Copilot, or Cursor the schemas + examples they need to write correct Lumeo markup. Nine tools: lumeo_list_components, lumeo_search, lumeo_get_component (full per-parameter schema), lumeo_get_example, lumeo_get_install, lumeo_validate_markup (pre-flight check Razor for hallucinated APIs / bad enums / bad nesting), lumeo_get_theme_tokens, lumeo_list_patterns / lumeo_get_pattern, lumeo_changelog.
npm install -g @lumeo-ui/mcp-server
# then wire into Claude Desktop / Cursor / your MCP client config
Lumeo Agent Skill — skills/lumeo/
A portable agent skill that teaches Claude Code, Cursor, Codex, Gemini CLI, OpenCode and 50+ other AI agents the Lumeo conventions and how to drive the lumeo-mcp server.
npx skills add github.com/Brain2k-0005/Lumeo/skills/lumeo
Installs to .agents/skills/lumeo/ in your current project with symlinks for every supported agent. Use the Vercel-Labs skills CLI — discoverable at skills.sh. The skill auto-activates whenever you mention a Lumeo component.
Other install methods (manual copy, per-project, global) are documented in skills/lumeo/README.md.
Setup
1. Register services
// Program.cs
using Lumeo;
builder.Services.AddLumeo();
2. Add imports
@* _Imports.razor *@
@using Lumeo
@using Lumeo.Services
3. Include scripts and styles
Add to your index.html (WASM) or _Host.cshtml (Server):
<link rel="stylesheet" href="_content/Lumeo/css/lumeo.css" />
<link rel="stylesheet" href="_content/Lumeo/css/lumeo-utilities.css" />
<script src="_content/Lumeo/js/theme.js"></script>
<script src="_content/Lumeo/js/components.js" type="module"></script>
That's enough to make every Lumeo component render correctly. You don't need Tailwind installed in your app.
4. (Optional) Use Tailwind in your own markup
If you want to write Tailwind classes yourself (in your pages / your own components), install Tailwind CSS v4 in your app and import Lumeo's tokens so utilities like bg-primary resolve against Lumeo's theme:
@import "tailwindcss";
/* Import Lumeo theme variables */
@import "./_content/Lumeo/css/lumeo.css" layer(base);
/* Dark mode variant */
@variant dark (&:where(.dark, .dark *));
/* Map Lumeo CSS variables to Tailwind theme */
@theme {
--color-background: var(--color-background);
--color-foreground: var(--color-foreground);
--color-primary: var(--color-primary);
--color-primary-foreground: var(--color-primary-foreground);
/* ... see lumeo.css for full variable list */
}
In this setup you can drop lumeo-utilities.css from step 3 — your own Tailwind build will emit every utility Lumeo uses, plus anything you use in your app.
For alternate color themes, import additional theme files:
@import "./_content/Lumeo/css/themes/_blue.css" layer(base);
@import "./_content/Lumeo/css/themes/_green.css" layer(base);
@import "./_content/Lumeo/css/themes/_rose.css" layer(base);
@import "./_content/Lumeo/css/themes/_orange.css" layer(base);
@import "./_content/Lumeo/css/themes/_violet.css" layer(base);
@import "./_content/Lumeo/css/themes/_amber.css" layer(base);
@import "./_content/Lumeo/css/themes/_teal.css" layer(base);
Usage
@using Lumeo
<Card>
<CardHeader>
<Heading Level="3">Hello Lumeo</Heading>
<Text Size="sm" Color="muted">A beautiful component library.</Text>
</CardHeader>
<CardContent>
<Button OnClick="@(() => count++)">
Clicked @count times
</Button>
</CardContent>
</Card>
@code {
private int count;
}
Dialogs
<Dialog @bind-IsOpen="dialogOpen">
<DialogTrigger>
<Button Variant="Button.ButtonVariant.Outline">Open Dialog</Button>
</DialogTrigger>
<DialogContent Size="DialogContent.DialogSize.Lg">
<DialogHeader>
<DialogTitle>Are you sure?</DialogTitle>
<DialogDescription>This action cannot be undone.</DialogDescription>
</DialogHeader>
<DialogFooter>
<Button Variant="Button.ButtonVariant.Secondary" OnClick="@(() => dialogOpen = false)">Cancel</Button>
<Button OnClick="Confirm">Confirm</Button>
</DialogFooter>
</DialogContent>
</Dialog>
Toasts
@inject ToastService Toast
<Button OnClick="@(() => Toast.Success("Saved!", "Your changes have been saved."))">
Save
</Button>
Form Validation
<Form Model="model" OnValidSubmit="HandleSubmit">
<FormField Label="Email" HelpText="We'll never share your email." Required>
<Input @bind-Value="model.Email" type="email" />
</FormField>
<FormField Label="Password" Required>
<PasswordInput @bind-Value="model.Password" ShowStrength />
</FormField>
<Button type="submit">Sign Up</Button>
</Form>
Theming
Switch color schemes at runtime
<ThemeSwitcher />
Or programmatically via ThemeService:
@inject ThemeService Theme
<Button OnClick="@(() => Theme.SetSchemeAsync("blue"))">
Switch to Blue
</Button>
Available themes
| Theme | Primary Color | Character |
|---|---|---|
| Zinc | hsl(240 5% 26%) |
Clean, neutral |
| Blue | hsl(221 83% 53%) |
Corporate, trust |
| Green | hsl(142 71% 45%) |
Growth, eco |
| Rose | hsl(347 77% 50%) |
Warm, energetic |
| Orange | hsl(14 70% 50%) |
Warm brand |
| Violet | hsl(262 83% 58%) |
Bold, creative |
| Amber | hsl(38 92% 50%) |
Energy, attention |
| Teal | hsl(173 80% 40%) |
Calm, modern |
Dark mode
<ThemeToggle />
@inject ThemeService Theme
await Theme.SetModeAsync(ThemeMode.Dark); // Force dark
await Theme.SetModeAsync(ThemeMode.Light); // Force light
await Theme.SetModeAsync(ThemeMode.System); // Follow OS preference
await Theme.ToggleModeAsync(); // Toggle current
Documentation
- Live Docs — Full component demos and API reference
- Form Validation Guide — DataAnnotations, custom validators, examples
- Accessibility Guide — ARIA roles, keyboard patterns, focus management
- Contributing Guide — Setup, component creation, testing, code style
- Changelog — Full release history
- Migration Guide — 2.x → 3.0 upgrade notes
Tech Stack
- .NET 10 / Blazor
- Tailwind CSS v4
- ECharts for charts, FullCalendar for Scheduler, Frappe Gantt for Gantt, TipTap for RichTextEditor
- ClosedXML + QuestPDF for DataGrid export
- Blazicons.Lucide for icons
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
- Blazicons.Lucide (>= 2.1.3)
- Lumeo (>= 3.0.1)
- Microsoft.AspNetCore.Components.Web (>= 10.0.6)
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 |
|---|---|---|
| 3.0.3 | 0 | 5/21/2026 |
| 3.0.2 | 0 | 5/21/2026 |
| 3.0.1 | 0 | 5/21/2026 |
| 3.0.0 | 0 | 5/21/2026 |
| 2.2.2 | 12 | 5/21/2026 |
| 2.2.1 | 34 | 5/21/2026 |
| 2.2.0 | 36 | 5/20/2026 |
| 2.1.4 | 33 | 5/20/2026 |
| 2.1.3 | 38 | 5/20/2026 |
| 2.1.2 | 38 | 5/20/2026 |
| 2.1.1 | 36 | 5/20/2026 |
| 2.1.0 | 33 | 5/20/2026 |
| 2.0.1 | 55 | 5/19/2026 |
| 2.0.0 | 75 | 5/19/2026 |
| 2.0.0-rc.54 | 49 | 5/15/2026 |
| 2.0.0-rc.52 | 42 | 5/15/2026 |
| 2.0.0-rc.51 | 44 | 5/14/2026 |
| 2.0.0-rc.50 | 43 | 5/14/2026 |
| 2.0.0-rc.49 | 42 | 5/14/2026 |
| 2.0.0-rc.48 | 43 | 5/14/2026 |