skills/maxnorm/magento2-agent-skills/magento-ui-component-developer

magento-ui-component-developer

SKILL.md

Magento 2 UI Component Developer

Expert specialist in creating sophisticated, data-driven interfaces using Magento's powerful UI Component framework for both admin and frontend applications.

When to Use

  • Creating admin grids and forms
  • Building data-driven interfaces
  • Developing custom UI components
  • Implementing complex forms with validation
  • Creating modal dialogs and popups
  • Building reporting and analytics interfaces

UI Component Architecture

  • Component Hierarchy: Master parent-child component relationships and inheritance
  • XML Configuration: Expert in component definition and configuration files
  • Data Providers: Implement efficient data sources and collection management
  • KnockoutJS Integration: Build reactive templates and data binding
  • Component Communication: Handle inter-component communication and events

Component Types

Listing Components (Grids)

  • Data Grids: Create advanced data grids with filtering and sorting
  • Product Grids: Product management interfaces
  • Order Grids: Order management systems
  • Customer Grids: Customer data management interfaces
  • Custom Entity Grids: Grids for custom data entities

Form Components

  • Product Forms: Complex product editing interfaces
  • Configuration Forms: System configuration interfaces
  • Customer Forms: Customer data entry forms
  • Multi-step Forms: Wizard-style form interfaces
  • Dynamic Forms: Forms with conditional field display

Modal Components

  • Dynamic Modals: Modal dialogs and popups
  • Form Modals: Forms within modal dialogs
  • Confirmation Dialogs: Confirmation and alert dialogs
  • Custom Modals: Specialized modal implementations

UI Component Development Process

1. Component Planning & Design

  • Requirements Analysis: Define component functionality and user interactions
  • Data Architecture: Plan data structure and provider requirements
  • UX Design: Design user-friendly interfaces and workflows
  • Performance Considerations: Plan for scalability and optimization
  • Integration Strategy: Plan integration with existing systems

2. Component Structure Setup

  • XML Configuration: Create component definition files
  • Directory Structure: Organize component files and dependencies
  • Data Provider: Implement data source and collection handling
  • Template Files: Create KnockoutJS templates for rendering
  • JavaScript Modules: Build component logic and interactions

3. Data Management

  • Collection Building: Create efficient data collections
  • Filtering & Sorting: Implement advanced filtering and sorting capabilities
  • Pagination: Handle large datasets with pagination
  • Search Functionality: Implement search and filter mechanisms
  • Data Validation: Ensure data integrity and validation

4. User Interface Development

  • Responsive Design: Create interfaces that work across devices
  • Accessibility: Implement WCAG compliance and keyboard navigation
  • User Experience: Optimize for intuitive user interactions
  • Performance: Ensure fast loading and smooth interactions
  • Cross-browser: Ensure compatibility across browsers

XML Configuration

Component Definition

<listing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
    <argument name="data" xsi:type="array">
        <item name="js_config" xsi:type="array">
            <item name="provider" xsi:type="string">vendor_module.grid_data_source</item>
        </item>
    </argument>
    <columns name="columns">
        <column name="id">
            <settings>
                <filter>text</filter>
                <label translate="true">ID</label>
            </settings>
        </column>
    </columns>
</listing>

Form Configuration

<form xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
      xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Ui:etc/ui_configuration.xsd">
    <fieldset name="general">
        <field name="name">
            <argument name="data" xsi:type="array">
                <item name="config" xsi:type="array">
                    <item name="label" xsi:type="string" translate="true">Name</item>
                    <item name="dataType" xsi:type="string">text</item>
                    <item name="validation" xsi:type="array">
                        <item name="required-entry" xsi:type="boolean">true</item>
                    </item>
                </item>
            </argument>
        </field>
    </fieldset>
</form>

Data Providers

Collection Data Provider

  • Implement \Magento\Framework\View\Element\UiComponent\DataProvider\DataProviderInterface
  • Create efficient data collections
  • Handle filtering, sorting, and pagination
  • Optimize database queries

Form Data Provider

  • Load and save form data
  • Handle form field dependencies
  • Implement data validation
  • Manage form state

KnockoutJS Templates

Template Development

  • Create KnockoutJS templates for component rendering
  • Implement data binding
  • Handle user interactions
  • Manage component state

Data Binding

  • Two-way data binding
  • Computed observables
  • Observable arrays
  • Custom bindings

Best Practices

Performance

  • Efficient Collections: Optimize data collection queries
  • Lazy Loading: Load data on demand
  • Caching: Cache frequently accessed data
  • Pagination: Implement proper pagination for large datasets

Code Organization

  • Modular Structure: Organize components in logical modules
  • Reusable Components: Create reusable component patterns
  • Documentation: Maintain clear component documentation
  • Testing: Write tests for component functionality

User Experience

  • Responsive Design: Ensure mobile-friendly interfaces
  • Accessibility: Implement WCAG compliance
  • Error Handling: Provide clear error messages
  • Loading States: Show appropriate loading indicators

References

Focus on creating intuitive, performant UI components that enhance user experience and productivity.

Weekly Installs
37
GitHub Stars
6
First Seen
Feb 17, 2026
Installed on
opencode35
codex35
gemini-cli33
github-copilot33
kimi-cli33
cursor33