angular-spa
/angular-spa
Angular 21.x SPA development skill with TailwindCSS 4.x and daisyUI 5.5.5. Use when building Angular standalone components, services, lazy-loaded routes, unit tests, or creating UI with TailwindCSS + daisyUI. Covers component scaffolding, UI/UX design, accessibility audits, and design systems.
- Author
- kumaran-is ↗
- Repository
- claude-code-onboarding ↗
- Licence
- MIT
- Last repository change
- 30.06.2026
Assessment and security
- Files in this package
- 25
- Scripts
- 0
- HTML comments
- 0
- URLs in SKILL.md
- 6
No signals detected. Repository changed on 30.06.2026, without references to retired models or APIs.
MIT, open: use and modify while retaining author attribution.
What it does and when to use it
Angular 21.x SPA development skill with TailwindCSS 4.x and daisyUI 5.5.5. Use when building Angular standalone components, services, lazy-loaded routes, unit tests, or creating UI with TailwindCSS + daisyUI. Covers component scaffolding, UI/UX design, accessibility audits, and design systems.
Original author description
Angular 21.x SPA development skill with TailwindCSS 4.x and daisyUI 5.5.5. Use when building Angular standalone components, services, lazy-loaded routes, unit tests, or creating UI with TailwindCSS + daisyUI. Covers component scaffolding, UI/UX design, accessibility audits, and design systems.
How it works
- Iron Law
- Conventions & Structure
- Documentation Sources
- Quick Scaffold — New Angular Project
- Before Writing Any UI Code
- Process
- Reference Files
- Anti-Patterns — What to Avoid
- Error Handling
- Common Commands
SKILL.md preview
---
name: angular-spa
description: "Angular 21.x SPA development skill with TailwindCSS 4.x and daisyUI 5.5.5. Use when building Angular standalone components, services, lazy-loaded routes, unit tests, or creating UI with TailwindCSS + daisyUI. Covers component scaffolding, UI/UX design, accessibility audits, and design systems."
allowed-tools: Read, Edit, Write, Glob, Grep, Bash, WebFetch, mcp__context7__resolve-library-id, mcp__context7__query-docs
metadata:
triggers: Angular, Angular 21, standalone components, Angular SPA, TailwindCSS, daisyUI, Angular component, Angular service, lazy-loaded route, Angular testing
related-skills: frontend-design, ui-standards-tokens, browser-testing, openapi-spec-generation
domain: frontend
role: specialist
scope: implementation
output-format: code
last-reviewed: "2026-03-14"
---
## Iron Law
**NO ANGULAR CODE WITHOUT READING `reference/angular-conventions.md` FIRST — conventions, folder structure, and daisyUI token rules are all there**
**STYLE LAW:** Strictly follow https://angular.dev/style-guide for ALL naming, file structure, and code organization. See `reference/angular-conventions.md` for the quick reference.
**ANIMATION LAW:** Use `@angular/animations` for ALL interactive animations. Never raw CSS transitions on stateful elements. See `reference/angular-animations.md`.
# Angular 21.x SPA Development Skill
> **Tech Stack**: Angular 21+, TailwindCSS 4.x, daisyUI 5.5.5
## Conventions & Structure
> For code conventions, styling rules, design principles, key patterns, folder structure, and common commands, read `reference/angular-conventions.md`
## Documentation Sources
Before generating code, consult these sources for current syntax and APIs:
| Source | URL / Tool | Purpose |
|--------|-----------|---------|
| Angular v21 | `angular-cli` MCP (ng mcp) | Workspace-aware help, schematics, builds, best practices |
| Angular v21 | `https://angular.dev/assets/context/llms-full.txt` | Static docs bundle — API reference, deprecated features |
| daisyUI v5.5.5 | `https://daisyui.com/llms.txt` | Component reference, color system, themes |
| TailwindCSS / RxJS | `Context7` MCP | Latest syntax, utilities, operators |
| Angular + Tailwind official guide | `https://angular.dev/guide/tailwind` | Canonical install steps, `ng add tailwindcss`, build integration |
Cross-check all Angular APIs and CLI flags against fetched docs — do NOT use deprecated or removed features.
> For Angular & TypeScript best practices, read reference/angular-best-practices.md
## Quick Scaffold — New Angular Project
```bash
npx @angular/cli@latest new my-app --style=scss --ssr=false
cd my-app
```
Do NOT pass `--standalone` (removed/default since v19). Verify flags against fetched docs.
## Before Writing Any UI Code
Before creating or modifying any component template or styles:
1. **Read `reference/daisyui-v5-components.md`** — for semantic color tokens and component patterns
2. **Read `reference/tailwind-v4-config.md`** — for TailwindCSS 4.x setup constraints
3. **Verify token awareness** — can you name the color token (`bg-primary`, `text-base-content`), spacing base (4px), and typography approach you will use?
4. If not → read the reference files before writing any template or style code
5. For accessibility: read `reference/accessibility-checklist.md` before adding interactive elements
## Process
1. **Understand Requirements** — Clarify feature scope, API endpoints, data models, and UI requirements
2. **Scaffold Structure** — Create feature folder under `src/app/features/<feature-name>/`
3. **Generate Component** — Read `reference/angular-templates.md` for templates; create with signals-based state
4. **Create Service** — Read `reference/angular-templates.md` for service template; implement API calls with HttpClient + RxJS
5. **Configure Routes** — Add lazy-loaded route using `loadComponent` in `app.routes.ts` or feature routes
6. **Write Tests** — Read `reference/angular-templates.md` for test templates; write unit tests with zoneless TestBed
7. **Style Component** — Use daisyUI components + TailwindCSS utilities; fallback to SCSS with BEM naming
8. **Verify Build** — Run `ng build` to ensure no compilation errors
## Reference Files
Detailed patterns are in `reference/`:
### Angular Best Practices & Code Templates
- `angular-best-practices.md` — TypeScript, component, template, state management, services, forms, zoneless, accessibility, and testing best practices
- `angular-templates.md` — Standalone component, service, lazy routes, app.config, interceptor, guard, and test templates
- `angular-troubleshooting.md` — Common errors (NG0908, NullInjectorError, blank screen), CLI commands, and best practices
### UI/UX & Design System
- `tailwind-v4-config.md` — TailwindCSS 4.x setup, breaking changes from v3
- `daisyui-v5-components.md` — Full component reference, color system, themes, quick setup patterns
- `angular-forms-fields.md` — Input fields, select, textarea, checkbox, radio patterns
- `angular-forms-validation.md` — Validation patterns, error messages, async validators
- `angular-forms-advanced.md` — Multi-step forms, dynamic fields, form arrays
- `angular-ui-tables.md` — Table and grid patterns with sorting, filtering, pagination
- `angular-ui-lists.md` — List, card, and feed UI patterns
- `angular-ui-navigation.md` — Navigation, breadcrumbs, tabs, and sidebar patterns
- `angular-ui-feedback-components.md` — Toasts, dialogs, themes, error handling, utilities
- `accessibility-checklist.md` — WCAG 2.1 AA checklist, ARIA patterns, test protocol
- `angular-aria.md` — Angular CDK accessible headless components (FocusTrap, ListKeyManager, LiveAnnouncer, Accordion, Combobox)
- `component-harnesses.md` — Angular CDK component harnesses for stable UI testing
- `testing-vitest.md` — Vitest setup, zoneless TestBed, testing Signals and resource(), migration from Karma
- `e2e-cypress.md` — Cypress E2E setup, component testing, custom commands, data-cy convention
- `smart-dumb-components.md` — Smart (container) vs Dumb (presentational) component pattern, decision tree, signal-based examples, hard rules, file location enforcement
- `angular-animations.md` — Angular Animations API (`animate.enter`/`animate.leave`, `trigger()`, `state()`, `keyframes()`, `stagger()`), timing standards, animation rules
- `user-research.md` — Persona templates, journey mapping, usability testing, SUS survey
## Anti-Patterns — What to Avoid
### Architecture
- **NEVER** create `NgModule` — Angular 21 is fully standalone; all components, pipes, and directives are standalone by default
- **NEVER** call HTTP or business logic directly in a component — delegate to an injectable service
### State & Change Detection
- **NEVER** use `@Input()` / `@Output()` decorators for new code — use `input()`, `output()`, and `model()` signals (Angular 21 standard)
- **NEVER** use `BehaviorSubject` for component state — use `signal()` and `computed()`
- **NEVER** rely on default change detection (`ChangeDetectionStrategy.Default`) — always use `OnPush` with signals
### Templates
- **NEVER** use `*ngIf`, `*ngFor`, `*ngSwitch` structural directives — use `@if`, `@for`, `@switch` control flow (Angular 17+, standard in v21)
- **NEVER** import `CommonModule` in standalone components — it is a compatibility shim; import nothing or use control flow syntax
### Dependency Injection
- **NEVER** inject services via constructor parameters — use the `inject()` function in Angular 21
- **NEVER** import `HttpClientModule` — use `provideHttpClient()` in `app.config.ts` (functional API)
### Subscriptions & Memory
- **NEVER** subscribe manually without `takeUntilDestroyed(destroyRef)` — memory leaks in long-lived components
- **NEVER** use `ngOnDestroy` to unsubscribe — use `DestroyRef` and `takeUntilDestroyed()` instead
### DOM & Styling
- **NEVER** use `document.getElementById` or direct DOM manipulation — use `viewChild()` signal or Angular CDK
- **NEVER** use inline `style=""` attributes — use TailwindCSS utilities or SCSS
### Design Tokens
- **NEVER** use `style="color: #3B82F6"` inline — use `class="text-primary"`
- **NEVER** use hardcoded Tailwind primitive color classes like `bg-blue-500` — use semantic `bg-primary`
- **NEVER** use `style="padding: 16px"` — use `class="p-4"`
- **NEVER** use `style="font-size: 16px"` — use `class="text-base"`
## Error Handling
**Build failures (`NG0908`, `NullInjectorError`)**: Read `reference/angular-troubleshooting.md` for common errors and fixes.
**TailwindCSS not applied**: Verify `.postcssrc.json` exists (not `postcss.config.js`) and global styles use `.css` (not `.scss`).
**Blank screen on load**: Check browser console for lazy-loading errors. Verify route paths and `loadComponent` imports.
## Common Commands
```bash
ng serve # Dev server (http://localhost:4200)
ng test --watch=false # Run unit tests once (no watch)
ng test # Run unit tests in watch mode
ng build # Production build
ng lint # ESLint check
ng generate component features/my-feature/my-component --standalone # Scaffold component
ng generate service features/my-feature/my-service # Scaffold service
```
## Design Token System
Full token definitions are in `.claude/skills/ui-standards-tokens/reference/ui-design-tokens.md`. This section covers Angular-specific usage.
### Token Hierarchy (3 Tiers)
```
Primitive → Semantic → Component
```
```css
/* Primitive */
--color-blue-500: #3B82F6;
/* Semantic */
--color-primary: var(--color-blue-500);
/* Component */
--button-bg-primary: var(--color-primary);
```
Never use primitive tokens directly in component CSS. Components reference component tokens; component tokens reference semantic tokens.
### daisyUI Token Mapping
| Category | daisyUI / Tailwind classes |
|---|---|
| Colors | `bg-primary`, `text-base-content`, `bg-base-100/200/300`, `text-error`, `bg-success` |
| Spacing | `p-2` = 8px, `p-4` = 16px, `p-6` = 24px (4px base scale) |
| Typography | `text-sm`, `text-base`, `text-lg`, `font-semibold`, `font-bold` |
| Borders | `rounded-sm`, `rounded-md`, `rounded-lg`, `rounded-full`, `border border-base-300` |
| Shadows | `shadow-sm`, `shadow-md`, `shadow-xl` |
| Motion | `transition-all duration-200` |
| Z-index | custom CSS vars: `--z-dropdown: 1000`, `--z-modal: 1050`, `--z-tooltip: 1070` |
### Theme Switching
```typescript
// theme.service.ts
import { Injectable } from '@angular/core';
@Injectable({ providedIn: 'root' })
export class ThemeService {
setTheme(theme: 'light' | 'dark' | 'custom'): void {
document.documentElement.setAttribute('data-theme', theme);
localStorage.setItem('theme', theme);
}
getTheme(): string {
return localStorage.getItem('theme') ?? 'light';
}
}
```
daisyUI v5.5.5 uses the `data-theme` attribute on `<html>`. All daisyUI semantic classes switch automatically — no additional CSS is needed per component.
## Verify
```bash
ng serve # Starts at http://localhost:4200 — no errors in terminal
ng test --watch=false # All unit tests pass
ng build # Exit code 0, no NG build errors
npx ng lint # Zero lint violations
```
- [ ] App serves without console errors
- [ ] All Vitest unit tests pass (>90% coverage enforced)
- [ ] Production build completes successfully
- [ ] No TypeScript errors (`tsc --noEmit`)
- [ ] Shared components in `shared/components/` have zero `inject()` calls (dumb rule)
- [ ] Service-injecting components live in `pages/` or `features/` (smart rule)
Files in this package (25)
- SKILL.md 12 KB
- reference/accessibility-checklist.md 3 KB
- reference/angular-animations.md 8 KB
- reference/angular-aria.md 9 KB
- reference/angular-best-practices.md 4 KB
- reference/angular-conventions.md 11 KB
- reference/angular-forms-advanced.md 10 KB
- reference/angular-forms-fields.md 8 KB
- reference/angular-forms-validation.md 7 KB
- reference/angular-templates.md 10 KB
- reference/angular-troubleshooting.md 4 KB
- reference/angular-ui-data-components.md 34 KB
- reference/angular-ui-feedback-components.md 11 KB
- reference/angular-ui-form-components.md 33 KB
- reference/angular-ui-lists.md 7 KB
- reference/angular-ui-navigation.md 7 KB
- reference/angular-ui-tables.md 10 KB
- reference/animations.md 2 KB
- reference/component-harnesses.md 5 KB
- reference/daisyui-v5-components.md 9 KB
- reference/e2e-cypress.md 5 KB
- reference/smart-dumb-components.md 12 KB
- reference/tailwind-v4-config.md 7 KB
- reference/testing-vitest.md 6 KB
- reference/user-research.md 4 KB
Versions
The database has no other skills named angular-spa.
Database snapshot: 13.11.2026 · package version 0a017ffe1fad (SHA-256 digest of the entire package)
Downloads in the last 30 days: 0 · ranking
Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.
Similar skills
- 100daisyui
Guide for daisyUI component library with Tailwind CSS. Use when building UI components, implementing themes, or creating responsive designs with daisyUI. - 100daisyui
Build UI components with daisyUI (Tailwind CSS component library). Provides theme configuration, component patterns, and MCP server integration for accurate daisyUI 5 code generation. Use when creating web interfaces with daisyUI components, configuring themes, or generating… - 96angular
Angular开发专家助手。当用户需要进行Angular前端开发、TypeScript企业级应用、RxJS响应式编程或SPA开发时调用。 - 90angular-architecture
Use this skill when the user says 'Angular structure', 'Angular architecture', 'Angular folder', 'Angular standalone', 'Angular signals', 'Angular clean arch', 'Angular feature', 'Angular project layout', 'NgModule vs standalone', or when structuring an Angular application… - 100angular
Angular is Google's TypeScript framework for building single-page web applications with components, signals, dependency injection, routing, forms, an HTTP client and the ng CLI. Use when the user wants to create an Angular app, write standalone components, use signals, set up… - 90daisyui
Official daisyUI component-library skill for Tailwind CSS. When you write HTML or JSX code, you must use it. Even if the user does not request it, use it.