| name | Frontend Development |
| description | Автоматизация создания frontend компонентов (HTMX + Tailwind + DaisyUI + WebSocket) |
| version | 3.0.0 |
| author | Family Budget Team |
| tags | frontend, htmx, tailwind, daisyui, websocket, jinja2 |
| dependencies | api-development, websocket-realtime |
| architecture_refs | [object Object], [object Object], [object Object], [object Object] |
Frontend Development Skill
Автоматизация создания frontend компонентов с HTMX, Tailwind CSS, DaisyUI и WebSocket интеграцией.
When to Use
- Создать новый modal dialog
- Добавить HTMX trigger для API endpoint
- Создать новый JavaScript модуль
- Интегрировать WebSocket события
- Добавить Tailwind/DaisyUI компонент
Architecture Context
References:
Key Patterns:
- HTMX partial rendering - NO full page reload
- Tailwind utility-first CSS - NO custom CSS
- DaisyUI components - Pre-built UI components
- WebSocket real-time updates - Live data sync
- Offline-first - IndexedDB for offline support
Commands
Command: create-modal
Usage:
Создай modal dialog для создания/редактирования <ResourceName> с HTMX и WebSocket интеграцией.
What It Does:
- Creates Jinja2 template extending base.html
- Adds HTMX attributes (hx-post, hx-target, hx-swap)
- Adds DaisyUI modal structure
- Integrates WebSocket broadcast listener
- Adds loading states (hx-indicator)
Template Reference:
templates/htmx-template.html- Base Jinja2 + HTMX templatetemplates/tailwind-component.html- Tailwind/DaisyUI modal
Example:
examples/modal-implementation.md- Real Article modal
Command: add-htmx-trigger
Usage:
Добавь HTMX trigger для endpoint POST /api/v1/<resource> с WebSocket broadcast.
What It Does:
- Add hx-post/hx-get attribute to HTML element
- Configure hx-target for partial update
- Add hx-swap strategy (innerHTML/outerHTML/beforeend)
- Integrate WebSocket listener for real-time updates
- Add loading states
Template Reference:
templates/htmx-trigger-example.html
Command: add-ws-integration
Usage:
Интегрируй WebSocket события для <event-name> в frontend.
What It Does:
- Add event handler to budgetWSClient.js
- Update UI elements on event receive
- Handle offline queue if needed
Template Reference:
templates/ws-client-integration.js
Validation Checklist
- Template extends base.html
- HTMX attributes configured (hx-*, hx-target, hx-swap)
- Tailwind classes used (NO custom CSS)
- DaisyUI components used correctly
- WebSocket integration added if needed
- Responsive design (mobile-first)
- Accessibility (ARIA labels, keyboard nav)
- Minified JS built (
npm run minify:js) - Built CSS (
npm run build:css) - HTMX trigger registered in htmx-triggers.yaml
Common Mistakes
Forgot to minify JS:
- Symptom: Production bundle huge, unoptimized
- Fix:
npm run minify:js - Reference: $ref
HTMX trigger without target:
- Symptom: Full page reload instead of partial update
- Fix: Add
hx-target="#element-id"
Custom CSS instead of Tailwind:
- Symptom: Inconsistent styling, CSS bloat
- Fix: Use Tailwind utility classes
Related Skills
- api-development: Create API endpoints first
- websocket-realtime: Add real-time updates
- testing: Create e2e tests with Playwright