Skip to content
Back to skills

Frontend Angular Component

ASecurity

Use when creating or modifying Angular components in Frontend (Angular 19) with proper base class inheritance, state management, and platform patterns.

  • 666 stars
  • 0 votes
  • 0 copies
  • 5 views
  • Added February 8, 2026
developmentbashangularapifrontend

Works with

  • cli
  • api

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill frontend-angular-component --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Frontend Angular Component?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Frontend Angular Component
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-frontend-angular-component/badge)](https://www.skillsdirectory.com/skills/majiayu000-frontend-angular-component)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: frontend-angular-component
description: Use when creating or modifying Angular components in Frontend (Angular 19) with proper base class inheritance, state management, and platform patterns.
infer: true
allowed-tools: Read, Write, Edit, Grep, Glob, Bash
---

# Angular Component Development Workflow

Use when creating/modifying Angular 19 components with EasyPlatform base classes.

## Decision Tree

```
What type of component?
├── Simple display (no state)     → AppBaseComponent
├── Mutable view model            → AppBaseVmComponent
├── User input form               → AppBaseFormComponent (see frontend-angular-form skill)
├── Complex state / CRUD / list   → AppBaseVmStoreComponent (see frontend-angular-store skill)
└── Reusable presentational       → AppBaseComponent + @Input/@Output
```

**Rule:** Always use `AppBase*` (not `Platform*` directly) to get auth/role context.

## Workflow

1. **Search** existing components: `grep "{Feature}Component" --include="*.ts"`
2. **Read** design system docs (see Read Directives below)
3. **Select** base class from decision tree above
4. **Create** files: `{feature}.component.ts`, `.html`, `.scss`, optionally `.store.ts`
5. **Implement** using patterns from references
6. **Verify** checklist below

## Key Rules

- Wrap content with `<app-loading-and-error-indicator [target]="this">`
- Use `@for (item of items; track trackByItem)` with `ngForTrackByItemProp`
- All subscriptions: `.pipe(this.untilDestroyed()).subscribe()`
- Store provided at component level: `providers: [FeatureStore]`
- All API calls through `PlatformApiService` subclasses (never `HttpClient` directly)
- Place logic in LOWEST layer: Entity/Model > Service > Component

## File Location

```
src/Frontend/apps/{app-name}/src/app/features/{feature}/
├── {feature}.component.ts|html|scss
└── {feature}.store.ts (if using store)
```

## ⚠️ MUST READ Before Implementation

**IMPORTANT: You MUST read these files before writing any code. Do NOT skip.**

1. **⚠️ MUST READ** `.claude/skills/shared/angular-design-system.md` — hierarchy, SCSS, platform APIs
2. **⚠️ MUST READ** `.claude/skills/shared/bem-component-examples.md` — BEM HTML/SCSS examples
3. **⚠️ MUST READ** `.claude/skills/frontend-angular-component/references/component-patterns.md` — list, form, simple component patterns
4. **⚠️ MUST READ** target app design system: `docs/design-system/README.md` and `02-component-catalog.md`

## Anti-Patterns

- `extends PlatformComponent` when auth needed -> use `AppBaseComponent`
- `private sub: Subscription` + manual cleanup -> use `this.untilDestroyed()`
- `constructor(private http: HttpClient)` -> use `PlatformApiService` subclass
- Missing `<app-loading-and-error-indicator>` wrapper
- Template elements without BEM classes

## Verification Checklist

- [ ] Correct `AppBase*` class selected
- [ ] Store provided at component level (if using store)
- [ ] Loading/error wrapped with `app-loading-and-error-indicator`
- [ ] All subscriptions use `untilDestroyed()`
- [ ] Track-by on `@for` loops
- [ ] Auth checks use `hasRole()` from base class
- [ ] All elements have BEM classes


## IMPORTANT Task Planning Notes

- Always plan and break many small todo tasks
- Always add a final review todo task to review the works done at the end to find any fix or enhancement needed

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.