MKClínico v3 Design System

Sistema de diseño unificado para aplicaciones de salud

Bienvenido al Design System

Este es el sistema de diseño oficial de MKClínico v3, una biblioteca de componentes UI consistente y reutilizable diseñada específicamente para aplicaciones del sector salud. Proporciona un lenguaje visual unificado que garantiza coherencia en toda la plataforma.

Todos los componentes están construidos con CSS puro utilizando variables CSS personalizables, sin dependencias de frameworks. Esto permite una integración sencilla en cualquier proyecto web.

Esta guía interactiva es una app Next.js que documenta el DS (maquetación interna con Tailwind); el paquete consumible para tus productos es el CSS del DS (CDN o copia local) más las clases documentadas aquí, no el código de layout de la guía.

Quickstart IA + persona (~5 minutos)

Guía corta para pedirle a una IA una primera pantalla con el DS, sin leer toda la documentación.

1. Objetivo

Código HTML o JSX usando solo clases del MKClinico, listo para pegar, con textos de ejemplo en tono clínico/administrativo.

2. CSS del DS (si aplica)

¿Tu app ya carga mkclinico-ui? Salta al paso 3. Si no, enlaza el CSS o descarga los archivos desde Recursos para IA.

Tip: la misma URL ya va dentro del prompt del paso 3; este bloque sirve para copiarla rápido al HTML.

Opcional: adjunta mkclinico-ai-context-lite.md (resumen) o mkclinico-ai-context.md (completo).

3. Prompt oficial

Mismo texto que en Recursos para IA. Pégalo como primer mensaje del chat; no hace falta leerlo entero antes de copiar.

Si ya trabajas a menudo con el DS y en cada hilo adjuntas el lite o el contexto completo, puedes usar el prompt diario (simplificado) en Recursos para IA — es más corto y da por fijadas las reglas del archivo.

Ver texto completo del prompt
ROL
Eres asistente de front-end para MKClinico (MasterKey). Tu salida debe usar solo el Design System documentado en la guía MKClinico.

REGLAS (obligatorias)
- Usa únicamente clases y variables del DS (mkclinico-ui / guía). No inventes tokens ni estilos sueltos.
- El <link> al CDN (o copia local del CSS) solo aplica estilos en el navegador; los nombres de clase y la estructura HTML salen de la guía o del contexto .md adjunto (mkclinico-ai-context-lite.md o completo) — no intentes deducirlos únicamente del .min.css.
- Proyecto solo HTML/CSS: incluye <link rel="stylesheet" href="https://cdnmk3.masterkey.cl/assets/css/mkclinico-ui.min.css"> y adjunta el contexto .md a la IA; usa markup documentado, sin imports @/app/... de la guía Next.js.
- Monorepo de la guía Next.js: no añadas el link; los estilos ya están cargados. Ahí sí puedes usar componentes React del repo (LayoutPantalla, InputRut, etc.) donde estén documentados.
- Entrega código listo para pegar y, al final, una línea con las clases/componentes DS que usaste.
- Si en el repo existe mkclinico-ai-context.md, úsalo como referencia ampliada; para una primera pasada corta, opcional mkclinico-ai-context-lite.md.
- Ejemplos de texto: dominio clínico/administrativo (pacientes, citas, fichas) cuando toque.
- Demos en la guía (rutas /demo-*): úsalos como referencia de **composición** (orden de bloques y clases DS). No copies como producto el estado, hooks o rutas del código Next de la guía si el destino es otro proyecto; entrega **markup + clases** (y el link al CDN en HTML suelto). Índice: guía Layout y pantallas → Demos a pantalla completa (#demos-pantalla-completa).
- Pedido vago («copia el demo», «igual que el demo» sin más): no interpretes como clonar el repo. Si no nombran ruta, pide **una** aclaración: qué demo de la guía (rutas que empiezan por /demo-, p. ej. /demo-layout) o usa la que ya aparezca en el mensaje/hilo. Luego replica solo composición + clases DS; datos de ejemplo clínicos genéricos; sin API ni navegación real.
- Funcionalidad que no estaba en la primera entrega (agregar/quitar ítems, pestañas dinámicas, scroll, etc.): el demo sigue siendo referencia de UX/comportamiento; la implementación la escribe el proyecto en su lenguaje o stack. No están obligados a copiar el código React de la guía. **Díselo al usuario en una frase** cuando pida eso y entrega la lógica en el stack que indique (o pseudocódigo mínimo), manteniendo clases y tokens del DS en cada estado.

A PARTIR DE AHÍ
Sigue el pedido concreto que te hace la persona (pantalla, formulario, tabla, etc.).

4. Tu pedido concreto

En el mismo hilo, envía la TAREA (qué pantalla o componente quieres). Puedes copiar el ejemplo y editarlo.

Ver ejemplo de pedido (listado pacientes)
TAREA
Generar un panel con título "Pacientes" y un botón de acción principal "Nuevo paciente" (btn-primario btn-md). Debajo, una tabla del DS con columnas de ejemplo: Nombre, RUT, Estado; filas de muestra y estado vacío si aplica.

COMPLETA (sustituye por tu caso)
Título real, nombre del botón y columnas que necesitas: …

Más plantillas en Recursos para IA → atajos (tabla, formulario, modal). Guía + demo + snippet en Recetas por tarea.

5. Salida esperada

  • DS real: clases o componentes documentados (p. ej. btn btn-primario btn-md, panel-principal, LayoutPantalla en este repo).
  • Sin inventar: nada de utilidades visuales fuera del DS en entregables tipo HTML + CDN.
  • Cierre: una línea al final listando qué clases o componentes del DS usó la IA.
  • Textos: ejemplos coherentes con el dominio (pacientes, citas, fichas) si es pantalla de producto.

Recursos para IA y uso sin CDN

Descargas para trabajar con IAs y para integrar sin CDN.

Mínimo recomendado para IA:

  • mkclinico-ui.min.css
  • mkclinico-ai-context-lite.md
  • integracion-producto-demos-y-version.md

Con IAs, el CSS no sustituye el .md (detalle en el lite, CDN frente a contexto).

Los archivos .md indican que los demos /demo-* son referencia de composición (orden de bloques); las IAs deben copiar estructura y clases del DS, no la lógica de la guía Next.js. Misma idea para personas en Para desarrolladores → Demos como referencia de composición.

Checklist mínimo con IA (4 pasos) y CSS sin CDN
  1. Enlaza el CSS (CDN o archivo descargado arriba).
  2. Adjunta al chat como mínimo Contexto IA lite + Integración con producto. Si la tarea es más compleja, añade también el contexto completo (el lite explica CDN frente a contexto).
  3. Copia el prompt base debajo; si el contexto ya va en el hilo, el prompt diario basta.
  4. Pantallas complejas: Recetas o Quickstart.

Sin CDN: <link rel="stylesheet" href="/ruta/mkclinico-ui.min.css">

Atajos: prompts por tipo de tarea

Esquema fijo: TAREA, DEBE INCLUIR / NO HAGAS, COMPLETA. Abre el desplegable para revisar.

  • Listado con tabla

    Ver vista previa del prompt
    TAREA
    Generar una pantalla de listado en MKClinico usando el Design System.
    
    DEBE INCLUIR
    - LayoutPantalla con título visible y un botón de acción principal (btn-primario).
    - Una tabla con tabla-container y tabla del DS; columnas de ejemplo: Nombre, RUT, Estado; mostrar filas de ejemplo y estado vacío.
    - Botones secundarios con btn-secundario donde corresponda.
    
    NO HAGAS
    - Inventar clases fuera del DS ni ignorar --tabla-cols si la tabla usa grid del sistema.
    
    COMPLETA (borra la línea y escribe tu caso)
    Columnas reales y dominio (ej. pacientes, médicos): …
  • Formulario de alta

    Ver vista previa del prompt
    TAREA
    Generar un formulario de alta en MKClinico dentro de LayoutPantalla.
    
    DEBE INCLUIR
    - Campos con input-con-titulo-campo (mínimo: nombre, RUT, teléfono, correo).
    - Al menos un control de opción (checkbox, radio o switch) si encaja en el flujo.
    - Footer fijo o claro con Guardar (btn-primario) y Cancelar (btn-secundario).
    
    NO HAGAS
    - Omitir estados input-error / input-warning del DS si el flujo pide validación visible.
    
    COMPLETA (borra la línea y escribe tu caso)
    Campos obligatorios, textos de etiqueta y si hay advertencia o error de ejemplo: …
  • Modal de confirmación

    Ver vista previa del prompt
    TAREA
    Generar un modal de confirmación en MKClinico (HTML o JSX con clases del DS; ver guía Modales).
    
    DEBE INCLUIR
    - Overlay y estructura de modal de confirmación del DS.
    - Título, mensaje breve y dos botones: btn-modal-primario y btn-modal-secundario.
    - Textos en español, tono clínico/administrativo neutro.
    
    NO HAGAS
    - Mezclar con el patrón de modal informativo (con X) si aquí debe ser solo confirmación.
    
    COMPLETA (borra la línea y escribe tu caso)
    Título, texto del cuerpo y etiquetas exactas de los dos botones: …

Instalación CDN

Agregar el Design System a tu proyecto en segundos

Desarrollo (Normal)

Incluye todos los estilos sin minificar. Ideal para desarrollo y debugging.

Producción (Minificado)

Versión optimizada y comprimida. Recomendado para producción.

Recetas por tarea

Atajos para casos frecuentes: enlace al artículo de la guía, demo a pantalla completa cuando exista y un snippet mínimo listo para copiar. Complementa el Quickstart IA + persona y los prompts de Recursos para IA.

  • Pedido vago: replicar un demo

    Cuando solo dicen «copia el demo» o equivalente: la IA debe pedir qué ruta /demo-* si no está claro, y devolver composición + clases DS (no el código Next completo). Pega este bloque como TAREA o combínalo con el prompt base.

    Snippet mínimo

    Texto
    TAREA Replicar la composición de un demo MKClinico (Design System) según la guía / mkclinico-ai-context-lite.md. DEBE - Misma jerarquía de bloques y clases DS que el demo indicado abajo (solo maqueta: markup + clases documentadas). - Datos de ejemplo clínicos genéricos (pacientes, citas, etc.). - Si el destino NO es el monorepo de la guía: HTML + <link rel="stylesheet" href="https://cdnmk3.masterkey.cl/assets/css/mkclinico-ui.min.css"> al inicio. NO - Copiar hooks, estado, rutas ni lógica del código fuente Next.js de la guía. - Inventar clases que no estén en el contexto .md. INDICA EL DEMO (una ruta) Ej.: /demo-formato-2 | /demo-nuevo-formulario-herramientas | /demo-contenedor-plantillas | /demo-layout | /demo-constructor-formulario | … NOTA (funcionalidad después) Si luego piden interacción que no venía en esta TAREA: el demo sigue siendo referencia de UX/comportamiento; la implementación la escribe su proyecto en su stack. La IA debe decírselo al usuario en una frase y mantener clases DS.
  • Pantalla con shell (layout)

    Navbar lateral, barra superior y panel principal con título y botón de acción. En React, preferir el componente LayoutPantalla.

    Snippet mínimo

    TSX
    import LayoutPantalla from "@/app/components/LayoutPantalla"; <LayoutPantalla titulo="Pacientes" navItems={menuItems} activeItemId="pacientes" botonAccion={{ label: "Nuevo paciente", onClick: () => {} }} usuario={{ nombre: "Usuario", opciones: [] }} > {/* contenido del panel */} </LayoutPantalla>
  • Listado con tabla y acciones

    Tabla con columnas alineadas mediante --tabla-cols y celdas de acción (ver, editar, eliminar). La demo de layout muestra el shell; la estructura de tabla está en la guía.

    Snippet mínimo

    HTML
    <div class="tabla-container"> <div class="tabla" style="--tabla-cols: 40px 1fr 1fr 1fr 88px 88px 88px;"> <div class="tabla-header"> <div class="tabla-cell"></div> <div class="tabla-cell">Nombre</div> <div class="tabla-cell">RUT</div> <div class="tabla-cell">Estado</div> <div class="tabla-cell" style="justify-content:center">Ver</div> <div class="tabla-cell" style="justify-content:center">Editar</div> <div class="tabla-cell" style="justify-content:center">Eliminar</div> </div> <!-- tabla-row, tabla-cell… --> </div> </div>
  • Formulario con campos y estados

    Campos con etiqueta, estados de error y advertencia del DS. La demo a pantalla completa sugiere /demo-contenedor-plantillas (maqueta de ficha + lienzo). Pantallas tipo armador (paleta + rejilla): guía Layout → constructor de formulario y demo /demo-constructor-formulario (React en este repo; no confundir con solo HTML+CDN sin contexto .md).

    Snippet mínimo

    HTML
    <div class="input-con-titulo-campo"> <label class="input-con-titulo-label" for="campo-nombre">Nombre completo</label> <input id="campo-nombre" class="input-campo" type="text" placeholder="Ej. Ana Pérez" /> </div> <!-- input-error / input-warning en el input según validación -->
  • Modal de confirmación

    Diálogo sin botón de cierre en X: título, mensaje y dos acciones (btn-modal-primario / btn-modal-secundario). No hay ruta demo dedicada; el artículo incluye vista previa y código.

    Snippet mínimo

    HTML
    <div class="modal-overlay modal-overlay--open" role="dialog" aria-modal="true"> <div class="modal-confirmacion"> <h2 class="modal-titulo">¿Deseas continuar?</h2> <p class="modal-subtitulo">Esta acción no se puede deshacer.</p> <div class="modal-footer"> <button type="button" class="btn-modal-primario">No, continuar</button> <button type="button" class="btn-modal-secundario">Sí, salir</button> </div> </div> </div>
  • Lista con paginación

    Navegación entre páginas después de un listado o tabla. En la guía Next.js se documenta el componente Paginacion.

    Paginación (ancla en la guía)Sin demo en ruta aparte

    Snippet mínimo

    TSX
    import Paginacion from "@/app/components/Paginacion"; <Paginacion paginaActual={1} totalPaginas={10} onCambioPagina={(p) => {}} />

Guía rápida de uso

Haz esto en orden y ya puedes construir con el DS.

¿Primera vez pidiendo una pantalla a una IA? Sigue el flujo guiado en Quickstart IA + persona (~5 minutos).

1. Carga el CSS

2. Copia las clases y úsalas

Las clases suelen ir en conjunto (base, variante y tamaño). Agrega el bloque a tu HTML; ejemplo de botón primario:

Ver todos los estilos de botón

3. Navega y reutiliza

Usa el menú lateral para navegar por todas las categorías de componentes. Cada componente incluye:

  • Vista previa en vivo del componente
  • Clases CSS listas para copiar
  • Variantes de tamaño y estado

Para Desarrolladores

Información técnica y mejores prácticas

Sin conocimientos de CSS necesarios

Este Design System está diseñado para que cualquier desarrollador pueda construir interfaces consistentes sin necesidad de escribir CSS personalizado.

Personalización con Variables CSS

Si necesitas personalizar los colores o estilos, puedes sobrescribir las variables CSS en tu propio stylesheet:

:root {
  --color-primario: #118b95;
  --color-texto: #565656;
  /* ... más variables */
}

Estructura de clases

Las clases siguen una nomenclatura consistente (ejemplo botones: siempre la base btn + variante + tamaño):

.btn→ Base obligatoria en botones del DS
.btn-primario→ Variante (color/intención)
.btn-md→ Modificador de tamaño
.activo→ Modificador de estado (en otros patrones)

Compatibilidad

Compatible con todos los navegadores modernos:

Chrome 90+
Firefox 88+
Safari 14+
Edge 90+
Cargando sección…
Cargando sección…
Cargando sección…
Cargando sección…
Cargando sección…
Cargando sección…
Cargando sección…
Cargando sección…
Cargando sección…