Pular para o conteúdo
Skillpedia
Sites e telas (frontend)40 mil · #5148

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

https://github.com/github/awesome-copilot/blob/main/skills/fluentui-blazor/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/fluentui-blazor/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
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-blazor

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/fluentui-blazor/SKILL.md -o SKILL.md
Conteú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 standalone
  • ServiceLifetime.Transient — lança NotSupportedException

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ção
  • OptionValue — Func<TOption, string?> para extrair o valor como string
  • SelectedOption / SelectedOptionChanged — para vinculação de seleção única
  • SelectedOptions / 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ÃO Value — 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 é:

  1. 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();
    }
}
  1. 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

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas