Token导航 LogoToken导航TokenDH.com
前端设计需要联网github未标认证来源可访问许可证需确认审计通过

syncfusion-blazor-chat-ui同步融合 Blazor 聊天界面

Agent Skill

用于辅助界面设计、视觉规范、排版、配色、布局和交互体验优化。它适合让 Agent 根据产品场景整理页面结构、生成 UI 方案、检查视觉一致性或改进组件层级。使用时需要结合现有品牌、设计系统和用户任务,不应只堆装饰元素;涉及真实页面改动时,应通过截图或浏览器预览检查文本溢出、对齐和响应式表现。

总安装

855

周安装

36

GitHub Stars

公开资料未说明

下载量

220
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:syncfusion-blazor-chat-ui(同步融合 Blazor 聊天界面)
来源仓库:https://github.com/syncfusion/blazor-ui-components-skills
仓库路径:skills/syncfusion-blazor-chat-ui
安装命令:
npx skills add https://github.com/syncfusion/blazor-ui-components-skills --skill syncfusion-blazor-chat-ui
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/syncfusion/blazor-ui-components-skills --skill syncfusion-blazor-chat-ui

简介

聊天界面组件,提供消息列表、输入框和多媒体消息支持。

  • 适合在线客服、团队协作或即时通讯类应用的前端实现。
  • 集成 WebSocket 或 SignalR 实现实时通信,消息历史可本地缓存。
  • 发送文件时应限制类型和大小,防止服务器资源耗尽。
  • UI 渲染需考虑不同屏幕尺寸,确保移动端消息气泡自适应布局。

SKILL.md

Syncfusion Blazor Chat UI

Build feature-rich conversational chat interfaces with the Syncfusion Blazor Chat UI component. This skill provides complete guidance for creating multi-user messaging applications, chat panels, and interactive conversation UIs in Blazor Server, WebAssembly, and Web App projects.

Component Overview

The SfChatUI component is a specialized UI control for building conversational chat applications. It manages the complete chat interface including:

  • Message Management: Collections of chat messages with full message lifecycle
  • User Management: Multi-user support with profiles, avatars, and status
  • Presence Features: Typing indicators, online status, user identification
  • Rich Rendering: Templates for messages, timestamps, typing indicators, suggestions
  • File Support: File attachment upload and integration
  • Event System: Lifecycle events and user interaction callbacks
  • Customization: Complete styling and theming control

Navigation Guide

Getting Started

📄 Read: references/getting-started.md

  • Installation and NuGet package setup
  • Basic component structure and initialization
  • User and message configuration
  • Minimal working example with conversation

Messages & Users Management

📄 Read: references/messages-and-users.md

  • ChatMessage configuration and properties
  • UserModel setup and properties
  • Message text content management
  • Author identification and user assignment
  • Building message collections and conversation history

User Profiles & Avatars

📄 Read: references/user-profiles-avatars.md

  • Avatar URL configuration with images
  • Avatar background color customization
  • User status indicators (online, offline, busy, away)
  • Custom CSS styling for users
  • User identification and display names

Typing Indicators

📄 Read: references/typing-indicators.md

  • TypingUsers property configuration
  • Showing/hiding typing status indicators
  • Managing multiple typing users
  • Dynamic typing status updates
  • Typing indicator template customization

Timestamps & Formatting

📄 Read: references/timestamps-and-formatting.md

  • ShowTimestamp property to enable/disable timestamps
  • Message timestamp configuration
  • TimestampFormat customization
  • TimeBreak separators (Today, Yesterday, specific dates)
  • TimeBreak template styling

Templates & Customization

📄 Read: references/templates-and-customization.md

  • EmptyChatTemplate for initial state display
  • MessageTemplate for custom message rendering
  • TimeBreakTemplate for date separators
  • TypingUsersTemplate for typing display
  • SuggestionTemplate for quick reply buttons
  • CSS styling and theme integration

Attachments & Events

📄 Read: references/attachments-and-events.md

  • File attachment configuration (Enable)
  • SaveUrl and RemoveUrl endpoint setup
  • AllowedFileTypes filtering
  • MaxFileSize limits and constraints
  • SaveFormat options (Blob vs Base64)
  • Event handling: Created, MessageSend, UserTyping
  • Attachment events: OnAttachmentUploadReady, UploadSuccess, UploadFailed

Programmatic API & Methods 🆕

📄 Read: references/programmatic-api.md

  • ScrollToBottomAsync() for navigating to latest messages
  • ScrollToMessageAsync() for jumping to specific messages
  • UpdateMessageAsync() for editing existing messages
  • FocusAsync() for input field control
  • Complete examples with error handling

Advanced Features 🆕

📄 Read: references/advanced-features.md

  • AutoScrollToBottom configuration
  • EnableCompactMode for group chats
  • Header and Footer customization
  • Mention system (@mention) setup
  • Quick reply suggestions
  • LoadOnDemand for performance
  • RTL (Right-to-Left) support
  • Custom styling with CssClass

Quick Start

@using Syncfusion.Blazor.InteractiveChat

<div style="height: 500px; width: 600px;">
    <SfChatUI ID="chatUser" User="CurrentUser" Messages="Messages"></SfChatUI>
</div>

@code {
    private UserModel CurrentUser = new UserModel
    {
        ID = "user1",
        User = "Albert",
        AvatarBgColor = "#4a90e2"
    };

    private UserModel OtherUser = new UserModel
    {
        ID = "user2",
        User = "Michale Suyama",
        AvatarBgColor = "#7cb342"
    };

    private List<ChatMessage> Messages = new()
    {
        new ChatMessage
        {
            Text = "Hi, how are you?",
            Author = new UserModel { ID = "user1", User = "Albert" }
        },
        new ChatMessage
        {
            Text = "I'm doing great! How about you?",
            Author = new UserModel { ID = "user2", User = "Michale Suyama" }
        }
    };
}

Common Patterns

Pattern 1: Multi-User Conversation with Status

Display multiple users with online/offline status indicators:

<SfChatUI ID="chat" User="CurrentUser" Messages="Messages">
</SfChatUI>

@code {
    private UserModel CurrentUser = new UserModel
    {
        ID = "user1",
        User = "Albert",
        StatusIconCss = "e-icons e-user-online"
    };

    private List<ChatMessage> Messages = new();
}

Pattern 2: Chat with Typing Indicators

Show when users are typing:

<SfChatUI
    ID="chat"
    User="CurrentUser"
    Messages="Messages"
    TypingUsers="TypingUsers">
</SfChatUI>

@code {
    private List<UserModel> TypingUsers = new();

    private void UserStartTyping(UserModel user)
    {
        TypingUsers.Add(user);
        StateHasChanged();
    }
}

Pattern 3: Custom Message Templates

Personalize message appearance:

<SfChatUI ID="chat" User="CurrentUser" Messages="Messages">
    <MessageTemplate>
        <div class="custom-message">
            <strong>@context.Message.Author.User</strong>
            <p>@((MarkupString)context.Message.Text)</p>
        </div>
    </MessageTemplate>
</SfChatUI>

Pattern 4: Chat with File Attachments

Enable users to share files:

<SfChatUI ID="chat" User="CurrentUser" Messages="Messages">
    <ChatUIAttachment
        Enable
        SaveUrl="@SaveUrl"
        RemoveUrl="@RemoveUrl"
        AllowedFileTypes=".pdf,.docx,.jpg,.png">
    </ChatUIAttachment>
</SfChatUI>

@code {
    private string SaveUrl = "api/upload/save";
    private string RemoveUrl = "api/upload/remove";
}

Pattern 5: Auto-Scroll with Programmatic Control

Automatically scroll to bottom and navigate to specific messages:

<SfChatUI
    @ref="chatRef"
    ID="chat"
    User="CurrentUser"
    Messages="Messages"
    AutoScrollToBottom="true">
</SfChatUI>

<button @onclick="ScrollToBottom">Go to Latest</button>
<button @onclick="FocusInput">Focus Input</button>

@code {
    private SfChatUI chatRef;

    private async Task ScrollToBottom()
    {
        await chatRef.ScrollToBottomAsync();
    }

    private async Task FocusInput()
    {
        await chatRef.FocusAsync();
    }
}

Pattern 6: Message Editing with UpdateMessageAsync

Edit existing messages programmatically:

<SfChatUI @ref="chatRef" ID="chat" User="CurrentUser" Messages="Messages">
</SfChatUI>

@code {
    private SfChatUI chatRef;

    private async Task EditMessage(string messageId, string newText)
    {
        var message = Messages.FirstOrDefault(m => m.ID == messageId);
        if (message != null)
        {
            message.Text = newText;
            await chatRef.UpdateMessageAsync(message, messageId);
        }
    }
}

Pattern 7: Mention System for User Tagging

Enable users to mention others in messages:

<SfChatUI
    ID="chat"
    User="CurrentUser"
    Messages="Messages"
    MentionChar="@"
    MentionUsers="AllUsers"
    ValueSelecting="@OnMentionSelected">
</SfChatUI>

@code {
    private List<UserModel> AllUsers = new()
    {
        new UserModel { ID = "user1", User = "Albert" },
        new UserModel { ID = "user2", User = "Michale" },
        new UserModel { ID = "user3", User = "Reena" }
    };

    private void OnMentionSelected(MentionValueSelectingEventArgs<UserModel> args)
    {
        Console.WriteLine($"User mentioned: {args.ItemData.User}");
    }
}

Pattern 8: Compact Mode for Group Chats

Display all messages left-aligned for group chat style:

<SfChatUI
    ID="chat"
    User="CurrentUser"
    Messages="Messages"
    EnableCompactMode="true">
</SfChatUI>

@code {
    // In compact mode, all messages appear on left side
    // Useful for group chat or support ticket interfaces
}

Key Props

PropertyTypePurpose
IDstringUnique component identifier
UserUserModelCurrent logged-in user
MessagesList<ChatMessage>Conversation messages collection
ShowTimestampboolDisplay message timestamps (default: true)
TimestampFormatstringDate/time format (default: "dd/MM/yyyy hh:mm tt")
ShowTimeBreakboolDisplay date separators between messages
TypingUsersList<UserModel>Users currently typing
AutoScrollToBottomboolAuto-scroll to bottom on new messages (default: false)
EnableCompactModeboolAlign all messages to left side (default: false)
HeightstringComponent height (default: "100%")
WidthstringComponent width (default: "100%")
HeaderTextstringHeader text display (default: "Chat")
ShowHeaderboolShow/hide header (default: true)
ShowFooterboolShow/hide footer (default: true)
PlaceholderstringInput placeholder text (default: "Type your message…")
SuggestionsList<string>Quick reply suggestions
MentionCharcharMention trigger character (default: '@')
MentionUsersList<UserModel>Users available for mention
LoadOnDemandboolLoad messages on demand (default: false)
CssClassstringCustom CSS styling
EnableRtlboolRight-to-left direction support (default: false)
EmptyChatTemplateRenderFragmentCustom empty state content
MessageTemplateRenderFragment<MessageTemplateContext>Custom message rendering
TimeBreakTemplateRenderFragment<TimeBreakTemplateContext>Custom date separator
TypingUsersTemplateRenderFragment<TypingUsersTemplateContext>Custom typing indicator
SuggestionTemplateRenderFragment<SuggestionTemplateContext>Custom suggestion display
FooterTemplateRenderFragmentCustom footer area
PreviewTemplateRenderFragment<PreviewTemplateContext>Custom attachment preview

Programmatic Methods

The Chat UI component provides async methods for programmatic control:

ScrollToBottomAsync()

Scrolls the chat to the bottom, useful for showing latest messages:

@ref="chatRef"

private SfChatUI chatRef;

private async Task ShowLatestMessages()
{
    await chatRef.ScrollToBottomAsync();
}

ScrollToMessageAsync(string messageId)

Navigates to a specific message by ID:

private async Task NavigateToMessage(string targetMessageId)
{
    await chatRef.ScrollToMessageAsync(targetMessageId);
}

UpdateMessageAsync(ChatMessage message, string msgId)

Updates an existing message content:

private async Task EditMessage(string messageId, string newText)
{
    var message = Messages.FirstOrDefault(m => m.ID == messageId);
    if (message != null)
    {
        message.Text = newText;
        await chatRef.UpdateMessageAsync(message, messageId);
    }
}

FocusAsync()

Sets focus on the chat input field:

private async Task FocusChatInput()
{
    await chatRef.FocusAsync();
}

Common Use Cases

  1. Customer Support Chat - Live support widget with agent presence
  2. Team Messaging - Internal communication platform
  3. Bot Integration - AI chatbot with user interface
  4. Community Chat - Multi-user conversation rooms
  5. Help Desk - Ticketing and messaging interface
  6. Social Features - In-app messaging and notifications
  7. Real-time Collaboration - Live chat during shared activities

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

33.88%
按下载量换算75

Claude

30.78%
按下载量换算68

Cursor

18.63%
按下载量换算41

Gemini CLI

9.98%
按下载量换算22

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills