# Microcopy by component type

## Form labels
**Purpose:** Identify which data is expected.
**Structure:** Noun or short nominal phrase. No period. No verbs. Max 30 chars.
✅ "Nombre completo" / "Correo electrónico" / "Fecha de ingreso"
❌ "Ingresa tu nombre completo" / "Correo Electrónico Del Usuario" / "Mail"

## Placeholders
**Purpose:** Example or hint of the format. Does not replace the label.
**Structure:** Concrete example of the data. No period. Max 40 chars.
✅ "ej: juan.perez@empresa.com" / "DD/MM/AAAA" / "Busca por nombre o área"
❌ "Ingrese su correo electrónico aquí" / "Escriba..." / empty without reason

## Error messages (inline and toast)
**Purpose:** Report what happened and guide toward action.
**Structure:** [What happened] + [What to do]. Never blame. Max 120 chars.
✅ (Inline) "Completa este campo para continuar."
✅ (Inline) "El formato del correo no es válido. Revisa que tenga @ y un dominio."
✅ (Toast) "No pudimos conectar con el servidor. Revisa tu conexión e inténtalo de nuevo."
❌ "Error." / "Error 503. Inténtelo de nuevo más tarde." / "El campo es requerido."

**Common product errors:**
| Situation | Correct copy |
|---|---|
| No connection | "Sin conexión. Revisa tu red e inténtalo de nuevo." |
| Save error | "No pudimos guardar los cambios. Inténtalo de nuevo." |
| Expired session | "Tu sesión expiró. Vuelve a iniciar sesión." |
| Required field | "Completa este campo para continuar." |
| Wrong format (email) | "El formato del correo no es válido. Revisa que tenga @ y un dominio." |
| Server error | "Algo falló de nuestro lado. Intenta en unos minutos." |

## Success messages
**Purpose:** Confirm the action is done. Build confidence.
**Structure:** Brief confirmation + Next step (if applicable). Max 100 chars.
✅ "Listo. Enviamos tu solicitud." / "Cambios guardados." / "Perfil actualizado. Tu equipo ya puede ver la información."
❌ "La operación fue completada exitosamente." / "¡Éxito! ¡Todo salió perfecto!"

**Common success states:**
| Action | Correct copy |
|---|---|
| Saved | "Listo. Guardamos tus cambios." |
| Request sent | "Tu solicitud fue enviada. Te avisamos cuando haya novedades." |
| Profile updated | "Perfil actualizado." |
| File downloaded | "El reporte se descargó en tu dispositivo." |
| User deactivated | "El usuario fue desactivado. Ya no puede acceder a la plataforma." |

## Empty states
**Purpose:** Explain why there's no content and what the person can do.
**Structure:** [Why empty] + [What to do or what will happen]. Max 150 chars.
✅ (With action) "Todavía no hay solicitudes. Crea la primera desde el botón de abajo."
✅ (No action) "Todavía no hay comunicados publicados. Cuando el equipo de comunicación publique uno, lo vas a ver aquí."
❌ "No hay datos disponibles." / "Sin resultados."

**Common empty states:**
| Section | Correct copy |
|---|---|
| No requests | "Todavía no hay solicitudes. Cuando llegue una, la vas a ver aquí." |
| No announcements | "No hay comunicados publicados todavía." |
| No recognitions | "Todavía no recibiste reconocimientos. Cuando alguien te reconozca, aparece aquí." |
| No search results | "No encontramos resultados para tu búsqueda. Prueba con otro término." |
| Unconfigured module | "Este módulo todavía no está activo. Habla con tu administrador para habilitarlo." |

## Tooltips
**Purpose:** Additional context about a UI element.
**Structure:** One sentence. No period if short. Max 80 chars.
✅ "Fecha en que el empleado ingresó a la empresa" / "Solo visible para administradores"
❌ "En este campo deberás ingresar la fecha correspondiente al momento en que el empleado comenzó a prestar servicios." / "Info"

## Hints / helper text
**Purpose:** Guide how to complete an action.
**Structure:** Brief instruction or clarification. May have a period if it's a full sentence. Max 100 chars.
✅ "Usa al menos 8 caracteres, una mayúscula y un número." / "Este dato no es visible para otros colaboradores."
❌ "La contraseña debe tener un mínimo de ocho (8) caracteres alfanuméricos..."

## Modal titles
**Purpose:** Identify the action or decision.
**Structure:** Verb in infinitive + object. No period. No question mark unless it's a confirmation.
**Limit:** 50 chars.
✅ "Eliminar comunicado" / "¿Cancelar la solicitud?" / "Confirmar envío"
❌ "Confirmación de acción" / "Atención" / "¿Está seguro?"

## Buttons
**Purpose:** Indicate the action on press.
**Structure:** Verb imperative or infinitive. Short and specific. Max 20 chars / 3 words.

| Type | Correct | Incorrect |
|---|---|---|
| Primary | "Guardar", "Enviar solicitud" | "Haga clic aquí", "Continuar con el proceso" |
| Secondary | "Cancelar", "Volver" | "No, gracias" |
| Destructive | "Eliminar", "Dar de baja" | "Borrar todo", "Destruir" |

## Critical action confirmations
**Structure:** [What will happen] + [If irreversible, say it] + [Primary + secondary button].
✅ "¿Quieres eliminar este comunicado? Esta acción no se puede deshacer." → Buttons: "Eliminar" / "Cancelar"
✅ "Si das de baja a este colaborador, va a perder el acceso a la plataforma de forma inmediata." → Buttons: "Dar de baja" / "Cancelar"
❌ "¿Estás seguro?" → Buttons: "Sí" / "No"

## Loading states
**Structure:** Brief phrase indicating progress. Ellipses allowed. Max 50 chars.
✅ "Cargando..." / "Procesando los datos..." / "Preparando tu reporte..."
❌ "Por favor espere mientras el sistema procesa su solicitud." / no text during load

## Informational / alert banners
**Structure:** [Key info] + [Action if applicable]. Max 150 chars.
✅ (Informative) "A partir del 1/MAR/2026 cambian los beneficios de almuerzo. Revisa los detalles."
✅ (Alert) "Tu sesión va a expirar en 5 minutos. Guarda los cambios."
❌ "Importante: Información relevante sobre cambios próximos."

## Onboarding steps
**Structure:** Motivating title + clear instruction. One step per screen.
**Limit:** Title 50 chars / Body 120 chars.
✅ Title: "Completa tu perfil" / Body: "Agrega tu foto y datos de contacto para que tu equipo pueda encontrarte."
❌ Title: "Paso 1 de 5: Configuración inicial del perfil del usuario"
