Saltar al contenido

Componentes

Una receta para lo encendido.

Cada pieza, viva y con su código para copiar. Los datos de los ejemplos son inventados.

Piloto · Clínica Dental Norte · Ejemplo

Día 9 de 14 · miércoles 14 de octubre

Botones

Un botón azul por pantalla.

Pasa el mouse o usa Tab sobre el primero: los estados son de verdad.

PrincipalPíldora azul, texto blanco Bold. Uno por pantalla.
Al pasar el mouseSe oscurece 8 % en 150 ms; no es un color nuevo.
Foco del tecladoAnillo azul de 2 px, a 2 px del botón.
DeshabilitadoFondo Línea, texto Apagado.
SecundarioSin caja: texto en tinta Bold y una flecha.
De formularioPíldora blanca con borde Apagado. Solo en formularios.
  • Uno por pantalla, porque el botón es el elemento encendido: con dos, ya no se sabe cuál mirar.
  • Sin ícono ni sombra, porque la píldora azul ya dice qué es.
Ver más reglas, medidas y código

Más reglas

  • Verbo y objeto, sin punto, y mayúscula solo al inicio: «Pedir piloto gratis».
  • Nunca dibujado en un anuncio de Meta o Google, porque lo pone la plataforma.

Medidas

Alto
52 px; el mínimo tocable es 44
Relleno lateral
24 px
Texto
19 px Bold, −0,01 em
Radio
píldora
Contraste
blanco sobre azul da 4,02:1; por eso el texto va en Bold desde 19 px
Al pasar el mouse
filter: brightness(.92) en 150 ms
Foco
anillo de 2 px azul, a 2 px

HTML

<button class="cl-btn" type="button">Pedir piloto gratis</button>
<button class="cl-btn cl-btn-sec" type="button">Ver cómo funciona <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M5 12h14"/><path d="m12 5 7 7-7 7"/></svg></button>
<button class="cl-btn cl-btn-form" type="button">Volver</button>

CSS

.cl-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--s-8);
  min-height: var(--boton-alto);
  padding: 0 var(--s-24);
  border: 0;
  border-radius: var(--r-pill);
  background: var(--acento);
  color: var(--sobre-acento);
  font: var(--bold) var(--t-19)/1 var(--fuente);
  letter-spacing: var(--trk-19);
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: filter var(--dur-micro) var(--mov-micro);
}
.cl-btn:hover,
.cl-btn.is-hover {
  filter: brightness(.92);
}
.cl-btn:focus-visible,
.cl-btn.is-focus {
  outline: var(--foco-ancho) solid var(--acento);
  outline-offset: 2px;
}
.cl-btn:disabled,
.cl-btn[aria-disabled="true"] {
  background: var(--borde);
  color: var(--texto-3);
  filter: none;
  cursor: not-allowed;
}
/* secundario: sin caja, texto en tinta y una flecha SVG */
.cl-btn-sec {
  background: none;
  color: var(--texto);
  padding: 0;
  min-height: var(--tocable);
}
.cl-btn-sec:disabled {
  background: none;
}
.cl-btn-sec svg {
  width: var(--icono-tam);
  height: var(--icono-tam);
  flex: none;
  fill: none;
  stroke: currentColor;
  stroke-width: var(--icono-trazo);
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: transform var(--dur-micro) var(--mov-micro);
}
.cl-btn-sec:hover svg {
  transform: translateX(3px);
}
/* de formulario (volver, cancelar): píldora blanca con borde Apagado */
.cl-btn-form {
  background: var(--elevado);
  color: var(--texto);
  border: var(--borde-ancho) solid var(--borde-control);
}
.cl-btn-form:disabled {
  border-color: var(--borde);
}

Campos

El error dice qué corregir.

Escribe en los tres primeros: son campos de verdad.

NormalBorde de 1 px Apagado, radio 8, etiqueta arriba.
FocoAnillo azul de 2 px.

Revisa tu número: en Perú son 9 dígitos y empieza en 9.

ErrorRojo, con una frase que dice qué corregir.
DeshabilitadoFondo Línea, texto Apagado.
  • El error dice qué hacer, no solo que algo falló: «Revisa tu número: en Perú son 9 dígitos y empieza en 9.»
  • El rojo existe solo aquí, en errores de formulario de la web; en las piezas no hay rojo.
Ver más reglas, medidas y código

Más reglas

  • El borde es Apagado, porque da 3,18:1 y un campo se tiene que ver para poder tocarse.

Medidas

Alto
52 px (mínimo tocable 44)
Radio
8 px
Etiqueta
15 px Regular, arriba
Foco
borde y anillo azul de 2 px

HTML

<div class="cl-campo">
  <label for="c-negocio">Nombre del negocio</label>
  <input id="c-negocio" type="text" value="Clínica Dental Norte" autocomplete="off">
</div>
<div class="cl-campo is-error">
  <label for="c-wa2">WhatsApp de contacto</label>
  <input id="c-wa2" type="tel" value="98765" aria-invalid="true" aria-describedby="c-err" autocomplete="off">
  <p class="cl-campo-error" id="c-err">Revisa tu número: en Perú son 9 dígitos y empieza en 9.</p>
</div>

CSS

.cl-campo {
  display: flex;
  flex-direction: column;
  gap: var(--s-8);
  min-width: 0;
}
.cl-campo label {
  font-size: var(--t-15);
  color: var(--texto);
}
.cl-campo input {
  min-height: var(--boton-alto);
  padding: 0 var(--s-16);
  border: var(--borde-ancho) solid var(--borde-control);
  border-radius: var(--r-campo);
  background: var(--elevado);
  color: var(--texto);
  font: var(--regular) var(--t-17)/1.2 var(--fuente);
  transition: border-color var(--dur-micro) var(--mov-micro);
}
.cl-campo input:focus,
.cl-campo input.is-focus {
  outline: var(--borde-ancho) solid var(--acento);
  border-color: var(--acento);
}
.cl-campo input::placeholder {
  color: var(--texto-2);
}
.cl-campo input:disabled {
  background: var(--borde);
  border-color: var(--borde);
  color: var(--texto-3);
}
.cl-campo.is-error input {
  border-color: var(--error);
  outline: var(--borde-ancho) solid var(--error);
}
.cl-campo-error {
  margin: 0;
  font-size: var(--t-15);
  color: var(--error);
}

Chips

Lo encendido se hace igual.

WhatsAppChip28 px de alto, borde Línea, texto Pizarra.
Día 14Chip de datoUn número o un día.
EjemploChip «Ejemplo»En todo dato inventado.
ActivoChip encendidoLa receta: fondo suave, borde azul.
Asignado a AnaVendedorTodo chat tiene nombre.
Asignado a AnaVendedor encendidoSolo si es lo que explica la pieza.

Prueba: se enciende uno a la vez

  • Una sola receta para lo encendido: fondo Encendido suave, borde azul de 1,5 px y texto en tinta. Vale para el chip, la tarjeta y la burbuja del seguimiento.
  • El nombre del vendedor va en Bold, porque es lo que el dueño quiere ver: quién tiene el chat.
Ver medidas y código

HTML

<span class="cl-chip">WhatsApp</span>
<span class="cl-chip on">Activo</span>
<span class="cl-chip">Asignado a <b>Ana</b></span>

CSS

.cl-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 28px;
  padding: 0 var(--s-12);
  border: var(--borde-ancho) solid var(--borde);
  border-radius: var(--r-pill);
  background: var(--elevado);
  color: var(--texto-2);
  font: var(--regular) var(--t-15)/1 var(--fuente);
  white-space: nowrap;
}
.cl-chip b {
  font-weight: var(--bold);
  color: var(--texto);
}
/* lo encendido tiene una sola receta: fondo suave, borde azul de 1,5 px, texto en tinta */
.cl-chip.on,
.cl-chip[aria-pressed="true"] {
  background: var(--acento-suave);
  border: var(--borde-encendido) solid var(--acento);
  color: var(--texto);
}
button.cl-chip {
  cursor: pointer;
  transition: background var(--dur-micro) var(--mov-micro),border-color var(--dur-micro) var(--mov-micro);
}
button.cl-chip:hover {
  border-color: var(--texto-2);
}
button.cl-chip[aria-pressed="true"]:hover {
  border-color: var(--acento);
}
button.cl-chip:focus-visible {
  outline: var(--foco-ancho) solid var(--acento);
  outline-offset: 2px;
}

Tarjetas

Cuatro tarjetas, sin sombra.

Cambia a oscuro: la de tinta se invierte.

Papel

Cada chat, con su vendedor

Entra asignado a Ana, Diego o Lucía.

Blanca con borde

Seguimiento a su hora

Sale en horario de atención.

Encendida · una por pieza

Tú apruebas

Nada sale sin tu aprobación.

Persona que aprueba

Carmen aprueba

La persona que decide.

  • Sin sombra y sin ícono grande arriba, porque el ícono grande es la huella del diseño hecho en serie.
  • Una encendida por pieza, porque lo encendido es lo que hay que mirar.
Ver más reglas, medidas y código

Más reglas

  • Relleno de tinta solo para la persona que aprueba: ese bloque oscuro significa siempre «tú apruebas».

Medidas

Radio
16 px
Relleno
24 px
Entre tarjetas
24 px en la web, 16 en una lámina
Borde
1 px Línea; la encendida, 1,5 px azul

HTML

<article class="cl-card">
  <p class="cl-eyebrow">Papel</p>
  <h3>Cada chat, con su vendedor</h3>
  <p>Entra asignado a Ana, Diego o Lucía.</p>
</article>
<article class="cl-card cl-card--ahora">
  <p class="cl-eyebrow">Encendida · una por pieza</p>
  <h3>Tú apruebas</h3>
  <p>Nada sale sin tu aprobación.</p>
</article>

CSS

.cl-card {
  display: flex;
  flex-direction: column;
  gap: var(--s-8);
  padding: var(--s-24);
  border-radius: var(--r-tarjeta);
  background: var(--superficie);
  color: var(--texto);
}
.cl-card>h3 {
  margin: 0;
  font-size: var(--t-24);
  letter-spacing: var(--trk-24);
  line-height: var(--lh-titulo-24);
  font-weight: var(--bold);
  color: inherit;
}
.cl-card>p {
  margin: 0;
  font-size: var(--t-15);
  line-height: var(--lh-cuerpo);
  color: var(--texto-2);
}
p.cl-eyebrow,
.cl-eyebrow {
  margin: 0 0 var(--s-4);
  font-size: var(--t-12);
  font-weight: var(--bold);
  letter-spacing: var(--trk-eyebrow);
  line-height: var(--lh-eyebrow);
  text-transform: uppercase;
  color: var(--texto-2);
}
.cl-card--linea {
  background: var(--fondo);
  border: var(--borde-ancho) solid var(--borde);
}
.cl-card--ahora {
  background: var(--acento-suave);
  border: var(--borde-encendido) solid var(--acento);
}
.cl-card--tu {
  background: var(--control-hecho);
  color: var(--fondo);
}
.cl-card--tu .cl-eyebrow,
.cl-card--tu>p {
  color: inherit;
}
.cl-card--tu>p {
  opacity: .8;
}

Interruptor

Sube el botón, luego el color.

Tócalos y míralos moverse: el botón sube primero y el color llega después.

ApagadoBotón abajo. Lo que espera.
HechoTinta, botón arriba. Lo que ya quedó.
AhoraAzul, botón arriba. Uno por pieza.
El símbolo: dos interruptores, uno apagado y uno encendidoEl símbolo en negativo
Par · el símboloSolo como logo.

Tócalos

Seguimiento automáticoEstá apagado. Tócalo.
Piloto de 14 díasEstá apagado. Este sí se enciende en azul.
  • Vertical y calado, porque el botón es un hueco: no tiene luz propia, deja ver lo que hay detrás.
  • Un «ahora» por pieza, porque el azul es lo único que hay que mirar. El resto, en tinta (hecho) o gris (apagado).
Ver tamaños, más reglas, medidas y código

Los cinco tamaños

12 pxMínimo
16 pxHilera web
24 pxWeb y lámina
40 pxCharla
56 pxPost e historia

Más reglas

  • Siempre sobre Blanco, porque sobre Papel el hueco queda en 2,96:1 y casi no se ve.
  • Nunca para calificar a una persona: «Ana · apagada» no existe.

Medidas

Forma
vertical, 1 : 3,076; el botón mide 0,911 del ancho
Recorrido del botón
2,076 veces el ancho
Aire entre botón y borde
0,045 del ancho
Animación
150 ms el botón y, después, 150 ms el color (curva micro)

HTML

<span class="cl-sw" data-estado="apagado" role="img" aria-label="Apagado"></span>
<span class="cl-sw" data-estado="hecho" role="img" aria-label="Hecho"></span>
<span class="cl-sw" data-estado="ahora" role="img" aria-label="Ahora"></span>

CSS

.cl-sw {
  --w: var(--sw-web);
  position: relative;
  display: inline-block;
  flex: none;
  width: var(--w);
  height: calc(var(--w)*var(--sw-alto));
  padding: 0;
  border: 0;
  border-radius: var(--r-pill);
  background: var(--control-apagado);
  transition: background var(--dur-micro) var(--mov-micro) var(--dur-micro);
}
.cl-sw::after {
  content: "";
  position: absolute;
  left: calc(var(--w)*var(--sw-margen));
  top: calc(var(--w)*var(--sw-margen));
  width: calc(var(--w)*var(--sw-boton));
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--hueco,var(--fondo));
  transform: translateY(calc(var(--w)*var(--sw-recorrido)));
  transition: transform var(--dur-micro) var(--mov-micro);
}
.cl-sw[data-estado="hecho"] {
  background: var(--control-hecho);
}
.cl-sw[data-estado="ahora"] {
  background: var(--acento);
}
.cl-sw[data-estado="hecho"]::after,
.cl-sw[data-estado="ahora"]::after {
  transform: none;
}
.cl-sw[role="switch"] {
  cursor: pointer;
}
.cl-sw[role="switch"]:focus-visible {
  outline: var(--foco-ancho) solid var(--acento);
  outline-offset: 3px;
}
/* el botón sube primero; el color llega cuando el botón ya está arriba */
.cl-sw-fila {
  display: flex;
  align-items: center;
  gap: var(--s-16);
  font-size: var(--t-17);
  color: var(--texto);
}
.cl-punto {
  display: inline-block;
  flex: none;
  width: var(--s-8);
  height: var(--s-8);
  border-radius: 50%;
  background: var(--acento);
}
.cl-check {
  width: var(--icono-tam);
  height: var(--icono-tam);
  flex: none;
  fill: none;
  stroke: var(--texto);
  stroke-width: var(--icono-trazo);
  stroke-linecap: round;
  stroke-linejoin: round;
}

Hilera de 14 días

Catorce días, un solo azul.

Mueve el día y mira cómo los anteriores quedan hechos.

Día 9 de 14 · miércoles 14 de octubre

  • Dos filas de 7, separadas por un interruptor de alto: se lee como dos semanas.
  • El día de hoy es el único azul; los anteriores, en tinta, y los que faltan, apagados.
Ver otras configuraciones, medidas y código

Otras dos configuraciones

Paginación del carruselSin azul: es navegación.
Punto azul y checkLo de ahora · lo hecho. Nunca doble.

Más reglas

  • Nunca junto a una línea de tiempo: la línea explica qué pasa cada día; la hilera dice en qué día vamos.

Medidas

Separación
0,374 veces el ancho entre interruptores; 1 entre filas
Tamaño en la web
16 px de ancho (fila de 7: 148 px)
Entrada
cada día llega 70 ms después del anterior; el azul, al final

HTML

<ol class="cl-hilera" role="img" aria-label="Día 9 de 14">
  <li>
    <span class="cl-sw" data-estado="hecho"></span>
  </li>
  <li>
    <span class="cl-sw" data-estado="hecho"></span>
  </li>
  <li>
    <span class="cl-sw" data-estado="hecho"></span>
  </li>
  <li>
    <span class="cl-sw" data-estado="hecho"></span>
  </li>
  <li>
    <span class="cl-sw" data-estado="hecho"></span>
  </li>
  <li>
    <span class="cl-sw" data-estado="hecho"></span>
  </li>
  <li>
    <span class="cl-sw" data-estado="hecho"></span>
  </li>
  <li>
    <span class="cl-sw" data-estado="hecho"></span>
  </li>
  <li>
    <span class="cl-sw" data-estado="ahora"></span>
  </li>
  <li>
    <span class="cl-sw" data-estado="apagado"></span>
  </li>
  <li>
    <span class="cl-sw" data-estado="apagado"></span>
  </li>
  <li>
    <span class="cl-sw" data-estado="apagado"></span>
  </li>
  <li>
    <span class="cl-sw" data-estado="apagado"></span>
  </li>
  <li>
    <span class="cl-sw" data-estado="apagado"></span>
  </li>
</ol>

CSS

.cl-hilera {
  --wh: var(--sw-web-hilera);
  display: grid;
  grid-template-columns: repeat(7,var(--wh));
  column-gap: calc(var(--wh)*var(--sw-separacion));
  row-gap: calc(var(--wh)*var(--sw-filas));
  width: max-content;
  max-width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}
.cl-hilera .cl-sw {
  --w: var(--wh);
  display: block;
}
.cl-dia {
  font-size: var(--t-15);
  color: var(--texto-2);
}
.cl-dia b {
  color: var(--texto);
}

Teléfono

Un chat, no una copia de WhatsApp.

Claro · la hora firma: 7:05

Fuera de horario · 10:47; la pantalla sigue clara

Aprobado por ti · el seguimiento se enciende

  • Solo la burbuja del seguimiento se enciende, porque todas las propias en azul parecen iMessage y gastan el único acento.
  • La pantalla es Papel, siempre, también en una pieza oscura: ahí el teléfono es lo más luminoso y es lo que se mira.
Ver cómo entra, más reglas, medidas y código

Cómo entra el chat aprobado

  1. El mensaje de Rosa entra: fundido y 8 px hacia arriba, 300 ms.
  2. Enseguida, el chip con el nombre de su vendedor.
  3. La respuesta de Ana.
  4. Entra la burbuja del seguimiento y, al final, se enciende en 150 ms: el azul llega último.

Más reglas

  • Todo chat tiene nombre y toda escena, hora: una pieza con chats sin nombre se devuelve.
  • Nunca un seguimiento saliendo de noche: el seguimiento sale en horario de atención.

Medidas

Forma
genérico, de frente y sin isla; la pantalla siempre es clara
Construcción
ancho W, alto 2 W; radio exterior 0,16 W; bisel 0,04 W; radio de pantalla 0,12 W
Tamaños
web W 320 (256 en celular; aquí se muestra a 280) · lámina W 256 · post e historia W 600
Texto
nunca menos de 12 px en la web y la lámina, ni de 30 px en el lienzo
Marco
tinta; en oscuro, el gris de la tarjeta

HTML

<div class="cl-tel" role="img" aria-label="Teléfono con un chat de ejemplo">
  <div class="cl-tel-pantalla" data-theme="light">
    <div class="cl-tel-estado">
      <span>7:05</span>
      <i class="cl-tel-bateria"></i>
    </div>
    <div class="cl-tel-cab">
      <span class="cl-tel-av">R</span>
      <div>
        <b>Rosa</b>
        <span>Ejemplo</span>
      </div>
    </div>
    <div class="cl-tel-cuerpo">
      <span class="cl-tel-dia">Lunes 5 de octubre</span>
      <div class="cl-burbuja"><b>Rosa</b>Hola, ¿atienden mañana?<small>6:58 p. m.</small></div>
      <span class="cl-chip">Asignado a <b>Ana</b></span>
      <div class="cl-burbuja cl-burbuja--yo"><b>Ana</b>Sí, mañana desde las 9:00 a. m.<small>7:01 p. m. <svg class="cl-check" viewBox="0 0 24 24" aria-hidden="true"><path d="M20 6 9 17l-5-5"/></svg></small></div>
    </div>
  </div>
</div>

CSS

.cl-tel {
  --W: 320px;
  --rb: calc(var(--W)*.04);
  width: var(--W);
  height: calc(var(--W)*2);
  flex: none;
  padding: calc(var(--W)*.04);
  border-radius: calc(var(--W)*.16);
  background: var(--telefono-marco);
}
.cl-tel-pantalla {
  height: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: calc(var(--W)*.12);
  background: var(--telefono-pantalla);
  color: var(--texto);
  font-size: var(--t-15);
}
.cl-tel-estado {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex: none;
  padding: var(--s-8) var(--s-24) var(--s-4);
  background: var(--fondo);
  font-size: var(--t-15);
  font-weight: var(--bold);
  font-variant-numeric: tabular-nums;
}
.cl-tel-bateria {
  position: relative;
  display: block;
  width: 20px;
  height: 10px;
  border: 1.5px solid var(--texto);
  border-radius: 3px;
}
.cl-tel-bateria::after {
  content: "";
  position: absolute;
  inset: 1.5px;
  right: 5px;
  border-radius: 1px;
  background: var(--texto);
}
.cl-tel-cab {
  display: flex;
  align-items: center;
  gap: var(--s-12);
  flex: none;
  padding: var(--s-8) var(--s-16) var(--s-12);
  background: var(--fondo);
  border-bottom: var(--borde-ancho) solid var(--borde);
  line-height: 1.3;
}
.cl-tel-cab b {
  display: block;
  font-size: var(--t-15);
}
.cl-tel-cab span:not(.cl-tel-av) {
  display: block;
  font-size: var(--t-12);
  color: var(--texto-2);
}
.cl-tel-av {
  display: grid;
  place-items: center;
  flex: none;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--superficie);
  font-size: var(--t-15);
  font-weight: var(--bold);
  color: var(--texto-2);
}
.cl-tel-cuerpo {
  display: flex;
  flex-direction: column;
  gap: var(--s-8);
  flex: 1;
  min-height: 0;
  padding: var(--s-12) var(--s-12) var(--s-16);
}
.cl-tel-dia {
  align-self: center;
  padding: 2px var(--s-12);
  border: var(--borde-ancho) solid var(--borde);
  border-radius: var(--r-pill);
  background: var(--elevado);
  font-size: var(--t-12);
  color: var(--texto-2);
}
.cl-burbuja {
  --rb: 12px;
  align-self: flex-start;
  max-width: 78%;
  padding: var(--s-8) var(--s-12);
  border: var(--borde-ancho) solid var(--borde);
  border-radius: var(--rb) var(--rb) var(--rb) 4px;
  background: var(--elevado);
  font-size: var(--t-15);
  line-height: 1.35;
  color: var(--texto);
}
.cl-tel .cl-burbuja {
  --rb: calc(var(--W)*.04);
}
.cl-burbuja b {
  display: block;
  font-size: var(--t-15);
}
.cl-burbuja small {
  display: block;
  margin-top: 2px;
  text-align: right;
  font-size: var(--t-12);
  color: var(--texto-2);
  font-variant-numeric: tabular-nums;
}
.cl-burbuja--yo {
  align-self: flex-end;
  border-radius: var(--rb) var(--rb) 4px var(--rb);
}
/* solo la burbuja del seguimiento automático se enciende */
.cl-burbuja--seg {
  background: var(--acento-suave);
  border: var(--borde-encendido) solid var(--acento);
}
.cl-burbuja-nota {
  align-self: flex-end;
  max-width: 78%;
  margin: -4px 0 0;
  font-size: var(--t-12);
  line-height: 1.3;
  color: var(--texto-2);
  text-align: right;
}
.cl-burbuja small .cl-check {
  display: inline-block;
  width: 1.17em;
  height: 1.17em;
  vertical-align: -3px;
  stroke: var(--texto-2);
}
.cl-tel .cl-chip {
  align-self: flex-start;
  min-height: 26px;
  font-size: var(--t-12);
}
@media (max-width:767px) {
  .cl-tel{--W:256px};
}

Gráficos

Tres estados y nada más.

Mira cómo entran: crecen una vez y el azul llega al final.

Chats de ayer

7 de los 64 chats quedaron sin responder.

Chats nuevos del lunes 5 de octubre, al cierre de las 7:05 p. m.

  • Nuevos64
  • Respondidos57
  • Sin responder7

EjemploClínica Dental Norte

BarrasDesde cero, etiqueta pegada al dato, sin leyenda. Solo una en azul; el número va en tinta.

Chats por día

Los chats subieron toda la semana.

Chats nuevos de lunes a domingo.

lunmarmiéjueviesábdom64

EjemploClínica Dental Norte

Línea2 px, punto de Ø 10 en el último dato y la línea base en tinta.

26

chats atendidos por Ana, de 64.

CifraAzul solo si es lo que dice el título. Prueba el selector.
  • Los tres estados y nada más: Apagado para el contexto, tinta para lo hecho y azul para lo que dice el título. Rojo, verde y ámbar no existen.
  • Título con verbo, número y punto: «Ana atendió 26 de los 64 chats de ayer.»
Ver el reporte, más reglas, medidas y código

El reporte: una tabla dentro de un panel

Reporte de hoy · 7:05 p. m.

Clínica Dental Norte

Lunes 5 de octubre

Ana26 atendidos4 sin responder
Diego21 atendidos2 sin responder
Lucía17 atendidos1 sin responder

Ejemplo

Personas en orden alfabético; el punto azul, en lo que el dueño puede arreglar.

Más reglas

  • Personas en orden alfabético, porque el reporte es una lista, no un podio.
  • Sobre panel blanco, porque el gris Apagado se pierde sobre Papel.

Medidas

Barra
20 px de grosor, 12 de aire; máximo 6
Línea y punto
2 px y Ø 10
Línea base
1 px en tinta (Papel en oscuro)
Entrada
800 ms con la curva estado, una vez

HTML

<ul class="cl-barras">
  <li>
    <span class="cl-barra-et">Nuevos</span>
    <span class="cl-barra " style="--v:1.0000;--i:0"><i></i><em>64</em></span>
  </li>
  <li>
    <span class="cl-barra-et">Respondidos</span>
    <span class="cl-barra hecho" style="--v:0.8906;--i:1"><i></i><em>57</em></span>
  </li>
  <li>
    <span class="cl-barra-et">Sin responder</span>
    <span class="cl-barra ahora" style="--v:0.1094;--i:2"><i></i><em>7</em></span>
  </li>
</ul>

CSS

.cl-panel {
  padding: var(--s-24);
  border: var(--borde-ancho) solid var(--borde);
  border-radius: var(--r-captura);
  background: var(--fondo);
  color: var(--texto);
}
.cl-barras {
  display: grid;
  grid-template-columns: max-content minmax(0,1fr);
  gap: var(--s-12) var(--s-12);
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}
.cl-barras>li {
  display: contents;
}
.cl-barra-et {
  font-size: var(--t-15);
  color: var(--texto-2);
  text-align: right;
}
.cl-barra {
  display: flex;
  align-items: center;
  gap: var(--s-12);
  height: 20px;
  border-left: var(--borde-ancho) solid var(--texto);
}
.cl-barra i {
  display: block;
  flex: none;
  width: calc((100% - var(--s-48))*var(--v));
  height: 20px;
  background: var(--control-apagado);
  transform-origin: left;
}
.cl-barra.hecho i {
  background: var(--control-hecho);
}
.cl-barra.ahora i {
  background: var(--acento);
}
.cl-barra em {
  font-style: normal;
  font-size: var(--t-17);
  font-weight: var(--bold);
  font-variant-numeric: tabular-nums;
  color: var(--texto);
}
.cl-linea {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}
.cl-linea .base {
  stroke: var(--texto);
  stroke-width: 1;
}
.cl-linea .dato {
  fill: none;
  stroke: var(--control-apagado);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.cl-linea .punto {
  fill: var(--acento);
}
.cl-linea text {
  font: var(--regular) var(--t-15) var(--fuente);
  fill: var(--texto-2);
}
.cl-linea .valor {
  font-weight: var(--bold);
  fill: var(--texto);
}
.cl-cifra {
  margin: 0;
  font-size: var(--cifra,var(--web-cifra));
  letter-spacing: var(--cifra-trk,var(--web-cifra-trk));
  line-height: var(--lh-cifra);
  font-weight: var(--bold);
  font-variant-numeric: proportional-nums;
  color: var(--texto);
}
.cl-cifra--ahora {
  color: var(--acento-texto);
}
.cl-cifra-pie {
  margin: var(--s-12) 0 0;
  font-size: var(--t-17);
  color: var(--texto-2);
}
.cl-reporte h3 {
  margin: 0;
  font-size: var(--t-24);
  letter-spacing: var(--trk-24);
  line-height: var(--lh-titulo-24);
}
.cl-reporte-baj {
  margin: var(--s-4) 0 var(--s-16);
  font-size: var(--t-15);
  color: var(--texto-2);
}
.cl-fuente {
  margin: var(--s-16) 0 0;
  display: flex;
  align-items: center;
  gap: var(--s-12);
  font-size: var(--t-12);
  color: var(--texto-2);
}

Tablas

En la tabla, la hora va primero.

PersonaAtendidosSin responder
Ana264
Diego212
Lucía171

Ejemplo · personas en orden alfabético. El punto azul, en una sola celda.

  • Entra el chat de Rosa, asignado a Ana.
  • Ana le responde a Rosa.
  • Sale el seguimiento que aprobaste.

La columna de la hora: la hora a la izquierda, el contenido a la derecha.

  • La hora a la izquierda, en Pizarra, porque la luz importa cuando el dueño no mira, y eso tiene hora.
  • Un filete de 1 px entre filas, sin cebra ni fondos: el único separador es la línea.
Ver más reglas, medidas y código

Más reglas

  • Cifras tabulares, para que las columnas se alineen solas.

Medidas

Encabezado
en eyebrow, y la primera columna en Bold dice quién

HTML

<table class="cl-tabla">
  <thead>
    <tr>
      <th>Persona</th>
      <th>Atendidos</th>
      <th class="num">Sin responder</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Ana</td>
      <td>26</td>
      <td class="num"><i class="cl-punto"></i>4</td>
    </tr>
    <tr>
      <td>Diego</td>
      <td>21</td>
      <td class="num">2</td>
    </tr>
    <tr>
      <td>Lucía</td>
      <td>17</td>
      <td class="num">1</td>
    </tr>
  </tbody>
</table>
<ul class="cl-hora-lista">
  <li>
    <time>10:47 p. m.</time>
    <span>Entra el chat de Rosa, asignado a <b>Ana</b>.</span>
  </li>
  <li>
    <time>9:05 a. m.</time>
    <span><b>Ana</b> le responde a Rosa.</span>
  </li>
  <li>
    <time>4:00 p. m.</time>
    <span>Sale el seguimiento que aprobaste.</span>
  </li>
</ul>

CSS

.cl-tabla {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--t-15);
  color: var(--texto-2);
  font-variant-numeric: tabular-nums;
}
.cl-tabla th {
  padding: var(--s-8) var(--s-12);
  border-bottom: var(--borde-ancho) solid var(--texto);
  font-size: var(--t-12);
  font-weight: var(--bold);
  letter-spacing: var(--trk-eyebrow);
  text-align: left;
  text-transform: uppercase;
  color: var(--texto-2);
}
.cl-tabla td {
  padding: var(--s-12);
  border-bottom: var(--borde-ancho) solid var(--borde);
}
.cl-tabla td:first-child {
  font-weight: var(--bold);
  color: var(--texto);
}
.cl-tabla .num {
  text-align: right;
}
.cl-tabla .cl-punto {
  margin-right: var(--s-8);
  vertical-align: 1px;
}
/* columna de la hora: la hora a la izquierda, el contenido a la derecha */
.cl-hora-lista {
  margin: 0;
  padding: 0;
  list-style: none;
}
.cl-hora-lista li {
  display: grid;
  grid-template-columns: 7.5em minmax(0,1fr);
  column-gap: var(--s-16);
  padding: var(--s-12) 0;
  border-bottom: var(--borde-ancho) solid var(--borde);
  font-size: var(--t-15);
}
.cl-hora-lista li:first-child {
  border-top: var(--borde-ancho) solid var(--borde);
}
.cl-hora-lista time {
  color: var(--texto-2);
  font-variant-numeric: tabular-nums;
}
.cl-hora-lista b {
  color: var(--texto);
}

Recetas

Siete recetas arman cualquier pieza.

Pasos, valores y errores típicos de cada formato.

Receta 01 · 1080 × 1350

Armar un post

Descargar receta
Ver los pasos

Post, anuncio de Meta o documento de LinkedIn. Se ve a 360 dp de ancho: los tamaños «grandes» son los justos.

  1. Una idea, un titular
  2. Elige el elemento encendido (uno)
  3. Una sola imagen, en un tercio o la mitad
  4. Título en y 408; el logo termina en y 1270
  • Título 80 B
  • Bajada 58 R
  • Línea y 408
  • Márgenes 80
  • Radio 40
Ver la receta completa

Post, anuncio de Meta o documento de LinkedIn. Se ve a 360 dp de ancho: los tamaños «grandes» del lienzo son los justos.

Pasos

  1. Una idea, un titular. Conclusión en una o dos oraciones con punto; si lo pide, en dos tiempos (hasta 6 palabras cada uno).
  2. Elige el elemento encendido (uno): el segundo tiempo en azul, una barra, una cifra o un punto. Con botón, el botón es ese elemento y el titular va en tinta con el segundo tiempo en Apagado. En anuncios de Meta no se dibuja botón.
  3. Una sola imagen (foto B/N, teléfono, cifra o personaje) en 1/3 o 1/2 del lienzo. Texto nunca sobre caras ni capturas.
  4. Coloca lo que abre con el título en y 408 (línea del 30 %), márgenes de 80, logo de 32 px abajo a la izquierda que termina en y 1270. Arriba a la derecha, solo el anfitrión o el cliente; abajo a la derecha, fecha o paginación.
  5. Oscuro solo con hora de noche escrita en el eyebrow (máximo 1 de cada 5 posts).
  6. Pasa la lista de 10 preguntas de SKILL.md.

Tokens

PapelValor
Eyebrow30 B, Pizarra, +0,10 em, mayúsculas por CSS
Título80 B, tracking −0,015 em, interlineado 1,03
Bajada58 R (hasta 2 líneas)
Cuerpo42 R · pie 30 R
Tarjetaradio 40, relleno 48, borde 2 px Línea
Chipalto 56 · Botón: 42 B, alto 96

Errores típicos: logo dos veces, titular más abajo o más arriba de y 408, azul en el titular y en el botón, cifras sin «Ejemplo».

Receta 02 · 1080 × 1920

Armar una historia o un reel

Descargar receta
Ver los pasos

El texto vive en la franja de en medio: arriba y abajo quedan libres para la interfaz de Instagram.

  1. Texto solo en x 80–1000 y y 272–1248
  2. Titular en y 576, máximo dos líneas de 80 B
  3. Un solo elemento encendido
  4. Logo de 32 px que termina en y 1248
  • Zona x 80–1000
  • y 272–1248
  • Título y 576
  • Botón 42 B
Ver la receta completa

Pasos

  1. Texto solo en x 80-1000 y y 272-1248. Arriba y abajo quedan libres para la interfaz de Instagram.
  2. Titular en y 576 (línea del 30 %), una idea, máximo dos líneas de 80 B.
  3. Un solo elemento encendido. En historias orgánicas puede ser el botón «Pedir piloto gratis»; en anuncios no se dibuja.
  4. Logo de 32 px abajo a la izquierda, que termina en y 1248. Personaje permitido (no junto al teléfono ni al interruptor).
  5. Reel: coreografía de 04-armar-una-lamina-de-video.md. Nada en bucle.
  6. Destacadas: lienzo 1080 × 1920 en Papel con un ícono de los 28 de 560 px en tinta, centrado en (540, 960), sin texto. Solo «Piloto» (calendar-check) en azul.

Tokens

Mismos del post (lienzo): eyebrow 30 B, título 80 B, bajada 58 R, cuerpo 42 R, botón 42 B con alto 96 y relleno lateral 48, radio 40.

Errores típicos: texto pegado al borde, teléfono de W 600 sin cortarlo por abajo, dos azules, fondo oscuro sin hora de noche.

Receta 03 · 1280 × 720

Armar un deck

Descargar receta
Ver los pasos

Dos tipos: el deck se lee en pantalla o PDF; la charla se proyecta y todo lo que la sala lee va desde 24 px.

  1. Una idea por lámina
  2. Márgenes de 80; el contenido cuelga de y 272
  3. Regla, por qué y ejemplo en cada lámina de norma
  4. Una imagen por lámina y un solo azul
  • Título 42 B
  • Portada 58 B
  • Cifra 112 B
  • 12 columnas de 64
  • Línea y 216
Ver la receta completa

Hay dos tipos: deck (se lee en pantalla o PDF) y charla (se proyecta: todo lo que la sala lee va desde 24 px).

Pasos

  1. Una idea por lámina; el título es la conclusión, no el tema («Un solo azul por pieza.»).
  2. Anatomía fija: márgenes 80 a los lados, 56 arriba, 64 abajo; 12 columnas de 64 con medianil 32. Cabeza en y 56-240; contenido en y 272-632, siempre colgando de y 272; pie con el logo de 16 px en Apagado y «03 / 14».
  3. Regla + por qué + ejemplo en cada lámina de norma. Ejemplos con el reparto fijo y «Ejemplo».
  4. Una imagen por lámina y un solo azul (fuera de las maquetas).
  5. Portada: título de 58 B en y 216, logo de 24 abajo a la izquierda, mes y año abajo a la derecha. Cierre: personaje a la derecha (360-420 px) solo si no lleva QR ni sello de Kommo.
  6. Oscuro solo para «fuera de horario» o escenario. El .pptx a pedido usa Arial; nunca es la fuente de trabajo.
  7. Exporta con Chrome headless a PDF.

Tokens

Eyebrow 15 B · título 42 B (−0,028 em) · portada 58 B · bajada 19 R · cuerpo 15 R · pie 12 R · cifra 112 B (58 en fila). Charla: 19 B / 58 B / 80 B / 24 R / 160 B.

Errores típicos: contenido que pisa el pie, eyebrow que no es el capítulo, título en Mayúsculas Iniciales, teléfono de W 256 metido en la banda (va en lado(…, cols=3)).

Receta 04 · 30 fps

Armar una lámina de video

Descargar receta
Ver los pasos

El video es la misma lámina o historia estática, con coreografía: primero lo quieto, después el contenido y al final lo encendido.

  1. Parte de la misma lámina o historia estática
  2. Primero lo quieto, después el contenido y al final lo encendido
  3. Una vez y quieto: sin bucles ni contadores
  4. Entradas: fundido y 8 px hacia arriba, curva entrada
  • micro 6 f
  • entrada 14 f
  • estado 15 f
  • dato 24 f
  • Sin bucles
Ver la receta completa

Pasos

  1. Parte de la misma lámina o historia estática (recetas 02 o 03): el video es esa pieza con coreografía.
  2. Coreografía: primero lo quieto, después el contenido y al final lo encendido. El azul llega último, en el único elemento que hay que mirar.
  3. Una vez y quieto: sin bucles, pulsos ni contadores que suben solos. Cortes secos entre horas (de las 10:47 p. m. a las 9:05 a. m. sin transición).
  4. Entradas: fundido + 8 px hacia arriba, curva entrada. Titular palabra por palabra, 4 f entre palabras. Barras: 24 f con estado, escalonadas 3 f (más de 6, todas a la vez); el azul al final, 6 f micro.
  5. Personaje: entra en 14 f, sale en 8 f, cambia de pose con corte seco. No se anima con IA de video.
  6. Cierre: el gesto de marca (las dos cápsulas quietas 3 f; la perilla derecha sube en 15 f con estado; un clic a −20 dB). En videos de Martín como autor, la perilla no se anima.
  7. prefers-reduced-motion: todo pasa a fundidos de 150-200 ms.
  8. Videos de tema: generales, sin marca de Creators Latam salvo que el tema lo sea; clips reales más voz en off. No generes imágenes con APIs de pago sin OK de Martín.

Tokens (video · web)

DuraciónVideoWeb
micro6 f150 ms
fundido9 f200 ms
salida8 f150 ms
entrada14 f300 ms
estado y gesto de marca15 f300 ms
dato (barras, conteos)24 f, como máximo 1 s800 ms, una vez

Curvas: entrada (.05,.7,.1,1) · estado (.4,0,0,1) · salida (.3,0,.8,.15) · micro (.2,0,0,1). Sin rebote. En Remotion: spring({damping:20, stiffness:120, mass:1, overshootClamping:true}).

Ejemplo mínimo (CSS)

.entra{animation:entra var(--dur-entrada) var(--mov-entrada) both}
@keyframes entra{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

Errores típicos: rebote, loops, azul que aparece antes que el contenido, dos elementos animados a la vez que compiten.

Receta 05 · A4

Armar un documento

Descargar receta
Ver los pasos

Propuesta, carta o informe. La propuesta, el precio y el contrato son nivel 0: sin azul, sin interruptor y sin personaje.

  1. Elige el nivel: propuesta, precio y contrato van sin azul
  2. Hoja: márgenes de la plantilla y línea base de 5 mm
  3. Eyebrow de 7 pt, título de 20 pt, bajada de 12 pt
  4. Tablas en 9 / 12 pt, personas en orden alfabético
  • 7 · 9 · 10 · 12 · 20 · 36 pt
  • Márgenes 20 · 20 · 22 mm
  • Línea base 5 mm
Ver la receta completa

Pasos

  1. Elige el nivel. Propuesta, precio, cotización y contrato son nivel 0: sin azul, sin interruptor, sin personaje. El azul se pierde en una impresora en blanco y negro: en A4 lo encendido va en tinta.
  2. Hoja: márgenes según la plantilla de la plantilla de documentos; línea base de 5 mm. Membrete arriba solo en carta, cotización e informe; en el resto, el logo abajo a la izquierda.
  3. Estructura: eyebrow (7 pt) · título (20 pt, conclusión con punto) · bajada (12 pt) · contenido. Portada: título de 36 pt en y 90 mm.
  4. Tablas en 9 / 12 pt con filas de 10 mm; cifras en orden alfabético por persona. Precios con sus números por separado, «+ IGV» dicho.
  5. Logo: K 100 (negro solo); pie en K 45. Fotos B/N.
  6. Redacta con la guía de voz (propuesta o informe): de tú, «Ejemplo» en todo dato inventado.

Tokens (pt)

7 · 9 · 10 · 12 · 14 · 20 · 28 · 36 · 48. Cuerpo 10 pt / 14,17; bajada 12 / 17; título 20 / 24; portada 36 / 38; cifra 48 (28 en tarjeta, 14 en tabla). Filete 0,5 pt; radio 4 mm; relleno 5 mm. Tracking = pt × 1,7 visibles.

Errores típicos: azul en la propuesta, interruptor en un precio, letra por debajo de 7 pt, el informe que culpa a alguien (el reporte no es un podio).

Receta 06 · 1440 · 390

Armar una sección de landing

Descargar receta
Ver los pasos

Una idea por sección: eyebrow, título que es la conclusión, bajada, contenido y un solo pedido.

  1. Carga tokens.css y nada de hex
  2. Una idea por sección
  3. Contenedor 1200, margen 48, sección 128
  4. Por pantalla: el botón y, como máximo, un elemento editorial
  • H1 80 B
  • Contenedor 1200
  • Botón alto 52
  • Sección 128
Ver la receta completa

La web no sigue el modo oscuro del teléfono: declara <meta name="color-scheme" content="light">.

Pasos

  1. Carga los tokens: tokens.css y font-family: var(--fuente). Nada de hex.
  2. Una idea por sección. Eyebrow · título (conclusión con punto) · bajada · contenido · un solo pedido.
  3. Retícula: contenedor 1200, margen 48 (40 en tablet, 24 en celular), medianil 24, sección 128 de alto de espacio (80 en celular), cabecera 64.
  4. Encendido por pantalla: el botón (es interfaz) y, como máximo, un elemento editorial. El inicio lleva el segundo tiempo del H1 en azul más el botón.
  5. Botón: «Pedir piloto gratis», píldora azul, 19 B, alto 52, relleno lateral 24; hover filter:brightness(.92) en 150 ms; foco con anillo de 2 px azul a 2 px. Mínimo tocable 44.
  6. Teléfono (W 320 en escritorio, 256 en celular) solo si la sección trata de un chat. Personaje de 240 px (160 en celular) solo en «Cómo funciona», junto a «Tú apruebas cada mensaje antes de que salga.» y con el formulario enviado; nunca en el inicio ni en el precio.
  7. Campos: radio 8, borde 1 px Apagado, etiqueta arriba 15 R, foco 2 px azul, error #D70015 con una frase que dice qué corregir.
  8. Los enlaces dentro de un párrafo van en tinta con subrayado, no en azul. Íconos: los 28, con su palabra.
  9. prefers-reduced-motion ya está en tokens.css.

Tokens

PapelEscritorioCelular
H1--web-h1 80 B42 B
H2--web-h2 58 B30 B
H3 / bajada2419
Cuerpo17 R17 R
Texto chico15 R15 R
Eyebrow / pie1212
Botón19 B, alto 5219 B, alto 52

Ejemplo mínimo

<section style="padding:var(--seccion) var(--margen-web)">
  <div class="eyebrow">Cómo funciona</div>
  <h2 style="font-size:var(--web-h2);letter-spacing:var(--web-h2-trk)">Cada chat entra con su vendedor.</h2>
  <p style="font-size:var(--web-bajada)">Entra asignado a Ana, Diego o Lucía. Tú abres cualquiera.</p>
  <a class="boton">Pedir piloto gratis</a>
</section>

Errores típicos: dos azules editoriales en la misma pantalla, personaje en el inicio o el precio, lucide-react con íconos fuera de los 28 (por ejemplo Sparkles).

Receta 07 · Lámina · post · A4 · web

Armar un gráfico o un reporte

Descargar receta
Ver los pasos

Título-conclusión con verbo, número y punto; después, los datos en los tres estados y nada más.

  1. Título-conclusión con verbo, número y punto
  2. Tres estados: apagado, hecho y ahora
  3. Sobre panel blanco, nunca sobre Papel
  4. Barras desde cero, personas en orden alfabético
  • Barra 20 / aire 12
  • Línea 2 px
  • Máximo 6 barras
  • Tres estados
Ver la receta completa

Pasos

  1. Título-conclusión con verbo, número y punto: «Ana atendió 26 de los 64 chats de ayer.» Después, la bajada: qué, de quién, cuándo y en qué unidad.
  2. Color: los tres estados y nada más. Apagado (contexto), Hecho (tinta) y Ahora (azul, uno: lo que dice el título). Azul y Apagado nunca se tocan (2 px de aire; 4 en el lienzo). El número junto a una barra azul va en tinta Bold.
  3. Sobre panel blanco (radio 12 dentro de una tarjeta Papel), nunca datos sobre Papel.
  4. Barras desde cero, etiqueta pegada, sin leyenda hasta 3 series, sin texto girado. Personas en orden alfabético, nunca por valor.
  5. Sin tortas, donas, 3D, degradados ni semáforos. Si hace falta una cuarta serie, dos gráficos chicos.
  6. Fuente abajo a la izquierda en Pizarra («Kommo, cuenta X, del … al …» o «Ejemplo ·»); una lectura opcional (filete de 3 px en tinta).
  7. En A4 impreso, lo encendido va en tinta.

Medidas

LáminaPost e historiaA4Web
Barra / aire24 / 1656 / 323,5 / 1,5 mm20 / 12
Línea · punto2 px · Ø 124 px · Ø 241,25 pt · Ø 2,5 mm2 px · Ø 10
Línea base1 px tinta2 px tinta0,5 pt1 px
Máximo8 barras, 3 series6 barras (5 en historia), 2 series10 filas6 barras

Errores típicos: barras ordenadas por valor (un podio), verde y rojo, eje que no parte de cero, datos sin «Ejemplo».

Lo que no se hace

Seis errores que rompen la pieza.

Cada «no» se muestra hecho, con su motivo. Desliza para ver los seis.

Descargar

Todo se baja en cinco archivos.

  • sistema-kit-completo.zipTodo junto: colores, letra, componentes, recetas y la guía para tu IA.
    171 KB
  • componentes.cssLos estilos de todos los componentes, listos para tu web. Van junto al archivo de colores y medidas (tokens.css).
    14 KB
  • componentes.htmlLa hoja de componentes en un solo archivo, viva, en claro y en oscuro.
    32 KB
  • recetas-de-patrones.zipLas siete recetas en Markdown.
    7 KB
  • catalogo-capturas.zipEl catálogo del kit en 18 capturas, por sección y por tema.
    3,2 MB
  • Colores, escalas y guíaLos valores y la guía para tu IA están en la página de colores y tokens.
    Ir allí
El catálogo del kit, en capturas
Catálogo del kit: Controles, en claro
Controles · claro
Catálogo del kit: Controles, en oscuro
Controles · oscuro
Catálogo del kit: Teléfono, en claro
Teléfono · claro
Catálogo del kit: Teléfono, en oscuro
Teléfono · oscuro
Catálogo del kit: Interruptor, en claro
Interruptor · claro
Catálogo del kit: Interruptor, en oscuro
Interruptor · oscuro
Catálogo del kit: Gráficos, en claro
Gráficos · claro
Catálogo del kit: Gráficos, en oscuro
Gráficos · oscuro