⚛️ Protocolo Antigravity: Skill Frontend (React)
Core Principle: Componentes puros, predecibles y compostables. UI declarativa sobre imperativa.
1. Stack & Principios
- •React: Functional Components + Hooks (Prohibido Class Components).
- •TypeScript: Strict Mode.
anyestá prohibido (usarunknowno generics). - •Styling: Tailwind CSS (Utility-first).
2. Estructura de Archivos (Feature-First)
Organizar el código por funcionalidad ("Features") en lugar de por tipo técnico.
text
src/
features/
auth/
components/ # Componentes exclusivos de Auth
hooks/ # Hooks exclusivos de Auth
types/ # Interfaces de Auth
dashboard/
components/ # Componentes UI compartidos (Button, Input)
hooks/ # Hooks compartidos
3. Diseño de Componentes
- •SRP: Un componente hace una cosa. Si tiene demasiados
useEffecto estados, divídelo. - •Contenedor vs Presentacional: Separar lógica (hooks, data fetching) de vista (JSX, estilos).
- •Props: Interfaces explícitas. Usar destructuring. Evitar prop-drilling excesivo (usar Context o Composition).
4. Estado y Hooks
- •useState: Para estado local UI simple.
- •useReducer: Para estado complejo interdependiente.
- •Context: Para estado global temático o de sesión (evitar abusar para data frecuente).
- •Custom Hooks: Extraer lógica reutilizable siempre (
useForm,useFetch).
5. Rendimiento
- •Re-renders: Entender cuándo y por qué ocurre un render.
- •Memoización: Usar
useMemoyuseCallbacksolo ante problemas de performance medidos, o para estabilidad referencial en dependencias de efectos. - •Code Splitting:
React.lazypara rutas y modales pesados. - •Imágenes:
loading="lazy", formatos modernos (WebP), dimensiones explícitas.
6. JSX Limpio
- •Condicionales: Ternarios para casos simples. Short-circuit (
&&) con cuidado (cuidado con0). - •Listas:
keyúnica y estable (IDs de DB, no índices de array). - •No Lógica en View: Extraer cálculos complejos fuera del return.
7. Tailwind Best Practices
- •Usar clases utilitarias directamente.
- •Extraer a componentes (
<Button>) para reutilización, NO usar@applyindiscriminadamente. - •Mantener consistencia con
tailwind.config.js(colores, espaciado).
8. Testing Check
- • ¿Testeas lo que el usuario ve (Behavior), no la implementación interna?
- • ¿Cubres casos de éxito y error?
- • ¿Componentes accesibles (roles ARIA)?
9. Tooling & Calidad
Consulta la skill
quality-assurancepara detalles de configuración.
- •Linter: ESLint obligatorio (
npm run lint). Prohibido ignorar reglas de hooks. - •Formatting: Prettier (
npm run format). - •Commits: Pre-commit hooks activados.
Recuerda: El frontend es lo que el usuario toca. Haz que se sienta sólido, rápido y profesional.