uecko-control-tiempos/docs/arquitectura/frontend.md
David 0e7106f30c Refactor documentation for project architecture and guidelines
- Updated "Ficha del proyecto UECKO.md" to clarify architectural boundaries and continuity rules.
- Revised "README.md" to enhance structure and clarify sources of truth for documentation.
- Improved "backend.md" with clearer definitions of responsibilities and architectural layers.
- Streamlined "convenciones.md" to emphasize naming conventions and TypeScript best practices.
- Enhanced "datos-persistencia.md" to specify persistence rules and data integrity measures.
- Updated "frontend.md" to define frontend rules and state management practices.
- Refined "testing.md" to clarify testing levels and validation processes.
- Revised "vision-general.md" to outline system architecture and module boundaries more clearly.
2026-09-17 22:29:38 +02:00

20 lines
1.3 KiB
Markdown

# Arquitectura frontend
## Objetivo
Definir las reglas de frontend. React, TanStack Query, TanStack Table, React Hook Form, Zod, shadcn/ui y Tailwind son tecnologías objetivo documentadas; este documento no afirma su instalación efectiva.
## Estado y datos remotos
Las operaciones de servidor permanecen en TanStack Query. No duplicar estado remoto en estado local sin necesidad; las query keys siguen la convención existente y, tras mutaciones, la caché se invalida o actualiza explícitamente. No introducir efectos para derivar durante render estado que pueda calcularse directamente.
## Formularios y componentes
Los formularios usan React Hook Form y Zod conforme a los patrones existentes. Los componentes evitan responsabilidad monolítica: se extraen responsabilidades cuando exista una frontera semántica clara, no para ocultar JSX trivial. Usar shadcn/ui y Tailwind según los patrones del área.
## UI, accesibilidad e internacionalización
La interfaz contempla estados `disabled`, `loading`, `empty` y `error`, conserva acciones no disponibles deshabilitadas cuando la UX requiera mostrarlas y preserva comportamiento responsive y accesibilidad.
Los textos visibles se mantienen en `es` y `en` cuando el área use i18n; no se insertan directamente en ese caso. Las columnas monetarias usan `tabular-nums` cuando corresponda.