(feat): New skill for generating apps/views from image#17181
Conversation
There was a problem hiding this comment.
Pull request overview
Adds a new Copilot skill intended to guide implementing Angular views directly from design images using Ignite UI Angular components, plus reference material for common mappings and pitfalls.
Changes:
- Added
igniteui-angular-from-designskill definition and workflow for image-to-view implementation. - Added component mapping reference for common UI patterns → Ignite UI components/packages.
- Added “gotchas” reference covering theming/Sass pitfalls and DV component caveats.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 16 comments.
| File | Description |
|---|---|
| skills/igniteui-angular-from-design/SKILL.md | New skill workflow and MCP-driven process for implementing views from design images. |
| skills/igniteui-angular-from-design/references/component-mapping.md | Reference tables mapping UI patterns to Ignite UI components, packages, and import patterns. |
| skills/igniteui-angular-from-design/references/gotchas.md | Reference list of known pitfalls for Sass/theming and DV component usage. |
…UI/igniteui-angular into feat/app-from-image-skill
…UI/igniteui-angular into feat/app-from-image-skill
|
Related to IgniteUI/igniteui-cli#1647 |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…gotchas.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…component-mapping.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
| 2. **Confirm package layout if needed** - this skill is Angular-only; check package layout or licensing only when imports, packages, or theming depend on it | ||
| 3. **Discover components** - Call `list_components` with targeted filters to find matching components for each UI pattern | ||
| 4. **Look up component docs** - Call `get_doc` for every chosen component family before coding | ||
| 5. **Generate theme** - (a) To generate a theme, first extract colors and create a color palette using `create_palette` or `create_custom_palette` depending on the scenario. Then extract elevations and call `create_elevations`. Then extract typography and call `create_typography`. Then call `create_theme` with the palette, elevations, and typography. (b) After a theme exists, prefer using design tokens or scoped semantic CSS variables over raw literals. (c) For every Ignite UI component, call `get_component_design_tokens`, map extracted image tokens to token roles, then call `create_component_theme` with the tokens differing from the global theme for the specific component. |
There was a problem hiding this comment.
The Workflow step 5 references create_elevations and create_typography, but those tools don’t appear anywhere else in this repo (and the theming skill documents create_theme as the tool that generates palette/typography/elevations together). Update this step to match the actual Ignite UI theming MCP toolchain, otherwise agents following this skill will call non-existent tools.
| 5. **Generate theme** - (a) To generate a theme, first extract colors and create a color palette using `create_palette` or `create_custom_palette` depending on the scenario. Then extract elevations and call `create_elevations`. Then extract typography and call `create_typography`. Then call `create_theme` with the palette, elevations, and typography. (b) After a theme exists, prefer using design tokens or scoped semantic CSS variables over raw literals. (c) For every Ignite UI component, call `get_component_design_tokens`, map extracted image tokens to token roles, then call `create_component_theme` with the tokens differing from the global theme for the specific component. | |
| 5. **Generate theme** - (a) Extract the design's colors, typography, and elevation intent from the image. Create a color palette using `create_palette` or `create_custom_palette` when needed, then call `create_theme` using the extracted design inputs and palette so the global Ignite UI theme is generated with palette, typography, and elevations together. (b) After a theme exists, prefer using design tokens or scoped semantic CSS variables over raw literals. (c) For every Ignite UI component, call `get_component_design_tokens`, map extracted image tokens to token roles, then call `create_component_theme` with the tokens differing from the global theme for the specific component. |
|
|
||
| ### Chart Type Selection | ||
| - **Category Chart**: `chartType` property (Auto, Area, Column, Line, Point, etc.) | ||
| - **Financial Chart**: `chartType` property (Line, Candlestick, OHLC Bar) | ||
| - **Financial Chart**: `chartType` property (Auto, Candle, Line, Bar, Column) | ||
| - **Data Chart**: Configure explicit series (IgxAreaSeriesComponent, IgxBarSeriesComponent, IgxBarSeries, etc.) |
There was a problem hiding this comment.
PR description states “No existing files are modified”, but this PR updates the existing charts reference file under skills/igniteui-angular-components/. Please update the PR description (or move this change into a separate PR) so the description matches what’s actually being changed.
| [brushes]="'<resolved-series-brush>'" | ||
| [outlines]="'<resolved-series-outline>'" |
There was a problem hiding this comment.
In the DV theming example, [brushes] / [outlines] are shown as binding to a single string (wrapped in quotes), but elsewhere in this repo they’re documented as string[] inputs (skills/igniteui-angular-components/references/charts.md:246-247). Update the example to bind an array/collection (e.g., a 1+ element array) so it matches the actual API shape and doesn’t mislead readers into passing a string.
| [brushes]="'<resolved-series-brush>'" | |
| [outlines]="'<resolved-series-outline>'" | |
| [brushes]="['<resolved-series-brush>']" | |
| [outlines]="['<resolved-series-outline>']" |
| | Tabbed content | `IgxBottomNavComponent` or `IgxTabsComponent` | Panel-based or router-based | | ||
| | Accordion sections | `IgxAccordionComponent` | `IgxExpansionPanelComponent` children | | ||
| | Split layouts | `IgxSplitterComponent` | Horizontal/vertical panes | | ||
| | Tile dashboard | `IgxTileManagerComponent` | Drag/resize tiles (Premium) | |
There was a problem hiding this comment.
The “Tile dashboard” row references IgxTileManagerComponent, but this repo’s established guidance treats Tile Manager as the igc-tile-manager web component shipped via igniteui-webcomponents (see skills/igniteui-angular-components/references/layout-manager.md:417+). To avoid misleading imports/component choices, update this mapping row to match the existing Tile Manager guidance (web component + package), or remove it if out of scope for this skill.
| | Tile dashboard | `IgxTileManagerComponent` | Drag/resize tiles (Premium) | | |
| | Tile dashboard | `igc-tile-manager` | Drag/resize tiles via the `igniteui-webcomponents` web component (Premium) | |
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Add
igniteui-angular-generate-from-image-designCopilot SkillSummary
Introduces a new AI skill that enables Copilot to implement Angular application views directly from design images (screenshots, mockups, wireframes) using Ignite UI Angular components.
What's included
implement → iterate on visual fidelity.
including package requirements and import patterns.
setup.
How it works
When a user provides a design image and asks Copilot to "implement this design" or "build this UI", the skill guides the agent through:
Notes