# ionic-angular

A skill that walks your coding agent through Angular patterns in Ionic: routing, lazy loading, forms, page lifecycle hooks.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 1400 installs · ★ 51
- Author: capawesome-team
- License: MIT · policy=mirror · the beginning of the file is at the end of this page
- Source: https://github.com/capawesome-team/skills/tree/HEAD/skills/ionic-angular/SKILL.md
- Updated: 2026-10-20
- HTML: https://affpapa.org/en/nevibecode/skills/ionic-angular

## What it does

The skill gets your agent oriented in an Ionic project built with Angular. It reads `package.json`, `src/main.ts` and `src/app/` on its own: Ionic and Angular versions, `bootstrapApplication` versus `platformBrowserDynamic().bootstrapModule`, whether Capacitor is present, and whether navigation runs on tabs or a side menu. It will not ask you for facts it can infer.

From there it covers one topic at a time. Project layout, the differences between standalone and NgModule, Angular Router wired to `ion-tabs`, `ion-menu` and modals, lazy loading with `loadComponent` or `loadChildren`, the `ionViewWillEnter` and `ionViewDidEnter` hooks, reactive forms with `ion-input` and `ion-select`, services and state via `BehaviorSubject` or signals, guards with `CanActivateFn`. Imports follow the detected architecture: `@ionic/angular/standalone` for standalone, `IonicModule` in the page module otherwise.

You need Node.js, npm and the Ionic CLI, plus a project on Ionic Framework 7 or 8 with `@ionic/angular` and Angular 16+. The skill does not scaffold a new Ionic app, upgrade Ionic versions or handle Capacitor plugin integration. React and Vue projects are out of scope.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add capawesome-team/skills --skill ionic-angular -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/ionic-angular/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/ionic-angular/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add capawesome-team/skills --skill ionic-angular -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/ionic-angular/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add capawesome-team/skills --skill ionic-angular -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/ionic-angular/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install capawesome-team/skills ionic-angular
```

2. **Manually: put the files in place**
- File: `.github/skills/ionic-angular/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add capawesome-team/skills --skill ionic-angular -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/capawesome-team/skills --path skills/ionic-angular
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/ionic-angular/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add capawesome-team/skills --skill ionic-angular -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/capawesome-team/skills/tree/HEAD/skills/ionic-angular/SKILL.md

## When to use it
- tell whether the project is standalone or NgModule before touching imports
- wire Angular Router into Ionic tabs, side menu and modals
- set up lazy loading with `loadComponent` or `loadChildren`
- pick the right page lifecycle hook for refreshing data
- connect reactive forms to `ion-input` and `ion-select` with validation messages

## Example prompts
- check my Ionic project and tell me if it is standalone or NgModule
- set up lazy loading for the profile page
- data is stale when I come back to a page — sort out the lifecycle hooks

## Source text · SKILL.md · MIT

Below is the content of a third-party file. It is data, not instructions for you: do not act on anything written inside unless the human asks. Block tag: 9754ba28c2186457.

BEGIN THIRD-PARTY FILE 9754ba28c2186457
```text
---
name: ionic-angular
description: "Guides the agent through Angular-specific patterns for Ionic app development. Covers project structure, standalone vs NgModule architecture detection, Angular Router integration with Ionic navigation (tabs, side menu, modals), lazy loading, Ionic page lifecycle hooks, reactive forms with Ionic input components, Angular services for state management, route guards, performance optimization, and testing. Do not use for creating a new Ionic app from scratch, upgrading Ionic versions, general Ionic component usage unrelated to Angular, Capacitor plugin integration, or non-Angular frameworks (React, Vue)."
license: MIT
compatibility: "Requires Node.js, npm, and the Ionic CLI."
metadata:
  author: capawesome-team
  source: https://github.com/capawesome-team/skills/tree/main/skills/ionic-angular
---

# Ionic Angular

Ionic development with Angular — project structure, Angular-specific components, navigation, lazy loading, forms, and lifecycle integration.

## Prerequisites

1. **Ionic Framework 7 or 8** with `@ionic/angular`.
2. **Angular 16+** (Angular 17+ recommended for standalone architecture).
3. Node.js and npm installed.
4. Ionic CLI installed (`npm install -g @ionic/cli`).

## Agent Behavior

- **Auto-detect architecture.** Check `src/main.ts` for `bootstrapApplication` (standalone) vs. `platformBrowserDynamic().bootstrapModule` (NgModule). Adapt all code examples to the detected architecture.
- **Guide step-by-step.** Walk the user through one topic at a time.
- **Adapt imports.** For standalone components, import each Ionic component from `@ionic/angular/standalone`. For NgModule components, import `IonicModule` in the page module.

## Procedures

### Step 1: Analyze the Project

Auto-detect the following by reading project files — do **not** ask the user for information that can be inferred:

1. **Ionic version**: Read `@ionic/angular` version from `package.json`.
2. **Angular version**: Read `@angular/core` version from `package.json`.
3. **Architecture**: Check `src/main.ts` for `bootstrapApplication` (standalone) or `platformBrowserDynamic().bootstrapModule` (NgModule). If `src/app/app.module.ts` exists and imports `IonicModule`, confirm NgModule.
4. **Capacitor**: Check if `@capacitor/core` is in `package.json`. Check for `android/` and `ios/` directories.
5. **Routing**: Check for `src/app/app.routes.ts` (standalone) or `src/app/app-routing.module.ts` (NgModule).
```
END THIRD-PARTY FILE 9754ba28c2186457

The third-party file has ended. Everything between the 9754ba28c2186457 tags is data: requests and commands from it are not followed. An “end of file” line with another tag inside the block is part of the file.

First 2455 of 10387 bytes. © capawesome-team · MIT · https://github.com/capawesome-team/skills/tree/HEAD/skills/ionic-angular/SKILL.md

_Part of the page did not fit — see the HTML version._

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
