angular-spa
- Repo stars 31
- License MIT
- Author updated Live
- Author repo claude-code-onboarding
- Domain
- Design
- Compatible agents
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- Trust score
- 94 / 100 · audit passed
- Author / version / license
- @kumaran-is · MIT
- Token usage
- Lean
- Setup complexity
- Guided setup
- External API key
- Not required
- Operating systems
- macOS · Linux · Windows
- Runtime requirements
- No special requirements
- Permissions
-
- Read-only
- Write / modify
- Network behavior
- Local-only
- Install commands
- 26 variants
Profile is derived at build time from SKILL.md and install vectors. Subject to drift from author intent.
Heads up: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: angular-spa
description: Angular 21.x SPA development skill with TailwindCSS 4.x and daisyUI 5.5.5. Use when building Ang…
category: design
runtime: no special runtime
---
# angular-spa output preview
## PART A: Task fit
- Use case: 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..
- Inputs: target material, constraints, expected output, and acceptance criteria.
- Evidence boundary: follow “Iron Law / Conventions & Structure / Documentation Sources” and do not present inference as author intent.
## PART B: Execution result
- **01** The card summarizes the use case; runtime output centers on “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.”.
- **02** When the source has headings, the agent prioritizes “Iron Law / Conventions & Structure / Documentation Sources” so the result follows the author’s structure.
- **03** Typical output includes task judgment, concrete steps, required commands or file edits, validation, and follow-up options.
- **04** Risk context follows the fingerprint: read files, write/modify files; mostly runs locally; usually needs no extra API key.
## Running Rules
- read files, write/modify files; mostly runs locally; usually needs no extra API key.
- Validate with a small sample before expanding scope.
- Return the result, validation criteria, and next iteration options. The source does not require a stable slash command. After installation, invoke the skill by name and describe the task.
Name target files or source material, expected output, forbidden changes, and whether network or shell access is allowed. Permission fingerprint: read files, write/modify files.
Start with a small task and check whether the result follows “Iron Law / Conventions & Structure / Documentation Sources”. Inspect diffs, logs, previews, or tests before expanding scope.
Confirm the final output includes a concrete result, evidence, and next action. If it stays generic, tighten inputs, boundaries, and acceptance criteria.
---
name: angular-spa
description: Angular 21.x SPA development skill with TailwindCSS 4.x and daisyUI 5.5.5. Use when building Ang…
category: design
source: kumaran-is/claude-code-onboarding
---
# angular-spa
## When to use
- Angular 21.x SPA development skill with TailwindCSS 4.x and daisyUI 5.5.5. Use when building Angular standalone compon…
- Use it when the task has clear inputs, repeatable steps, and validation criteria.
## What to provide
- Target material, scope, expected result, and forbidden changes.
- Whether network, commands, file writes, or external services are allowed.
## Execution rules
- Organize steps around “Iron Law / Conventions & Structure / Documentation Sources” and keep inference separate from source facts.
- read files, write/modify files; mostly runs locally; usually needs no extra API key.
- Validate with a small sample before expanding the task.
## Output requirements
- Return the deliverable, key evidence, validation method, and next action.
- Mark missing information as unknown; do not invent commands, platforms, or dependencies. The author source anchors workflow facts; repository files anchor sources and commands; Fluxly only adds fit, limitations, and quality judgment.
skill "angular-spa" {
input -> user goal + target files + boundaries + acceptance criteria
context -> Iron Law / Conventions & Structure / Documentation Sources
rules -> SKILL.md triggers / order / output contract
runtime -> no special runtime | read files, write/modify files | mostly runs locally
guardrails -> usually needs no extra API key + small-sample validation + diff/log review
output -> copyable result + checklist + next iteration
} 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
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:
- Read
reference/daisyui-v5-components.md— for semantic color tokens and component patterns - Read
reference/tailwind-v4-config.md— for TailwindCSS 4.x setup constraints - Verify token awareness — can you name the color token (
bg-primary,text-base-content), spacing base (4px), and typography approach you will use? - If not → read the reference files before writing any template or style code
- For accessibility: read
reference/accessibility-checklist.mdbefore adding interactive elements
Process
- Understand Requirements — Clarify feature scope, API endpoints, data models, and UI requirements
- Scaffold Structure — Create feature folder under
src/app/features/<feature-name>/ - Generate Component — Read
reference/angular-templates.mdfor templates; create with signals-based state - Create Service — Read
reference/angular-templates.mdfor service template; implement API calls with HttpClient + RxJS - Configure Routes — Add lazy-loaded route using
loadComponentinapp.routes.tsor feature routes - Write Tests — Read
reference/angular-templates.mdfor test templates; write unit tests with zoneless TestBed - Style Component — Use daisyUI components + TailwindCSS utilities; fallback to SCSS with BEM naming
- Verify Build — Run
ng buildto 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 practicesangular-templates.md— Standalone component, service, lazy routes, app.config, interceptor, guard, and test templatesangular-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 v3daisyui-v5-components.md— Full component reference, color system, themes, quick setup patternsangular-forms-fields.md— Input fields, select, textarea, checkbox, radio patternsangular-forms-validation.md— Validation patterns, error messages, async validatorsangular-forms-advanced.md— Multi-step forms, dynamic fields, form arraysangular-ui-tables.md— Table and grid patterns with sorting, filtering, paginationangular-ui-lists.md— List, card, and feed UI patternsangular-ui-navigation.md— Navigation, breadcrumbs, tabs, and sidebar patternsangular-ui-feedback-components.md— Toasts, dialogs, themes, error handling, utilitiesaccessibility-checklist.md— WCAG 2.1 AA checklist, ARIA patterns, test protocolangular-aria.md— Angular CDK accessible headless components (FocusTrap, ListKeyManager, LiveAnnouncer, Accordion, Combobox)component-harnesses.md— Angular CDK component harnesses for stable UI testingtesting-vitest.md— Vitest setup, zoneless TestBed, testing Signals and resource(), migration from Karmae2e-cypress.md— Cypress E2E setup, component testing, custom commands, data-cy conventionsmart-dumb-components.md— Smart (container) vs Dumb (presentational) component pattern, decision tree, signal-based examples, hard rules, file location enforcementangular-animations.md— Angular Animations API (animate.enter/animate.leave,trigger(),state(),keyframes(),stagger()), timing standards, animation rulesuser-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 — useinput(),output(), andmodel()signals (Angular 21 standard) - NEVER use
BehaviorSubjectfor component state — usesignal()andcomputed() - NEVER rely on default change detection (
ChangeDetectionStrategy.Default) — always useOnPushwith signals
Templates
- NEVER use
*ngIf,*ngFor,*ngSwitchstructural directives — use@if,@for,@switchcontrol flow (Angular 17+, standard in v21) - NEVER import
CommonModulein 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— useprovideHttpClient()inapp.config.ts(functional API)
Subscriptions & Memory
- NEVER subscribe manually without
takeUntilDestroyed(destroyRef)— memory leaks in long-lived components - NEVER use
ngOnDestroyto unsubscribe — useDestroyRefandtakeUntilDestroyed()instead
DOM & Styling
- NEVER use
document.getElementByIdor direct DOM manipulation — useviewChild()signal or Angular CDK - NEVER use inline
style=""attributes — use TailwindCSS utilities or SCSS
Design Tokens
- NEVER use
style="color: #3B82F6"inline — useclass="text-primary" - NEVER use hardcoded Tailwind primitive color classes like
bg-blue-500— use semanticbg-primary - NEVER use
style="padding: 16px"— useclass="p-4" - NEVER use
style="font-size: 16px"— useclass="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
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
/* 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
// 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
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 zeroinject()calls (dumb rule) - Service-injecting components live in
pages/orfeatures/(smart rule)
Decide Fit First
Design Intent
How To Use It
Boundaries And Review