Sufficit.Blazor.UI
1.26.814.1643
dotnet add package Sufficit.Blazor.UI --version 1.26.814.1643
NuGet\Install-Package Sufficit.Blazor.UI -Version 1.26.814.1643
<PackageReference Include="Sufficit.Blazor.UI" Version="1.26.814.1643" />
<PackageVersion Include="Sufficit.Blazor.UI" Version="1.26.814.1643" />
<PackageReference Include="Sufficit.Blazor.UI" />
paket add Sufficit.Blazor.UI --version 1.26.814.1643
#r "nuget: Sufficit.Blazor.UI, 1.26.814.1643"
#:package Sufficit.Blazor.UI@1.26.814.1643
#addin nuget:?package=Sufficit.Blazor.UI&version=1.26.814.1643
#tool nuget:?package=Sufficit.Blazor.UI&version=1.26.814.1643
Sufficit.Blazor.UI
Razor Class Library dos componentes Sufficit User Interface (SUI). A biblioteca usa Blazor puro, HTML, CSS e módulos JavaScript ES; não depende de MudBlazor nem contém código-fonte vendorizado de outra biblioteca visual.
Compatibilidade e distribuição
- Target frameworks:
net9.0enet10.0. - Package ID:
Sufficit.Blazor.UI. - Distribuição: pacote NuGet e
ProjectReferencelocal. - Namespace dos componentes:
Sufficit.Blazor.UI.Components. - Namespace de temas:
Sufficit.Blazor.UI.Themes.
O CI compila ambos os frameworks com warnings tratados como erros, gera o
.nupkg, inspeciona seus assets e instala o pacote em consumidores Razor
mínimos net9.0 e net10.0. As dependências ASP.NET Core usam versões de
servicing exatas; o Dependabot mantém a atualização semanal, evitando que dois
restores do mesmo commit escolham versões diferentes.
Uma varredura local encontra referências à biblioteca em 11 projetos de
aplicação/biblioteca e em um projeto de testes. Dez caminhos de produção já
resolvem a estrutura atual; o sufficit-checkout ainda usa o caminho legado e
permanece como débito explícito do rollout de consumidores.
Instalação
Por pacote:
<PackageReference Include="Sufficit.Blazor.UI" Version="1.*" />
Durante desenvolvimento conjunto, um consumidor também pode apontar para
src/Sufficit.Blazor.UI.csproj com ProjectReference.
Inclua no <head> tanto o entrypoint global da RCL quanto o bundle de CSS
isolation gerado para a aplicação consumidora:
<link href="_content/Sufficit.Blazor.UI/sufficit-ui.css" rel="stylesheet" />
<link href="MinhaAplicacao.styles.css" rel="stylesheet" />
Substitua MinhaAplicacao pelo assembly do projeto host. O primeiro arquivo
carrega tokens, primitives compartilhadas, portais e as regras globais ainda
em migração; o segundo reúne os .razor.css da aplicação e das RCLs
referenciadas. Carregar apenas um deles deixa parte dos componentes sem estilo.
O entrypoint sufficit-ui.css permanece compatível durante a janela de
migração dos consumidores.
Não inclua scripts SUI manualmente. Cada componente com interop importa seu módulo JavaScript colocalizado de forma assíncrona e remove listeners no descarte.
Registre os serviços no Program.cs:
using Sufficit.Blazor.UI;
builder.Services.AddSufficitUI();
E instale o provider uma única vez na raiz interativa da aplicação:
@using Sufficit.Blazor.UI.Themes
<SUIThemeProvider>
<Routes />
</SUIThemeProvider>
Tema
O contrato público usa o casing real do código: ISUITheme, SUIPalette,
SUITypography, SUILayout, DefaultSUITheme e SUIThemeProvider.
Uma aplicação pode fornecer seu tema pelo DI:
builder.Services.AddSufficitUI(options =>
options.Theme = new IdentitySUITheme());
Ou diretamente no provider:
<SUIThemeProvider Theme="Theme">
<Routes />
</SUIThemeProvider>
O provider publica os tokens --sui-* globalmente, inclusive color-scheme,
para que menus, dialogs, tooltips e toasts anexados ao body recebam a mesma
paleta. ISUITheme.IsDark seleciona o esquema; a paleta continua pertencendo
ao tema consumidor. Sem configuração, DefaultSUITheme fornece o fallback
claro azul.
Exemplos de tokens:
- cores:
--sui-color-primary,--sui-color-primary-contrast,--sui-surface,--sui-text-primary,--sui-border; - tipografia:
--sui-font,--sui-fs-body,--sui-lh-body; - layout:
--sui-space-*,--sui-radius-*,--sui-shadow-*e--sui-control-h-*.
Catálogo de componentes
A referência por família, contratos de forms e páginas de Select, Tooltip,
NavGroup, Dialog e ThemeProvider ficam em
docs/components.
Todos os componentes públicos usam o prefixo SUI.
| Família | Componentes |
|---|---|
| Ações | SUIButton, SUIIconButton, SUILoadingButton, SUILink |
| Formulários | SUIAutocomplete, SUIChoiceCard<TValue>, SUINumericField, SUISelect<T>, SUISelectItem, SUISwitch, SUISwitchButton, SUITextField |
| Layout | SUIAppBar, SUICard, SUIContainer, SUIDivider, SUIDrawer, SUIGrid, SUILayout, SUIPageHeader, SUISpacer, SUIStack |
| Navegação | SUIItem, SUIList, SUIListItem, SUINavGroup, SUINavLink, SUITabPanel, SUITabs |
| Exibição de dados | SUIChip, SUIIcon, SUIStatusBadge, SUITable, SUITableEmpty, SUITd, SUIText, SUITh, SUITimeline, SUITimelineItem |
| Feedback | SUIAlert, SUIEmptyState, SUIProgressLinear, SUISkeletonLoader, SUIStatusBanner, SUIToast |
| Overlays | SUIConfirmDialog, SUIDialogHost, SUISnackbarHost, SUITooltip |
Enums como SUIColor, SUIVariant, SUISize, SUIButtonType, SUIEdge,
SUITypo, SUIAlign, SUIOrigin e SUITone evitam dependência de tipos
visuais externos. Algumas APIs ainda aceitam valores legados por uma ponte de
compatibilidade; código novo deve usar os enums SUI.
Exemplos
Ação e feedback
<SUIButton ColorValue="SUIColor.Primary" OnClick="SaveAsync">
Salvar alterações
</SUIButton>
<SUIStatusBanner Tone="SUITone.Success"
Title="Runtime estável"
Description="Todos os workers responderam." />
Choice card
<SUIChoiceCard TValue="PaymentMethod"
Value="PaymentMethod.Pix"
SelectedValue="SelectedMethod"
SelectedValueChanged="SelectMethod"
Name="payment-method"
Title="PIX"
Description="Confirmação rápida, a qualquer hora"
LeadingTone="SUITone.Success" />
Select
<SUISelect T="string"
Label="Região"
Value="SelectedRegion"
ValueChanged="OnRegionChanged"
MenuMaxWidth="36rem">
<SUISelectItem T="string" Value="sudeste">Sudeste</SUISelectItem>
<SUISelectItem T="string" Value="sul">Sul</SUISelectItem>
</SUISelect>
O menu do SUISelect usa a top layer quando disponível, reposiciona-se nas
bordas da viewport e suporta ArrowUp, ArrowDown, Home, End, Enter,
Space e Escape. Use <select> nativo quando postagem HTML ou o seletor do
sistema operacional forem requisitos.
Tooltip
<SUITooltip Text="Armazenamento"
Placement="SUITooltipPlacement.Right"
MaxWidth="280">
<SUIIconButton Icon="@Icons.Storage" AriaLabel="Armazenamento" />
</SUITooltip>
Engenharia e documentação
- Atividade concluída de arquitetura e hardening
- Rollout e rollback dos consumidores
- Índice de documentação
- Skill e convenções SUI
A atividade registra a migração para organização por famílias, CSS híbrido, módulos JavaScript colocalizados, catálogo executável, testes de componentes, gates de acessibilidade, pacote final e validação nos consumidores.
Licença
MIT-0 — veja LICENSE.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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
- Microsoft.AspNetCore.Components (>= 10.0.11)
- Microsoft.AspNetCore.Components.Web (>= 10.0.11)
-
net9.0
- Microsoft.AspNetCore.Components (>= 9.0.19)
- Microsoft.AspNetCore.Components.Web (>= 9.0.19)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Sufficit.Blazor.UI:
| Package | Downloads |
|---|---|
|
Sufficit.Blazor
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.26.814.1643 | 0 | 8/14/2026 |
| 1.26.812.2038 | 46 | 8/12/2026 |
| 1.26.812.1703 | 38 | 8/12/2026 |
| 1.26.812.1659 | 39 | 8/12/2026 |
| 1.26.812.1649 | 51 | 8/12/2026 |
| 1.26.812.1605 | 46 | 8/12/2026 |
| 1.26.812.1603 | 38 | 8/12/2026 |
| 1.26.812.1528 | 36 | 8/12/2026 |
| 1.26.812.808 | 59 | 8/12/2026 |
| 1.26.812.652 | 54 | 8/12/2026 |
| 1.26.812.620 | 47 | 8/12/2026 |
| 1.26.810.110 | 81 | 8/10/2026 |