About ionic-angular
A reference skill for building Ionic and Angular apps, intended to guide project setup, navigation, pages, and cross-cutting implementation choices. It organizes detailed guidance by topic and sets concrete requirements for app structure, libraries, and practices.
Key features
- 01Guidance for setup, structure, and routing
- 02References for pages and navigation
- 03Signals and service implementation guidance
- 04Accessibility, localization, and deferred loading
- 05Required pages, libraries, and Angular practices
Use cases
- 01Plan a new Ionic Angular app
- 02Implement onboarding, paywall, and settings pages
- 03Choose routing and tab navigation patterns
- 04Check Angular conventions before building
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ erkamyaman/ ionic-capacitor-skills --skill ionic-angularAfter installing, type/ionic-angularin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/accessibility.mdapp-config.mdbest-practices.mdcommands.mdcontrol-flow.mddefer-loading.mdi18n-ngx-translate.mdnew-app.mdonboarding-guard.mdonboarding-page.mdpaywall-page.mdproject-structure.mdrouting.mdservices.mdsettings-page.mdsignals.mdtabs-navigation.mdDetails
From the project READMEIonic + Angular App Guidelines
This is a SKILL file, NOT a project. Never run
npm installhere. When creating a new project, ask for the project path or scaffold in a separate directory (e.g.~/Projects/<app>).
When to consult these references
Project setup:
- Create a new Angular Ionic project: new-app.md
- Project structure (folder layout): project-structure.md
- App configuration (
main.ts,app.config.ts): app-config.md - Routing (lazy
loadComponent, tabs): routing.md
Pages and navigation:
- Onboarding guard (
CanMatchFn— preferred overCanActivateFnfor lazy-route gates): onboarding-guard.md - Onboarding page (video background + Swiper): onboarding-page.md
- Paywall page (RevenueCat): paywall-page.md
- Tabs navigation: tabs-navigation.md
- Settings page: settings-page.md
Cross-cutting:
- Signals (
signal,computed,effect,untracked, signal inputs/outputs): signals.md - Services (Theme / Onboarding / Ads / Purchases / Notifications): services.md
- Built-in control flow (
@if/@for/@switch): control-flow.md - Accessibility (ARIA, touch targets, screen readers): accessibility.md
@deferlazy rendering (paywall / onboarding heavy chunks): defer-loading.md- i18n with
@ngx-translate/core: i18n-ngx-translate.md - Best practices (standalone, separate files, signals-first,
OnPush,inject()): best-practices.md - Commands (build / sync / open): commands.md
Native plugin topics live in ../ionic-shared/references/ — always link there for AdMob, RevenueCat, push notifications, storage, and theme:
Required pages (always create)
- Onboarding — swipe-based, fullscreen background video + gradient overlay.
- Paywall — RevenueCat (weekly / yearly), shown immediately after onboarding.
- Settings — language, theme, notifications, remove ads, reset onboarding.
Required navigation
Use ion-tabs + ion-tab-bar. Never build a custom tab bar or pull in a third-party tab library.
Required libraries
npm install \
@capacitor/preferences @capacitor/push-notifications \
@capacitor/splash-screen @capacitor/status-bar \
@revenuecat/purchases-capacitor @capacitor-community/admob \
@ngx-translate/core @ngx-translate/http-loader \
swiper
Hard rules (Angular-specific)
- ❌ NgModules for new pages/components — use standalone components.
- ❌
IonicModulein standalone components — import the individual components (IonContent,IonButton, …). - ❌ Inline
templateorstylesin@Component— always use separate.html,.ts,.scssfiles viatemplateUrlandstyleUrls. - ❌
@angular/http(deprecated) — use@angular/common/http. - ❌
anytype — use real TypeScript types. - ✅ Prefer Signals for reactive state —
signal(),computed(),effect(). Services should expose readonly signals where it makes sense — see signals.md. Stick to stable signal APIs; avoid Angular features marked "developer preview" / "experimental" (e.g.linkedSignal,resource, Signal Forms) until they graduate. - ✅ Use signal inputs / outputs (
input(),input.required(),output()) for new components.
Before reporting done
npm install
npx ng build
npx cap sync
The build must complete without errors. cap sync is required after every web build before testing on native.