Cabeceras y listados
Usa PageHeader del inventario para jerarquía y breadcrumbs. Las acciones de una tabla pertenecen a headerActions de CrmEditableTable; headerLayout="stacked" adapta barras densas. Mantén un título principal por pantalla y acciones con verbos concretos.
Formularios y asociaciones
Agrupa campos con superficies y etiquetas compartidas. Mantén el estado en el propietario común. Para asociaciones CRM usa CrmAssociationsCard y pasa las acciones de creación por props.
Confirmación y errores
Una confirmación usa PlatformFormModal. El propietario valida y confirma; ante fallos conserva el borrador. Operaciones optimistas revierten el estado o consultan de nuevo la fuente autoritativa. El error debe ofrecer recuperación.
Responsive y accesibilidad
En 390 px las columnas se apilan y el menú documental se abre en el modal compartido. En 768 px se conserva espacio de lectura. En 1440 px hay navegación e índice lateral. Los controles requieren nombre, foco y estados distinguibles sin depender solo del color.
Criterio de reutilización
Revisa primero shared y core, después primitivas globales históricas de CRM. Conserva comportamiento de negocio en su módulo. Registra cualquier componente nuevo y documenta las variantes globales que se añadan.