You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: packages/cli/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-components/references/layout.md
+6-18Lines changed: 6 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,18 +23,7 @@ This reference gives high-level guidance on layout and navigation components, th
Copy file name to clipboardExpand all lines: packages/cli/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-generate-from-image-design/SKILL.md
+5-4Lines changed: 5 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,11 +11,12 @@ user-invocable: true
11
11
Before writing any implementation code, you must complete these steps in order:
12
12
13
13
1. Analyze the image and identify all visible regions and UI patterns.
14
-
2. Read [references/component-mapping.md](references/component-mapping.md) and [references/gotchas.md](references/gotchas.md).
3. This skill is Blazor-only. Check NuGet package (`IgniteUI.Blazor.Lite`, `IgniteUI.Blazor.GridLite` for general purpose components and light-weight grid, or `IgniteUI.Blazor` / `IgniteUI.Blazor.Trial` for specialized feature-rich grids and charts) only when theming or component availability depends on it.
16
16
4. To apply a theme, use the theming workflow from this skill and the dedicated `igniteui-blazor-theming` skill; use the `igniteui-theming` MCP tools instead of styling from memory.
17
17
5. Call `get_doc` for every chosen component family before using it.
18
-
6. Only then start coding.
18
+
6.**Read [references/gotchas.md](references/gotchas.md) now — after docs, before writing any code.** Read the file in full. Some entries are component-specific; others apply broadly to any chart, any themed component, or any scoped CSS. Apply every entry that is relevant to what you are building. This is a blocking step: do not start implementation until you have read the whole file and checked it against your component list.
19
+
7. Only then start coding.
19
20
20
21
---
21
22
@@ -25,7 +26,7 @@ Before writing any implementation code, you must complete these steps in order:
25
26
2.**Confirm NuGet package if needed** - this skill is Blazor-only; use `IgniteUI.Blazor.Lite`, `IgniteUI.Blazor.GridLite` for general purpose components and the light-weight grid, and `IgniteUI.Blazor` (trial version available publicly as `IgniteUI.Blazor.Trial`) for specialized feature-rich grids and charts.
26
27
3.**Discover components** - Call `list_components` with targeted filters and `framework: "blazor"` to find matching components for each UI pattern.
27
28
4.**Look up component docs** - Call `get_doc` for every chosen component family before coding.
28
-
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 with `platform: "blazor"`. (b) After a palette 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.
29
+
5.**Generate theme** - (a) Extract colors and call `create_palette` or `create_custom_palette`with `platform: "blazor"` and `output: "css"` — do **not** use `create_theme` for Blazor, it produces Sass requiring compilation. Optionally call `create_elevations` and `create_typography` for elevation and font overrides. (b) After a palette 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.
29
30
6.**Implement** - Build the screenshot-first layout, data, and view components.
30
31
7.**Refine** - Use the `set_size`, `set_spacing`, `set_roundness` tools to refine the view's visual fidelity against the image, then iterate on implementation and theming until the view matches the design closely.
31
32
8.**Validate** - Build, test, run, compare against the image, and fix differences.
@@ -236,7 +237,7 @@ If the required NuGet package is not referenced in the project, identify the cor
236
237
### Implementation Checks
237
238
238
239
- Use [references/component-mapping.md](references/component-mapping.md) for component-choice and semantic-fallback rules
239
-
-Use [references/gotchas.md](references/gotchas.md)for components, theming, and API edge cases instead of re-encoding those rules inline
240
+
-When unsure about an API parameter, CSS scoping rule, or component choice, re-check [references/gotchas.md](references/gotchas.md)— do not guess or re-encode its rules inline
240
241
- Favor Ignite UI components over custom HTML when both approaches can reach similar visual fidelity
241
242
- Preserve spacing, hierarchy, and data density before adding extra interactivity
242
243
- Avoid generic placeholders when the image shows domain-specific content
Copy file name to clipboardExpand all lines: packages/cli/templates/blazor/igb/projects/ai-config/files/skills/igniteui-blazor-generate-from-image-design/references/gotchas.md
### `AreaFillOpacity` exists on `IgbCategoryChart`
95
95
It does **NOT** exist on `IgbSparkline`. For sparkline fill, use the `Brush` parameter.
96
96
97
+
### `IgbSparkline` has no SplineArea type — use `IgbCategoryChart` for smooth area sparklines
98
+
`IgbSparkline` supports only `Line`, `Area`, `Column`, and `WinLoss` display types. `Area` renders as angular polygon fills, not smooth curves. If the design shows smooth mountain-shaped area sparklines, use a small `IgbCategoryChart` with `ChartType="CategoryChartType.SplineArea"`:
99
+
100
+
```razor
101
+
<!-- ❌ Angular fill — no smooth curves available on IgbSparkline -->
Set `ChartType` to `Spline`, `SplineArea`, or `StepLine` / `StepArea` depending on the visual in the screenshot.
156
+
Match `ChartType` to the curve shape in the screenshot:
157
+
- Smooth flowing curves → `Spline` (lines) or `SplineArea` (filled)
158
+
- Angular/jagged lines → `Line` or `Area`
159
+
- Step-shaped → `StepLine` or `StepArea`
160
+
161
+
Do not default to `Line` or `Area` when the screenshot shows smooth curves. The difference is immediately visible and is the most common chart fidelity mistake.
162
+
163
+
### Circular ring with centered percentage — choosing the right component
164
+
-**Thick static ring with a centred label and no needle** → `IgbDoughnutChart` + `IgbRingSeries`. Place `InnerExtent` on the chart, not the series. Overlay the label with `position: absolute` inside a `position: relative` wrapper.
165
+
-**Thin animated spinner / loading progress** → `IgbCircularProgress`. Not a data visualisation.
166
+
-**Needle pointer on a scale arc** → `IgbRadialGauge`.
167
+
168
+
`IgbRadialGauge` and `IgbCircularProgress` will never produce a clean static ring. Use `IgbDoughnutChart` whenever the design shows a coloured arc ring with a centred value and no needle.
Charts may render with zero height inside a CSS Grid container. Set `min-height: 0` on the grid cell and `Height="100%"` on the chart component so the chart fills its container without requiring a fixed pixel value:
@@ -184,15 +236,6 @@ The component's `::part(base)` is always `position: fixed; transform: translateX
184
236
185
237
To make the drawer occupy real layout space (pinned sidebar), override the parts in **global CSS**: set explicit width on the host, `position: relative; transform: none` on `::part(base)`, hide `::part(overlay)`, and strip `inert` from `::part(base)` via JS in `OnAfterRenderAsync`. See `layout.md` for the full pattern.
186
238
187
-
### IgbTabs: Panel and Id pairing
188
-
Each `IgbTab` must reference an `IgbTabPanel` via the `Panel` property matching the panel's `Id`:
189
-
```razor
190
-
<IgbTabs>
191
-
<IgbTab Panel="panel-1">Tab A</IgbTab>
192
-
<IgbTabPanel Id="panel-1">Content A</IgbTabPanel>
193
-
</IgbTabs>
194
-
```
195
-
196
239
### IgbTileManager: drag and resize modes
197
240
Set `DragMode` and `ResizeMode` for interactive dashboards:
0 commit comments