Las tres apps beben de --colors-brand-* en packages/ui. Retintar esa escala
una vez viste las tres — la misma jugada del postmark/_layout con los 16 correos.
El 600 (botones, links, focus) cae exacto en el petroleo #13678A del manual; el 950 es la
noche #012030; el 100 es el petroleo-soft #D9EAF2 que ya usan los correos.
25 → 950, interpolada en el mismo matiz. La menta #45C4B0 y el verde #9AEBA3 no entran en la escala: son acentos con rol (éxito, highlights, badges "activo") — igual que en los correos y los PDFs. Cada app conserva su temperamento: el admin trabaja en noche, el consultorio en blanco clínico, el client puede respirar la marca completa.
El manual permite degradados solo entre pares contiguos de la paleta — y en producto la regla se aprieta más: el degradado es una firma, no un relleno. Estos son TODOS los sitios donde puede aparecer; cualquier otro uso es un misuse.
Los cuatro sitios sagrados
- La cruz del wordmark — viene del vector, no se toca.
- El avatar del usuario — petroleo→menta, el toque humano.
- Una hairline de 3px sobre el elemento protagonista de cada pantalla (un KPI, la cita en curso, el récipe más reciente). Una por pantalla, nunca dos.
- El hero de marketing (solo apps/client): noche con glow menta radial — la única superficie grande permitida.
Los misuses
- Fondos degradados en pantallas internas o de trabajo.
- Degradado bajo texto largo o dentro de tablas.
- Botones con degradado — la acción es petroleo sólido.
- Dos hairlines en la misma pantalla: si todo es protagonista, nada lo es.
El admin es la única pantalla de Amedi donde alguien pasa ocho horas seguidas. No se diseña para impresionar: se diseña para que la vista aguante toda la jornada. Por eso el sidebar se va al noche —ancla la pantalla y deja que el contenido respire en hueso— y absolutamente todo el dato se lee en Inter, con Parkinsans reservado para títulos y cifras. El restyle aquí es de tokens, no de estructura: el equipo que ya sabe dónde está cada cosa la va a seguir encontrando en el mismo sitio.
Todo el color de esta pantalla trabaja en dos registros: el noche del sidebar, que fija el marco, y el hueso del área de trabajo, que deja que las tarjetas blancas destaquen sin sombra. El degradado aparece exactamente dos veces —el avatar del topbar y la hairline de 3px sobre «citas hoy», el KPI protagonista— y esa escasez es la que lo convierte en señal: donde hay degradado, hay lo que importa. Las cuatro cifras van en Parkinsans 800 para que se lean de reojo desde lejos; el resto de la tabla, incluidos los pills de estado, en Inter a 12,5px porque son datos que se comparan, no titulares.
En la ficha el protagonista es la persona, así que el único degradado es su avatar: no hace falta una hairline compitiendo con él. Los tabs se subrayan en petróleo de 2px y se escriben tal cual se leen —Resumen, Citas, Documentos, Reseñas—, sin mayúsculas forzadas; los labels de cada campo van en minúscula y en muted para que el ojo caiga directo en el valor.
Qué cambia
Los tokens, y poco más. El sidebar pasa a noche con el ítem activo en petróleo y un rail de menta de 3px inset. Los primarios dejan de ser genéricos y adoptan petróleo para acción y menta para confirmación. Los avatares y las iniciales cambian su relleno plano por el degradado petróleo→menta. Los estados de cita reciben su paleta suave propia —menta, verde y ámbar— en vez de badges de librería. Y aparece la hairline de degradado: una sola por pantalla, sobre el elemento protagonista.
Qué no cambia
El layout, entero. El sidebar sigue midiendo 220px con los mismos grupos y los mismos ítems, la topbar sigue con breadcrumb a la izquierda y avatar a la derecha, la tabla mantiene sus columnas y su orden, y la ficha conserva su hero, sus tabs y su bloque de campos. El spacing, los radios y la jerarquía tipográfica se respetan tal cual están hoy. Nada de esto es breaking: quien trabaja en el admin todos los días no tiene que reaprender dónde hacer clic.
El admin se administra una vez al día; el consultorio se habita. Es el escritorio del doctor y de su secretaria: ocho horas de pacientes reales, uno detrás de otro. Por eso aquí la marca baja el tono y sube la calma clínica — mucho blanco, el noche como tinta (nunca como fondo), el petroleo reservado para la acción y el menta solo cuando algo está pasando ahora. A diferencia del admin, el sidebar del consultorio es luminoso: quien vive en una pantalla no necesita un panel oscuro mirándolo todo el día.
El único degradado de la pantalla es la hairline de 3px sobre la cita en curso — petroleo → menta → verde, tres milímetros de marca que dicen "esto está pasando ahora" sin pintar la tarjeta entera. Todo lo demás es jerarquía sobria: la hora en Inter tabular para que la columna cuadre, el nombre del paciente en semibold sobre noche, el motivo en muted, y un solo botón petroleo en toda la vista. El sidebar cambia de rótulos gritados a minúscula, y "Mis Pacientes" pasa a Mis pacientes.
La secretaria ordena el día con las cinco columnas que ya existen en el código — por_confirmar → confirmada → en_sala → en_consulta → cerradas — y el paciente cruza la pantalla de izquierda a derecha. Lo que cambia es de dónde sale el color: hoy los puntos de columna son ámbar, azul y violeta de Tailwind; en la propuesta cada estado toma su tono de la paleta y el peso del color sube con la urgencia (papel → petroleo-soft → menta-soft → petroleo pleno → gris cerrado). Aquí no hay degradado: en un tablero no hay una sola cita protagonista. El color es estado, nunca decoración.
El tinte, el tono y el peso del color
El esmeralda sale de botones, chips y estados y entra petroleo; el sidebar claro gana el activo en petroleo-soft con rail petroleo; los cinco puntos del tablero dejan el ámbar/azul/violeta de Tailwind y toman la paleta. Los rótulos bajan de mayúsculas trackeadas a minúscula, "Mis Pacientes" pasa a Mis pacientes, y aparece una regla nueva: un solo degradado por pantalla — la hairline de la cita en curso, y nada más.
La mecánica del día
Ni una ruta, ni un estado, ni un flujo: las columnas siguen siendo las de
use-today-board.ts, las acciones siguen siendo Confirmar,
Marcar llegó, Pasar a consulta y No-show, y el realtime sigue moviendo el
tablero de las dos secretarias a la vez. Es un retinte sobre tokens: la densidad, la agenda y los
hábitos de quien ya trabaja aquí quedan intactos.
El client es la cara pública: la misma app sostiene la landing de marketing, el buscador de profesionales y la carpeta médica del paciente. Es la única de las tres donde la marca puede respirar más — y por eso es también la única donde un fondo noche con glow menta está permitido, y solo en el hero. Del scroll hacia abajo, y en cada pantalla interna, manda el mismo blanco clínico del consultorio: la marca recibe, el producto trabaja.
El glow es una sola capa radial anclada arriba a la derecha, al 22% de opacidad: se lee como luz, no como degradado de plantilla. Puede vivir aquí porque el hero no es una pantalla de trabajo — nadie lee una tabla ni llena un formulario encima de él; dura un scroll y su trabajo es que la marca se reconozca. En cambio la búsqueda, la reserva y la carpeta se usan con prisa, muchas veces desde el teléfono y en una sala de espera: ahí el fondo vuelve a blanco, el texto a --ink-soft y la noche queda reducida a los titulares. Una excepción documentada, con frontera clara — donde termina el hero, termina el permiso.
Pantalla interna: blanco, hueso y una sola acción en petroleo por bloque. Los cupos usan el petroleo-soft #D9EAF2 como estado disponible y el petroleo sólido como elegido — el mismo par que ya viven los correos, así que la hora seleccionada se lee sin leyenda. Los degradados están racionados a dos: el anillo del avatar (sagrado, marca al humano) y una sola hairline de 3px sobre el panel de cupos, que es el protagonista de esta pantalla. La estrella del rating usa el verde de acento con filo menta, no el amarillo genérico de los marketplaces.
La carpeta es un documento, no un tablero: fondo blanco, filas del mismo peso y la fecha en tnum para que la columna cuadre al escanearla. Lo único que rompe la igualdad es la hairline de 3px sobre el récipe más reciente — es lo que el paciente viene a buscar cuando abre la app en la farmacia. El isotipo aparece en --line, tamaño 26: firma de que el documento es de Amedi, sin competir con el contenido. Un degradado en toda la pantalla, y está donde importa.
Lo visible
- El hero pasa del blanco de framework a noche con glow menta — la única superficie grande de degradado del producto entero.
- La insignia de perfil verificado deja el azul de framework y pasa a menta-soft con texto noche; los chips de seguro dejan el verde de framework por el mismo par.
- Botones, precios y links caen en petroleo #13678A; los cupos disponibles en petroleo-soft #D9EAF2.
- Los rótulos gritados de la tarjeta del hero (agenda, en segundos) bajan a minúscula.
- La estrella del rating cambia el amarillo de marketplace por el verde de acento con filo menta.
- Títulos en Parkinsans, datos y párrafos en Inter con cifras tabulares.
Lo estructural
- Las rutas y los i18n keys: los strings son los mismos que ya están en locales/es.json.
- El buscador sigue siendo el mismo componente y la misma interacción — cambia el color del botón, no el flujo.
- El markup de las cards de resultado, sus datos y sus estados de carga.
- La reserva, la carpeta y el chat: cero lógica tocada, cero migraciones.
- El contraste: texto blanco puro sobre noche, menta reservada a acentos y nunca como color de texto largo.
El paciente agenda desde la cama y la secretaria revisa desde el pasillo. Las tres apps ya tienen sus
navbars móviles en packages/ui — el restyle los viste con la misma ley: la sidebar
noche del admin se vuelve tabs noche abajo, el consultorio conserva su claridad clínica, y el
client lleva la marca al bolsillo. Mismos tokens, cero markup nuevo.
Inicio
Buscar
Citas
Carpeta
Agenda
Pacientes
Recordatorios
Panel
Citas
Pacientes
Más
Las reglas móviles: los breakpoints existentes se respetan (nada breaking — los navbars móviles
ya existen en packages/ui, solo cambian de piel); el tab activo se marca con el punto
menta (el rail de la sidebar traducido al pulgar); los CTA pasan a ancho completo con mínimo 44px
de alto; y la hairline del protagonista viaja igual — en el teléfono señala la próxima cita, no un KPI.
El board de la secretaria es la excepción honesta: vive en desktop/tablet; en el teléfono
colapsa a una lista con los mismos chips de estado.
| Fase | Qué se toca | Qué re-viste |
|---|---|---|
| 1 | color-variables.css | La escala brand 25→950 al petroleo + secondary a menta-deep. Un archivo — las tres apps cambian de piel a la vez. |
| 1b | Barrido de 195 archivos | Las clases Tailwind crudas (emerald/green/teal) con el triage marca/éxito de la auditoría (08) — consultorio primero (132), luego client (43), ui (16) y admin (4). |
| 2 | globals.css | Sidebar del admin a noche (rail menta), sidebar claro del consultorio a petroleo-soft, dark mode tintado a noche, sombras y focus ring menta-deep. |
| 3 | layout.tsx × 3 apps | Inter como sans + Parkinsans como display + mono tnum en admin, consultorio y client. Borrar los 17 @font-face de Lemon Milk. |
| 4 | Las hairlines + el hero | Los toques puntualísimos de la doctrina: el KPI protagonista del admin, la cita en curso del consultorio, el récipe reciente de la carpeta, el hero de amedisalud.com. |
| 5 | Barrido de voz | uppercase restantes y Title Case en las tres apps — greps quirúrgicos, cero lógica. |
Cada fase termina con QA visual sobre las pantallas de este documento (los mockups son el contrato pixel-perfect), typecheck de las tres apps, y el test de marca del repo — que ya sabe fallar si el esmeralda vuelve a aparecer.
Auditoría pura y dura antes de tocar código: la promesa de la fase 1 —"un archivo re-viste todo"—
tiene un asterisco medido. 195 archivos usan clases Tailwind crudas
(text-emerald-700 ×111, bg-emerald-50 ×71, text-green-600 ×40…)
que no beben de los tokens: tras el retinte quedarían en esmeralda, chocando contra el petroleo
nuevo. El epicentro es el consultorio (132 archivos); el client tiene 43, packages/ui 16 y el
admin apenas 4 — el panel es el más disciplinado, la app del doctor la que más revisión pide.
| # | Riesgo | Severidad | Dónde · mitigación |
|---|---|---|---|
| R1 | Clases Tailwind crudas que no retintan | alta | 195 archivos (consultorio 132 · client 43 · ui 16 · admin 4). Mitigación: barrido componente a componente con el triage de R2 — codemod asistido + revisión visual por archivo, por app, en ese orden de riesgo. |
| R2 | El verde tiene dos intenciones mezcladas | alta | Hoy el mismo esmeralda es marca (CTAs, activos, links) y éxito (confirmaciones, "verificado", pagado). La regla de triage por uso: acción/activo/link → petroleo (tokens brand) · confirmación/estado → --state-success (que sigue siendo verde). Decidir mal invierte la semántica de media app. |
| R3 | Hex verdes hardcodeados | media | ~30 usos en tsx: #059669 ×10, #10b981 ×6, #3cbf88 ×3, #3bc05a ×4… Greps exactos ya listos; se cambian por tokens, nunca por otro hex. |
| R4 | Focus rings crudos | media | 17 usos (ring-emerald-500 ×7…). Van al token --ring (menta-deep). Riesgo de accesibilidad si se pierden en el barrido: verificar foco visible en cada componente tocado. |
| R5 | Charts con paleta propia | media | payment-income-chart-graph (consultorio) hardcodea #059669; el sparkline del admin ya usa tokens (bien). Mitigación: paleta de dataviz tokenizada (petroleo · menta · verde · ámbar) antes del retinte. |
| R6 | Métrica tipográfica: Parkinsans → Inter en cuerpo | media | Inter es más angosta y más legible — pero 248 usos de truncate, 25 min-width fijos y 36 archivos con overflow-x asumen las métricas actuales. Mitigación: QA responsive de tablas, chips y breadcrumbs en las 7+3 pantallas contrato tras el cambio de fuente. |
| R7 | La paleta accent de marketing convive | baja | 67 usos de brand-mint/deep/green/ocean en el client — ya son la marca real. Mitigación: consolidar nombres sobre la escala nueva (que brand-deep = 950, brand-mint = menta) para que no haya dos verdades. |
| R8 | Dark mode neutro del admin | baja | Tokens oklch grises de shadcn; se tintará a noche en fase 2. Riesgo bajo porque solo el admin lo expone hoy. |
Los que se revisan a mano, sí o sí
- consultorio/setup/* — el onboarding del doctor: 8 editores con 7–10 usos crudos cada uno (schedule, clinic, photo, consultation-types, hub sticky bar).
- consultorio/auth/register/specialty-picker — 10 usos; primera pantalla que ve un doctor nuevo.
- client/preguntas/qa-document — 12 usos, el más cargado del client.
- consultorio/chat/appointment-divider y el board de la secretaria — estados de cita donde el triage marca/éxito es delicado.
- payments/payment-income-chart* — el chart hardcodeado.
- Los 3 navbars móviles de packages/ui — la piel nueva del capítulo 06.
- Login del admin y del consultorio — la primera impresión del retinte.
Siete preguntas, cada archivo tocado
- 1 · ¿Este verde es marca o éxito? (R2 — la decisión que manda)
- 2 · ¿El texto sobre el color nuevo pasa AA? (petroleo-soft admite noche, no muted)
- 3 · ¿El foco visible sobrevivió? (tab por el componente)
- 4 · ¿Truncados y anchos fijos aguantan Inter? (tablas, chips, breadcrumbs)
- 5 · ¿Se ve bien a 390px? (y el touch target ≥44px)
- 6 · ¿Apareció un degradado fuera de doctrina? (cuatro sitios, ninguno más)
- 7 · ¿El dark mode (si lo tiene) quedó noche, no gris?
La fase 1 sigue siendo el mayor efecto por el menor cambio, pero ya no es suficiente sola: entra la fase 1b — el barrido de los 195 archivos con el triage marca/éxito, por app y en orden de riesgo (consultorio → client → ui → admin). El test de marca del repo se extiende a las apps: clases y hex esmeralda prohibidos en tsx, para que lo limpiado no vuelva a ensuciarse.
Tres apps, siete pantallas, una sola marca.
El paciente agenda en la misma noche que firma el doctor y que administra el equipo. La escala es una, los degradados son cuatro sitios contados, y todo lo demás es tipografía haciendo su papel: Parkinsans manda, Inter lee. Del manual al correo, del correo al récipe, del récipe a la pantalla.
Ninguno funcional. Tokens + fuentes; cero markup, cero lógica.
La fase 1. Un archivo retinta las tres apps de una vez.
La doctrina. Cuatro sitios para el degradado — puntualísimos.
Estas siete pantallas. El QA se hace contra este documento.