From 5ee717b1e11c52b96a3b1f54acb5bb9b406835a9 Mon Sep 17 00:00:00 2001 From: Arun Kumar Ragu Date: Fri, 15 May 2026 12:04:03 +0530 Subject: [PATCH 1/5] 1026324: Added md file for blazor ui composer. --- blazor-toc.html | 7 +- ...getting-started.md => component-skills.md} | 0 blazor/skills/images/blazor-ui-composer.png | Bin 0 -> 25252 bytes blazor/skills/ui-composer-skill.md | 196 ++++++++++++++++++ 4 files changed, 201 insertions(+), 2 deletions(-) rename blazor/skills/{getting-started.md => component-skills.md} (100%) create mode 100644 blazor/skills/images/blazor-ui-composer.png create mode 100644 blazor/skills/ui-composer-skill.md diff --git a/blazor-toc.html b/blazor-toc.html index c4e0620f24..47ef47aabd 100644 --- a/blazor-toc.html +++ b/blazor-toc.html @@ -405,8 +405,11 @@ -
  • - Skills +
  • Skills +
  • diff --git a/blazor/skills/getting-started.md b/blazor/skills/component-skills.md similarity index 100% rename from blazor/skills/getting-started.md rename to blazor/skills/component-skills.md diff --git a/blazor/skills/images/blazor-ui-composer.png b/blazor/skills/images/blazor-ui-composer.png new file mode 100644 index 0000000000000000000000000000000000000000..bd197827a6e5d5e8c763d74dfeb436aabf2b1d04 GIT binary patch literal 25252 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® license(any of the following): + - [Commercial](https://www.syncfusion.com/sales/unlimitedlicense) + - [Community License](https://www.syncfusion.com/products/communitylicense) + - [Free Trial](https://www.syncfusion.com/account/manage-trials/start-trials) + +## Key Benefits + +### **AI-Driven UI Generation** +- Converts prompts into complete Blazor components—not just snippets +- Automatically selects appropriate Syncfusion® components and features +- Produces structured, maintainable code + +### **Component Usage & API Accuracy** +- Uses correct Syncfusion® component APIs +- Injects required feature modules (paging, sorting, filtering, etc.) +- Avoids unsupported or deprecated patterns + +### **Patterns & Best Practices** +- Recommended component composition and Blazor lifecycle integration +- Event handling aligned with Blazor standards +- Secure and scalable coding patterns + +### **Accessibility & Responsiveness** +- WCAG 2.1 AA–aligned output +- Semantic HTML with ARIA support +- Mobile-first responsive layouts + +### **Design-System Integration** +- Supports Tailwind, Bootstrap, Material, or custom themes +- Ensures consistent Syncfusion® styling and theme usage + +## Installation + +Before installing Blazor UI Composer, ensure that APM (Agent Package Manager) is installed and available in your environment. + +### Verify APM Installation + +Run the following command to confirm APM is installed: + +```bash +apm --version +``` + +### Install the Syncfusion® Blazor UI Composer package using APM + +Use the APM CLI to install the Blazor UI Composer skill for your preferred environment: + +{% tabs %} +{% highlight bash tabtitle="Copilot" %} + +// By default, it installs to the GitHub Copilot target + +apm install syncfusion/blazor-ui-composer + +{% endhighlight %} +{% highlight bash tabtitle="Cursor" %} + +apm install syncfusion/blazor-ui-composer -t cursor + +{% endhighlight %} +{% highlight bash tabtitle="Code Studio" %} + +// For Code Studio, refer to the note below to configure the agent location explicitly to use it in the chat. + +apm install syncfusion/blazor-ui-composer + + +{% endhighlight %} +{% highlight bash tabtitle="Codex" %} + +apm install syncfusion/blazor-ui-composer -t codex + +{% endhighlight %} +{% highlight bash tabtitle="Claude" %} + +apm install syncfusion/blazor-ui-composer -t claude + +{% endhighlight %} +{% endtabs %} + +After installation, the following artifacts are added to your project for the GitHub Copilot target: + +- `.agent/skills/` – contains the skill files +- `.github/agents/` – contains the agent configuration + +For details on supported deployment targets, refer to the [documentation](https://microsoft.github.io/apm/reference/cli/targets/#detection-signals). + +> For Syncfusion® Code Studio, users must explicitly configure the agent location to use it in the chat. Refer to the [documentation](https://help.syncfusion.com/code-studio/reference/configure-properties/usersettings#agent-file-locations). + +## How the Syncfusion® Blazor UI Composer Skill Works + +1. **Intent Analysis** — Parse the user's prompt to identify component types and high-level layout intent. +2. **Project Detection** — Automatically detects project framework, package manager, and existing themes. +3. **Component Mapping** — Map intent to Syncfusion® components and required feature modules. +4. **Theming & Design System** + Load required theming guidelines and confirm key design choices: + - CSS framework (Tailwind, Bootstrap, Material, or Greenfield(custom theme)). If no themes detected in the existing project, Greenfield and Syncfusion Tailwind3 theme are shown as the default option—proceed with this or change the theme as preferred. + - Syncfusion theme (Tailwind3, Bootstrap5, Material3, fluent2) + - Light and Dark Mode + - Core design basics (colors, spacing, typography, responsiveness, accessibility) +5. **Code Generation** — Produce C# Blazor components, parameter interfaces, and CSS/styling scaffolding. +6. **Dependency Management** — Recommend or install required Syncfusion® packages and peer dependencies. +7. **Validation** — Run accessibility and basic security checks, request confirmation for changes. +8. **Code Insertion** — Create files or patch existing files following project structure and conventions. + +Key enforcement points: + +- Adds correct theme and CSS imports for chosen Syncfusion® themes +- Injects only the feature modules required by generated components +- Generates semantic HTML with ARIA attributes and keyboard support +- Avoids unsupported or deprecated API usages for Syncfusion® components + +> The assistant handles most stages automatically and may request confirmation where required. + +## Using the AI Assistant + +After installing Blazor UI Composer with APM, the relevant agent and skill files are added to your project under: + +- `.agent/skills/` (skill files) +- `.github/agents/` (Blazor UI composer agent configuration, based on the selected target) + +To start using the skill: + +1. Open your supported IDE. +2. In the chat panel, select the `syncfusion-blazor-ui-composer` agent from the **Agent dropdown**. + +![Set Agent](images/blazor-ui-composer.png) + +3. Start prompting the agent with a clear description of your UI requirements. + +Examples Prompts: + +{% promptcards %} +{% promptcard Authentication %} +Create a login page with the Tailwind 3 theme using a centered card layout containing email and password input fields with validation. Include a "Remember Me" checkbox, a forgot password link, and a primary login button. Add a secondary "Create Account" button below. Ensure the layout is responsive and works on mobile, tablet, and desktop. +{% endpromptcard %} +{% promptcard Admin Dashboard %} +Create a CMS Admin Dashboard UI featuring a collapsible sidebar with navigation items for Dashboard, Content, Users, Analytics, and Settings; a top header (AppBar) showing the title “CMS Admin Dashboard” on the left and a user name with profile icon on the right; and a main content area that includes three compact summary cards in a single row displaying Total Content, Total Users, and Active Sessions (each card showing a label, relevant icon, prominent count value, and percentage change from last month), followed by a “Content Management” section with a filterable and data grid containing columns for Title, Author, Status, Date, and Actions (with edit and delete buttons), and finally two charts displayed side by side—a bar chart titled “Content Over Time” and a donut chart titled “Content by Category”—using realistic sample data for both the grid (10–12 rows) and the charts. +{% endpromptcard %} +{% endpromptcards %} + +Generated code follows best practices with accessible, semantic HTML, responsive mobile-first layouts, strong C# typing, and built-in security measures such as input validation and avoidance of embedded secrets. + +## Troubleshooting + +- **APM installation failure**: Refer to this [documentation](https://microsoft.github.io/apm/getting-started/installation/#troubleshooting) + +- **Skills not loading**: Ensure the **.agent/** and **.github/agents/** folders exist in your project and that the skill was installed successfully using APM. Verify that the correct agent is selected from the Agent dropdown in your IDE. + +- **Component not rendering**: Retry generation using the specific component skill to resolve the issue, and ensure required Syncfusion® packages and themes are properly configured. + +- **Syncfusion license banner appears**: Use the licensing skill to correctly register and validate your Syncfusion® license key in the application. + + +## FAQ + +**Which agents/IDEs are supported?** +Any Skills-compatible agent that reads local skill files (Code Studio, VS Code, Cursor, etc.). + +**Are skills loaded automatically?** +Yes. Supported agents automatically load relevant skills based on your query. + +**Can I customize the generated styles?** +Yes — the skill supports choosing Tailwind, Bootstrap, Material, or a custom theme; generated components include clear integration points for style adjustments. + +**Does it modify files automatically?** +The skill proposes changes and requires confirmation for insertion; automatic dependency installation may be offered depending on agent permissions. + +## See also + +- [Agent Skills Standards](https://agentskills.io/home) +- [Agent Package Manager](https://microsoft.github.io/apm/getting-started/quick-start/) From 8175b32af21ce57f858f25abe69eb27559d0bf7d Mon Sep 17 00:00:00 2001 From: Arun Kumar Ragu Date: Fri, 15 May 2026 14:35:08 +0530 Subject: [PATCH 2/5] 1026324: Added md file for blazor ui composer. --- blazor/skills/images/blazor-ui-composer.png | Bin 25252 -> 25340 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/blazor/skills/images/blazor-ui-composer.png b/blazor/skills/images/blazor-ui-composer.png index bd197827a6e5d5e8c763d74dfeb436aabf2b1d04..c24038f1022630933f3eb41e8ff8b79c5e9679e4 100644 GIT binary patch literal 25340 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 Date: Fri, 15 May 2026 18:57:56 +0530 Subject: [PATCH 3/5] 1026324: Added md file for blazor ui composer. --- blazor/skills/ui-composer-skill.md | 39 ++++++++++++------------------ 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/blazor/skills/ui-composer-skill.md b/blazor/skills/ui-composer-skill.md index 9db05d14a8..7034b951af 100644 --- a/blazor/skills/ui-composer-skill.md +++ b/blazor/skills/ui-composer-skill.md @@ -69,47 +69,32 @@ apm --version Use the APM CLI to install the Blazor UI Composer skill for your preferred environment: -{% tabs %} -{% highlight bash tabtitle="Copilot" %} +{% tabs %} {% highlight bash tabtitle="Copilot" %} -// By default, it installs to the GitHub Copilot target +apm install syncfusion/blazor-ui-composer -t copilot -apm install syncfusion/blazor-ui-composer - -{% endhighlight %} -{% highlight bash tabtitle="Cursor" %} +{% endhighlight %} {% highlight bash tabtitle="Cursor" %} apm install syncfusion/blazor-ui-composer -t cursor -{% endhighlight %} -{% highlight bash tabtitle="Code Studio" %} - -// For Code Studio, refer to the note below to configure the agent location explicitly to use it in the chat. - -apm install syncfusion/blazor-ui-composer - - -{% endhighlight %} -{% highlight bash tabtitle="Codex" %} +{% endhighlight %} {% highlight bash tabtitle="Codex" %} apm install syncfusion/blazor-ui-composer -t codex -{% endhighlight %} -{% highlight bash tabtitle="Claude" %} +{% endhighlight %} {% highlight bash tabtitle="Claude" %} apm install syncfusion/blazor-ui-composer -t claude -{% endhighlight %} -{% endtabs %} +{% endhighlight %} {% endtabs %} After installation, the following artifacts are added to your project for the GitHub Copilot target: - `.agent/skills/` – contains the skill files - `.github/agents/` – contains the agent configuration -For details on supported deployment targets, refer to the [documentation](https://microsoft.github.io/apm/reference/cli/targets/#detection-signals). +Refer to the [documentation](https://microsoft.github.io/apm/reference/cli/targets/#detection-signals) for details about supported deployment targets. -> For Syncfusion® Code Studio, users must explicitly configure the agent location to use it in the chat. Refer to the [documentation](https://help.syncfusion.com/code-studio/reference/configure-properties/usersettings#agent-file-locations). +> For Syncfusion® Code Studio, use the Copilot command above to install the Blazor UI Composer. ## How the Syncfusion® Blazor UI Composer Skill Works @@ -165,6 +150,14 @@ Create a CMS Admin Dashboard UI featuring a collapsible sidebar with navigation Generated code follows best practices with accessible, semantic HTML, responsive mobile-first layouts, strong C# typing, and built-in security measures such as input validation and avoidance of embedded secrets. +## Best Practices + +Follow these guidelines to get the most out of UI Composer and ensure high-quality production-ready result: + +- **Stay consistent** — Maintain consistent file organization, naming conventions, and coding standards throughout your project. +- **Use advanced AI models** — For best results, use **Claude Sonnet 4.6 or higher** capability models to produce better code quality and more accurate implementations. +- **Review all content and assets before production** — Replace any placeholder images or icons (e.g., from Unsplash or emoji sets) with your brand assets. Also validate the logic, security, and compatibility with your existing code before deployment. + ## Troubleshooting - **APM installation failure**: Refer to this [documentation](https://microsoft.github.io/apm/getting-started/installation/#troubleshooting) From b34ca2f2a3478bf3836bb9bdb5138641b8a90ab0 Mon Sep 17 00:00:00 2001 From: MuthukumarK <33709971+kmuthukumarmkm@users.noreply.github.com> Date: Sun, 17 May 2026 15:51:01 +0530 Subject: [PATCH 4/5] 00000: Fix formatting in UI Composer guidelines --- blazor/skills/ui-composer-skill.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blazor/skills/ui-composer-skill.md b/blazor/skills/ui-composer-skill.md index 7034b951af..e44313b004 100644 --- a/blazor/skills/ui-composer-skill.md +++ b/blazor/skills/ui-composer-skill.md @@ -156,7 +156,7 @@ Follow these guidelines to get the most out of UI Composer and ensure high-quali - **Stay consistent** — Maintain consistent file organization, naming conventions, and coding standards throughout your project. - **Use advanced AI models** — For best results, use **Claude Sonnet 4.6 or higher** capability models to produce better code quality and more accurate implementations. -- **Review all content and assets before production** — Replace any placeholder images or icons (e.g., from Unsplash or emoji sets) with your brand assets. Also validate the logic, security, and compatibility with your existing code before deployment. +- **Review all content and assets before production** — Replace any placeholder images or icons (e.g., from emoji sets) with your brand assets. Also validate the logic, security, and compatibility with your existing code before deployment. ## Troubleshooting From 486e6a22f7fc479e3c73bde29111813a04a59f27 Mon Sep 17 00:00:00 2001 From: MuthukumarK <33709971+kmuthukumarmkm@users.noreply.github.com> Date: Sun, 17 May 2026 15:58:08 +0530 Subject: [PATCH 5/5] 00000:Revise installation instructions for Blazor UI Composer Updated installation instructions for the Syncfusion Blazor UI Composer package, including tabs for different environments. --- blazor/skills/ui-composer-skill.md | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/blazor/skills/ui-composer-skill.md b/blazor/skills/ui-composer-skill.md index e44313b004..593478324f 100644 --- a/blazor/skills/ui-composer-skill.md +++ b/blazor/skills/ui-composer-skill.md @@ -69,23 +69,31 @@ apm --version Use the APM CLI to install the Blazor UI Composer skill for your preferred environment: -{% tabs %} {% highlight bash tabtitle="Copilot" %} +{% tabs %} +{% highlight bash tabtitle="Copilot" %} apm install syncfusion/blazor-ui-composer -t copilot -{% endhighlight %} {% highlight bash tabtitle="Cursor" %} +{% endhighlight %} + +{% highlight bash tabtitle="Cursor" %} apm install syncfusion/blazor-ui-composer -t cursor -{% endhighlight %} {% highlight bash tabtitle="Codex" %} +{% endhighlight %} + +{% highlight bash tabtitle="Codex" %} apm install syncfusion/blazor-ui-composer -t codex -{% endhighlight %} {% highlight bash tabtitle="Claude" %} +{% endhighlight %} + +{% highlight bash tabtitle="Claude" %} apm install syncfusion/blazor-ui-composer -t claude -{% endhighlight %} {% endtabs %} +{% endhighlight %} +{% endtabs %} After installation, the following artifacts are added to your project for the GitHub Copilot target: