Skip to content

Commit 6fa646b

Browse files
committed
docs(skills): cleanup redundant/duplicating info
1 parent 04dd2cd commit 6fa646b

8 files changed

Lines changed: 43 additions & 133 deletions

File tree

skills/README.md

Lines changed: 29 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -46,81 +46,44 @@ Each skill contains:
4646

4747
## Editor / Agent Setup
4848

49-
Most modern AI assistants (GitHub Copilot, Cursor, Windsurf, etc.) should auto-discover these skills from your `node_modules/igniteui-react/skills/` directory after you install the package. No additional configuration is typically needed.
49+
Most modern AI assistants (GitHub Copilot, Cursor, Windsurf, Claude Code, etc.) should auto-discover these skills from a specified location in the workspace or global profile.
5050

51-
If your AI assistant doesn't auto-discover the skills, or you want to provide additional context, you can reference them manually:
51+
For example, you can copy them into the agent-specific skills folder for your editor:
5252

53-
### GitHub Copilot (Optional)
53+
### GitHub Copilot
5454

55-
If you want to provide explicit instructions to GitHub Copilot, you can add a `.github/copilot-instructions.md` file to **your project root**:
55+
Copy the skill files into your project's `.agents/skills/` directory:
5656

57-
```markdown
58-
## Ignite UI for React
59-
60-
This project uses Ignite UI for React. When answering questions about UI components,
61-
refer to the skills in node_modules/igniteui-react/skills/:
62-
63-
- **Components (choosing & using)**: node_modules/igniteui-react/skills/igniteui-react-components/SKILL.md
64-
- **Theming & styling**: node_modules/igniteui-react/skills/igniteui-react-customize-theme/SKILL.md
65-
- **Bundle optimization**: node_modules/igniteui-react/skills/igniteui-react-optimize-bundle-size/SKILL.md
66-
67-
All components use the `Igr` prefix (e.g. `IgrButton`, `IgrGrid`).
6857
```
69-
70-
### Cursor / Windsurf (Optional)
71-
72-
If you want to provide explicit instructions, create or edit `.cursorrules` in **your project root**:
73-
58+
.agents/
59+
skills/
60+
igniteui-react-components/
61+
SKILL.md
62+
reference/
63+
igniteui-react-customize-theme/
64+
SKILL.md
65+
reference/
66+
igniteui-react-optimize-bundle-size/
67+
SKILL.md
7468
```
75-
This project uses Ignite UI for React.
76-
When working with UI components, consult the skills in node_modules/igniteui-react/skills/:
77-
78-
- node_modules/igniteui-react/skills/igniteui-react-components/SKILL.md — pick components and use them in React
79-
- node_modules/igniteui-react/skills/igniteui-react-customize-theme/SKILL.md — theming and styling
80-
- node_modules/igniteui-react/skills/igniteui-react-optimize-bundle-size/SKILL.md — bundle optimization
81-
82-
Components use the Igr prefix (IgrButton, IgrGrid, IgrCombo, etc.).
83-
```
84-
85-
### Claude Desktop / Claude Code (Optional)
86-
87-
Add to your `CLAUDE.md` project instructions if needed:
8869

89-
```markdown
90-
## Ignite UI for React
70+
### Claude Code
9171

92-
This project uses Ignite UI for React. Refer to these skills for guidance:
72+
Copy the skill files into your project's `.claude/skills/` directory:
9373

94-
- node_modules/igniteui-react/skills/igniteui-react-components/SKILL.md
95-
- node_modules/igniteui-react/skills/igniteui-react-customize-theme/SKILL.md
96-
- node_modules/igniteui-react/skills/igniteui-react-optimize-bundle-size/SKILL.md
97-
98-
All React wrapper components use the `Igr` prefix (e.g. `IgrButton`, `IgrGrid`).
74+
```
75+
.claude/
76+
skills/
77+
igniteui-react-components/
78+
SKILL.md
79+
reference/
80+
igniteui-react-customize-theme/
81+
SKILL.md
82+
reference/
83+
igniteui-react-optimize-bundle-size/
84+
SKILL.md
9985
```
10086

101-
### Manual Attachment (All Editors)
102-
103-
You can also attach individual skill files to your AI chat context manually:
104-
105-
1. Open the AI chat panel (Copilot Chat, Cursor Chat, etc.)
106-
2. Use the "Attach file" or "Add context" action
107-
3. Navigate to `node_modules/igniteui-react/skills/` and select the relevant `SKILL.md` file
108-
109-
## Contributing
110-
111-
If you identify gaps in the skills or have suggestions for improvements:
112-
113-
1. [Open an issue](https://github.com/IgniteUI/igniteui-react/issues) describing the improvement
114-
2. Submit a pull request with the proposed changes
115-
3. Follow the skill format and structure of existing skills
116-
117-
## Additional Resources
118-
119-
- [Ignite UI for React Documentation](https://www.infragistics.com/products/ignite-ui-react/react/components/general-getting-started)
120-
- [React Examples Repository](https://github.com/IgniteUI/igniteui-react-examples)
121-
- [npm: igniteui-react](https://www.npmjs.com/package/igniteui-react)
122-
- [GitHub Repository](https://github.com/IgniteUI/igniteui-react)
123-
124-
## License
87+
### Other Agents (Cursor, Windsurf, etc.)
12588

126-
These skills are provided under the same license as the Ignite UI for React library. See [LICENSE](../LICENSE) for details.
89+
Consult your agent's documentation for the correct skills directory path and copy the skill files there. The skill structure is agent-agnostic — any assistant that supports skill files can use them directly.

skills/igniteui-react-components/SKILL.md

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ npm install igniteui-react
7474
import 'igniteui-webcomponents/themes/light/bootstrap.css';
7575
```
7676

77-
> **CRITICAL:** Without the theme CSS, components will render without styles and icons will be broken.
77+
> **CRITICAL:** Without the theme CSS, components will render without styles and icons will be broken. See [INSTALLATION.md](./reference/INSTALLATION.md) for all available themes and setup.
7878
7979
### 3. Use Components
8080

@@ -107,14 +107,13 @@ Use [COMPONENT-CATALOGUE.md](./reference/COMPONENT-CATALOGUE.md) to map any UI n
107107

108108
### Theme CSS Import
109109

110-
- **Always import theme CSS** before using components — see [INSTALLATION.md](./reference/INSTALLATION.md)
111-
- **For grids**, also import `igniteui-react-grids/grids/themes/...`
112-
- **In Next.js**, import in each client component file or root layout
110+
- **Always import theme CSS** before using components. **For grids**, also import `igniteui-react-grids/grids/themes/...`
111+
- see [INSTALLATION.md](./reference/INSTALLATION.md)
113112

114113
### JSX Patterns
115114

115+
- Use props just like any React component
116116
- Use `slot` attribute for named slots: `<span slot="icon">📊</span>`
117-
- Boolean props: `<IgrInput disabled />` is shorthand for `disabled={true}`
118117
- See [JSX-PATTERNS.md](./reference/JSX-PATTERNS.md)
119118

120119
### IgrTabs: Content vs Navigation
@@ -147,13 +146,12 @@ Use [COMPONENT-CATALOGUE.md](./reference/COMPONENT-CATALOGUE.md) to map any UI n
147146

148147
1. **Start with the MIT package** (`igniteui-react`) — it covers most common UI needs
149148
2. **Import theme CSS first** — components need it to render correctly
150-
3. **Don't call `defineComponents()`** — React wrappers auto-register
151-
4. **Register chart/gauge/map modules** — call `.register()` at module level
152-
5. **Wrap charts/gauges/maps in sized containers** — they need explicit dimensions
153-
6. **Use named imports** — enables tree-shaking
154-
7. **Handle events as `CustomEvent`** — not `React.SyntheticEvent`
155-
8. **Use refs sparingly** — prefer declarative props
156-
9. **Check slot names** in the docs
149+
3. **Register chart/gauge/map modules** — call `.register()` at module level
150+
4. **Wrap charts/gauges/maps in sized containers** — they need explicit dimensions
151+
5. **Use named imports** — enables tree-shaking
152+
6. **Handle events as `CustomEvent`** — not `React.SyntheticEvent`
153+
7. **Use refs sparingly** — prefer declarative props
154+
8. **Check slot names** in the docs
157155

158156
## Additional Resources
159157

skills/igniteui-react-components/reference/CHARTS-GRIDS.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,6 @@ export default function DashboardView() {
9090
}
9191
```
9292

93-
> **Note:** Core UI components from `igniteui-react` (e.g., `IgrButton`, `IgrInput`) do NOT require module registration — they auto-register when imported. Charts, gauges, and maps need explicit `.register()` calls.
94-
9593
## Complete Grid Lite Example
9694

9795
> **⚠️ IMPORTANT:** Grid Lite (`IgrGridLite` from `igniteui-react/grid-lite`) requires installing both `igniteui-react` and `igniteui-grid-lite` packages. It's a React wrapper component (uses `Igr` prefix) and works like any standard React component — no `.register()` needed.

skills/igniteui-react-components/reference/COMPONENT-CATALOGUE.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -231,8 +231,6 @@ function Dashboard() {
231231
}
232232
```
233233

234-
> **No `defineComponents()` call is needed** — React wrappers handle component registration automatically when you import them.
235-
236234
---
237235

238236
## Common UI Scenarios → Recommended Component Sets

skills/igniteui-react-components/reference/INSTALLATION.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ Available themes:
5555
| `igniteui-webcomponents/themes/light/indigo.css` | Indigo Light |
5656
| `igniteui-webcomponents/themes/dark/indigo.css` | Indigo Dark |
5757

58+
Grid theme CSS files follow the same pattern under `igniteui-react-grids/grids/themes/`.
59+
5860
**For grids**, you **must also** import the grid theme CSS. Without it, the grid will be missing styles and icons will show as placeholders:
5961

6062
```tsx
@@ -134,6 +136,4 @@ function App() {
134136
export default App;
135137
```
136138

137-
> **No `defineComponents()` needed.** Unlike the underlying web components library, the React wrappers automatically register the web component when you import and render them. You never need to call `defineComponents()`.
138-
>
139-
> **Exception — Charts, Gauges & Maps:** Components from `igniteui-react-charts`, `igniteui-react-gauges`, and `igniteui-react-maps` **do** require explicit registration. Grid Lite (`IgrGridLite` from `igniteui-react/grid-lite`) works like a standard React component but requires both `igniteui-react` and `igniteui-grid-lite` packages. See [CHARTS-GRIDS.md](./CHARTS-GRIDS.md).
139+
> **No `defineComponents()` needed.** React wrappers auto-register. See [CHARTS-GRIDS.md](./reference/CHARTS-GRIDS.md) for exceptions (charts, gauges, maps).

skills/igniteui-react-components/reference/JSX-PATTERNS.md

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,6 @@ Ignite UI React components accept props just like any React component. Use JSX e
1414
<IgrSlider value="50" />
1515
```
1616

17-
## Boolean Props
18-
19-
Pass `true` / `false` explicitly, or use the shorthand (presence = `true`):
20-
21-
```tsx
22-
// These are equivalent:
23-
<IgrInput disabled />
24-
<IgrInput disabled={true} />
25-
26-
// Explicitly false:
27-
<IgrInput disabled={false} />
28-
```
29-
3017
## Children vs Slots
3118

3219
Ignite UI components use the web component **slot** mechanism under the hood. In JSX, pass children to the default slot and use the `slot` attribute to target named slots:
@@ -198,4 +185,3 @@ function MainLayout() {
198185
- ✅ Sync the active tab to the current route using the `selected` prop
199186
- ✅ Handle `onChange` to call `navigate()` for route changes
200187
- ✅ Use `<Outlet />` (or the equivalent in your router) for content rendering
201-
- ❌ Do NOT add inline content in `IgrTab` — it creates unwanted content areas that fill the viewport

skills/igniteui-react-components/reference/TROUBLESHOOTING.md

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -45,25 +45,7 @@ import 'igniteui-react-grids/grids/themes/light/bootstrap.css'; // Grid theme
4545

4646
1. Install both required packages: `npm install igniteui-react igniteui-grid-lite`
4747
2. Import `IgrGridLite` from `igniteui-react/grid-lite`
48-
3. Wrap in a sized container
49-
50-
```tsx
51-
import { IgrGridLite } from 'igniteui-react/grid-lite';
52-
53-
// Use in JSX with a sized container:
54-
<div className={styles['grid-lite']}>
55-
<IgrGridLite data={data} />
56-
</div>
57-
```
58-
59-
```css
60-
.grid-lite {
61-
min-width: 400px;
62-
min-height: 220px;
63-
flex-grow: 1;
64-
flex-basis: 0;
65-
}
66-
```
48+
3. Wrap in a sized container (see [CHARTS-GRIDS.md](./CHARTS-GRIDS.md) for a full example)
6749

6850
## Issue: `IgrGridLite` is confused with `IgrGrid` from `igniteui-react-grids`
6951

skills/igniteui-react-optimize-bundle-size/SKILL.md

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ This skill helps users minimize their React application's bundle size when using
3939
2. **Use named imports** — enable tree-shaking by importing specific components
4040
3. **Lazy load heavy components** — use `React.lazy` + `Suspense` for grids, charts, and other large components
4141
4. **Analyze your bundle** — use tools to identify what's being included
42-
5. **No `defineComponents()` needed** — the React wrappers handle registration automatically per-component
4342

4443
---
4544

@@ -99,19 +98,6 @@ function App() {
9998

10099
**Impact:** Bundle includes only the three components and their dependencies. Tree-shaking removes everything else.
101100

102-
### About `defineComponents()`
103-
104-
The React wrappers handle web component registration automatically when you import and render a component. **You never need to call `defineComponents()`** — doing so would be redundant and could pull in unnecessary code if you imported the function from `igniteui-webcomponents` directly.
105-
106-
```tsx
107-
// ❌ Don't do this — unnecessary and bypasses tree-shaking
108-
import { defineComponents, IgcButtonComponent } from 'igniteui-webcomponents';
109-
defineComponents(IgcButtonComponent);
110-
111-
// ✅ Just import the React wrapper
112-
import { IgrButton } from 'igniteui-react';
113-
```
114-
115101
---
116102

117103
## Lazy Loading with `React.lazy` + `Suspense`
@@ -383,7 +369,6 @@ module.exports = {
383369
- [ ] **Install only the packages you need** — don't install `igniteui-react-grids` if you only use buttons and inputs
384370
- [ ] **Use named imports**`import { IgrButton } from 'igniteui-react'`, not `import * as`
385371
- [ ] **Don't import from `igniteui-webcomponents` directly** — use the `igniteui-react` wrappers
386-
- [ ] **Don't call `defineComponents()`** — the React wrappers handle this automatically
387372
- [ ] **Lazy load heavy components** — use `React.lazy` + `Suspense` for grids, charts, and dialogs
388373
- [ ] **Split by routes** — load component-heavy pages only when navigated to
389374
- [ ] **Audit your imports regularly** — remove unused components

0 commit comments

Comments
 (0)