fluentui-blazor
Ajuda seu agente a usar componentes visuais para aplicativos Blazor. Ele fornece orientações sobre como usar a biblioteca Fluent UI Blazor. Útil para criar interfaces de usuário modernas.
O que ela faz
Este guia ensina como usar os componentes da biblioteca Fluent UI Blazor em seus aplicativos. Ele mostra como configurar, adicionar componentes como botões e menus, e usar funcionalidades como diálogos e notificações.
Quando usar
- ✓Ao criar um aplicativo Blazor com componentes visuais modernos.
- ✓Quando precisar adicionar botões, menus, campos de texto ou tabelas interativas.
- ✓Ao querer exibir mensagens, diálogos ou notificações para o usuário.
Exemplo do que pedir para a IA
“Como eu adiciono um botão clicável na minha página Blazor usando Fluent UI?”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
A biblioteca se configura automaticamente. Você só precisa adicionar alguns 'provedores' no layout principal e registrar a biblioteca no código de inicialização do seu projeto. Depois, pode usar os componentes diretamente no seu código.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill fluentui-blazorOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/fluentui-blazor/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Guia de Uso do Fluent UI Blazor
Esta habilidade ensina como usar corretamente o pacote NuGet Microsoft.FluentUI.AspNetCore.Components (versão 4) em aplicações Blazor.
Regras Críticas
1. Não são necessárias tags manuais <script> ou <link>
A biblioteca carrega automaticamente todo o CSS e JS através dos ativos web estáticos do Blazor e inicializadores de JS. Nunca diga aos usuários para adicionar tags <script> ou <link> para a biblioteca principal.
2. Providers são obrigatórios para componentes baseados em serviços
Esses componentes provedores DEVEM ser adicionados ao layout raiz (por exemplo, MainLayout.razor) para que seus serviços correspondentes funcionem. Sem eles, as chamadas de serviço falham silenciosamente (sem erro, sem UI).
<FluentToastProvider />
<FluentDialogProvider />
<FluentMessageBarProvider />
<FluentTooltipProvider />
<FluentKeyCodeProvider />
3. Registro de serviço em Program.cs
builder.Services.AddFluentUIComponents();
// Or with configuration:
builder.Services.AddFluentUIComponents(options =>
{
options.UseTooltipServiceProvider = true; // default: true
options.ServiceLifetime = ServiceLifetime.Scoped; // default
});
Regras de ServiceLifetime:
ServiceLifetime.Scoped— para Blazor Server / Interativo (padrão)ServiceLifetime.Singleton— para Blazor WebAssembly standaloneServiceLifetime.Transient— lançaNotSupportedException
4. Ícones requerem um pacote NuGet separado
dotnet add package Microsoft.FluentUI.AspNetCore.Components.Icons
Uso com um alias @using:
@using Icons = Microsoft.FluentUI.AspNetCore.Components.Icons
<FluentIcon Value="@(Icons.Regular.Size24.Save)" />
<FluentIcon Value="@(Icons.Filled.Size20.Delete)" Color="@Color.Error" />
Padrão: Icons.[Variant].[Size].[Name]
- Variantes:
Regular,Filled - Tamanhos:
Size12,Size16,Size20,Size24,Size28,Size32,Size48
Imagem personalizada: Icon.FromImageUrl("/path/to/image.png")
Nunca use nomes de ícones baseados em strings — ícones são classes fortemente tipadas.
5. Modelo de vinculação do componente List
FluentSelect<TOption>, FluentCombobox<TOption>, FluentListbox<TOption> e FluentAutocomplete<TOption> NÃO funcionam como <InputSelect>. Eles usam:
Items— a fonte de dados (IEnumerable<TOption>)OptionText—Func<TOption, string?>para extrair o texto de exibiçãoOptionValue—Func<TOption, string?>para extrair o valor como stringSelectedOption/SelectedOptionChanged— para vinculação de seleção únicaSelectedOptions/SelectedOptionsChanged— para vinculação de multisseleção
<FluentSelect Items="@countries"
OptionText="@(c => c.Name)"
OptionValue="@(c => c.Code)"
@bind-SelectedOption="@selectedCountry"
Label="Country" />
NÃO assim (padrão incorreto):
@* WRONG — do not use InputSelect pattern *@
<FluentSelect @bind-Value="@selectedValue">
<option value="1">One</option>
</FluentSelect>
6. Específicos do FluentAutocomplete
- Use
ValueText(NÃOValue— está obsoleto) para o texto de entrada de pesquisa OnOptionsSearché o callback obrigatório para filtrar opções- O padrão é
Multiple="true"
<FluentAutocomplete TOption="Person"
OnOptionsSearch="@OnSearch"
OptionText="@(p => p.FullName)"
@bind-SelectedOptions="@selectedPeople"
Label="Search people" />
@code {
private void OnSearch(OptionsSearchEventArgs<Person> args)
{
args.Items = allPeople.Where(p =>
p.FullName.Contains(args.Text, StringComparison.OrdinalIgnoreCase));
}
}
7. Padrão do serviço de Diálogo
NÃO alterne a visibilidade de tags <FluentDialog>. O padrão do serviço é:
- Crie um componente de conteúdo implementando
IDialogContentComponent<TData>:
public partial class EditPersonDialog : IDialogContentComponent<Person>
{
[Parameter] public Person Content { get; set; } = default!;
[CascadingParameter] public FluentDialog Dialog { get; set; } = default!;
private async Task SaveAsync()
{
await Dialog.CloseAsync(Content);
}
private async Task CancelAsync()
{
await Dialog.CancelAsync();
}
}
- Mostre o diálogo via
IDialogService:
[Inject] private IDialogService DialogService { get; set; } = default!;
private async Task ShowEditDialog()
{
var dialog = await DialogService.ShowDialogAsync<EditPersonDialog, Person>(
person,
…
Perguntas frequentes
Preciso adicionar arquivos CSS ou JavaScript manualmente?
Não, a biblioteca carrega tudo automaticamente. Nunca adicione tags `<script>` ou `<link>` manualmente para a biblioteca principal.
Por que meus diálogos ou notificações não funcionam?
Você precisa adicionar os componentes 'Provider' (como `<FluentDialogProvider />`) no seu layout principal (`MainLayout.razor`) para que eles funcionem corretamente.
Como uso ícones?
Você precisa instalar um pacote NuGet adicional (`Microsoft.FluentUI.AspNetCore.Components.Icons`) e usar as classes de ícone diretamente no código, como `Icons.Regular.Size24.Save`.
Detalhes
Descrição original do autor
Guide for using the Microsoft Fluent UI Blazor component library (Microsoft.FluentUI.AspNetCore.Components NuGet package) in Blazor applications. Use this when the user is building a Blazor app with Fluent UI components, setting up the library, using FluentUI components like FluentButton, FluentDataGrid, FluentDialog, FluentToast, FluentNavMenu, FluentTextField, FluentSelect, FluentAutocomplete, F
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #5148
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
angular-developer
Ajuda seu agente a criar código Angular e a dar conselhos sobre a estrutura do projeto. É útil para iniciar novos projetos, criar partes do código ou melhorar a performance e acessibilidade.
affaan-m/ECC
frontend-a11y
Ajuda seu agente a tornar interfaces web acessíveis para todos. Ele garante que sites e apps funcionem bem com leitores de tela e navegação por teclado.
affaan-m/ECC
frontend-patterns
Faz seu agente aplicar padrões modernos no desenvolvimento frontend. Ele otimiza performance, gerencia estado e segue boas práticas em React e Next.js.
affaan-m/ECC